From 7abb0477ed740663934fa908b282eb51055bc132 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Sat, 31 Dec 2016 08:58:06 -0800 Subject: Replaced OpenMetaverse libs/xmls with new ones. Also added a file in openmetaverse_data that was added recently to libomv and was missing. --- bin/OpenMetaverse.XML | 39018 ++++++++++++++++++++++++------------------------ 1 file changed, 19717 insertions(+), 19301 deletions(-) (limited to 'bin/OpenMetaverse.XML') diff --git a/bin/OpenMetaverse.XML b/bin/OpenMetaverse.XML index 36e5b92..ce8ca86 100644 --- a/bin/OpenMetaverse.XML +++ b/bin/OpenMetaverse.XML @@ -218,6 +218,9 @@ Event message when an object uses llOwnerSay + + Event message when an object uses llRegionSayTo + Special value to support llRegionSay, never sent to the client @@ -880,6 +883,13 @@ Manager class for our own avatar + + + Called once attachment resource usage information has been collected + + Indicates if operation was successfull + Attachment resource usage information + The event subscribers. null if no subcribers @@ -891,6 +901,9 @@ Thread sync lock object + + Raised when a scripted object or agent within range sends a public message + The event subscribers. null if no subcribers @@ -902,6 +915,10 @@ Thread sync lock object + + Raised when a scripted object sends a dialog box containing possible + options an agent can respond to + The event subscribers. null if no subcribers @@ -913,6 +930,9 @@ Thread sync lock object + + Raised when an object requests a change in the permissions an agent has permitted + The event subscribers. null if no subcribers @@ -924,6 +944,9 @@ Thread sync lock object + + Raised when a script requests an agent open the specified URL + The event subscribers. null if no subcribers @@ -935,6 +958,9 @@ Thread sync lock object + + Raised when an agents currency balance is updated + The event subscribers. null if no subcribers @@ -946,6 +972,9 @@ Thread sync lock object + + Raised when a transaction occurs involving currency such as a land purchase + The event subscribers. null if no subcribers @@ -957,6 +986,10 @@ Thread sync lock object + + Raised when an ImprovedInstantMessage packet is recieved from the simulator, this is used for everything from + private messaging to friendship offers. The Dialog field defines what type of message has arrived + The event subscribers. null if no subcribers @@ -968,6 +1001,10 @@ Thread sync lock object + + Raised when an agent has requested a teleport to another location, or when responding to a lure. Raised multiple times + for each teleport indicating the progress of the request + The event subscribers. null if no subcribers @@ -979,6 +1016,9 @@ Thread sync lock object + + Raised when a simulator sends agent specific information for our avatar. + The event subscribers. null if no subcribers @@ -990,6 +1030,9 @@ Thread sync lock object + + Raised when our agents animation playlist changes + The event subscribers. null if no subcribers @@ -1001,6 +1044,9 @@ Thread sync lock object + + Raised when an object or avatar forcefully collides with our agent + The event subscribers. null if no subcribers @@ -1012,6 +1058,9 @@ Thread sync lock object + + Raised when our agent crosses a region border into another region + The event subscribers. null if no subcribers @@ -1023,6 +1072,9 @@ Thread sync lock object + + Raised when our agent succeeds or fails to join a group chat session + The event subscribers. null if no subcribers @@ -1034,6 +1086,10 @@ Thread sync lock object + + Raised when a simulator sends an urgent message usually indication the recent failure of + another action we have attempted to take such as an attempt to enter a parcel where we are denied access + The event subscribers. null if no subcribers @@ -1045,6 +1101,9 @@ Thread sync lock object + + Raised when a script attempts to take or release specified controls for our agent + The event subscribers. null if no subcribers @@ -1056,6 +1115,10 @@ Thread sync lock object + + Raised when the simulator detects our agent is trying to view something + beyond its limits + The event subscribers. null if no subcribers @@ -1067,6 +1130,9 @@ Thread sync lock object + + Raised when a script sensor reply is received from a simulator + The event subscribers. null if no subcribers @@ -1078,6 +1144,9 @@ Thread sync lock object + + Raised in response to a request + The event subscribers. null if no subcribers @@ -1089,6 +1158,9 @@ Thread sync lock object + + Raised when an avatar enters a group chat session we are participating in + The event subscribers. null if no subcribers @@ -1100,6 +1172,9 @@ Thread sync lock object + + Raised when an agent exits a group chat session we are participating in + The event subscribers, null of no subscribers @@ -1111,6 +1186,10 @@ Thread sync lock object + + Raised when the simulator sends us data containing + the details of display name change + The event subscribers. null if no subcribers @@ -1122,6 +1201,9 @@ Thread sync lock object + + Raised when a scripted object or agent within range sends a public message + Reference to the GridClient instance @@ -1139,6 +1221,96 @@ Dictionary containing mute list keyead on mute name and key + + Your (client) avatars + "client", "agent", and "avatar" all represent the same thing + + + Temporary assigned to this session, used for + verifying our identity in packets + + + Shared secret that is never sent over the wire + + + Your (client) avatar ID, local to the current region/sim + + + Where the avatar started at login. Can be "last", "home" + or a login + + + The access level of this agent, usually M, PG or A + + + The CollisionPlane of Agent + + + An representing the velocity of our agent + + + An representing the acceleration of our agent + + + A which specifies the angular speed, and axis about which an Avatar is rotating. + + + Position avatar client will goto when login to 'home' or during + teleport request to 'home' region. + + + LookAt point saved/restored with HomePosition + + + Avatar First Name (i.e. Philip) + + + Avatar Last Name (i.e. Linden) + + + LookAt point received with the login response message + + + Avatar Full Name (i.e. Philip Linden) + + + Gets the health of the agent + + + Gets the current balance of the agent + + + Gets the local ID of the prim the agent is sitting on, + zero if the avatar is not currently sitting + + + Gets the of the agents active group. + + + Gets the Agents powers in the currently active group + + + Current status message for teleporting + + + Current position of the agent as a relative offset from + the simulator, or the parent object if we are sitting on something + + + Current rotation of the agent as a relative rotation from + the simulator, or the parent object if we are sitting on something + + + Current position of the agent in the simulator + + + + A representing the agents current rotation + + + + Returns the global grid position of the avatar + Various abilities and preferences sent by the grid @@ -1251,7 +1423,7 @@ Start a friends conference List of UUIDs to start a conference with - the temportary session ID returned in the callback> + the temportary session ID returned in the callback> @@ -2000,188 +2172,167 @@ The sender The EventArgs object containing the packet data - - Raised when a scripted object or agent within range sends a public message - - - Raised when a scripted object sends a dialog box containing possible - options an agent can respond to - - - Raised when an object requests a change in the permissions an agent has permitted - - - Raised when a script requests an agent open the specified URL - - - Raised when an agents currency balance is updated - - - Raised when a transaction occurs involving currency such as a land purchase - - - Raised when an ImprovedInstantMessage packet is recieved from the simulator, this is used for everything from - private messaging to friendship offers. The Dialog field defines what type of message has arrived + + + Agent movement and camera control + + Agent movement is controlled by setting specific + After the control flags are set, An AgentUpdate is required to update the simulator of the specified flags + This is most easily accomplished by setting one or more of the AgentMovement properties + + Movement of an avatar is always based on a compass direction, for example AtPos will move the + agent from West to East or forward on the X Axis, AtNeg will of course move agent from + East to West or backward on the X Axis, LeftPos will be South to North or forward on the Y Axis + The Z axis is Up, finer grained control of movements can be done using the Nudge properties + - - Raised when an agent has requested a teleport to another location, or when responding to a lure. Raised multiple times - for each teleport indicating the progress of the request + + + Camera controls for the agent, mostly a thin wrapper around + CoordinateFrame. This class is only responsible for state + tracking and math, it does not send any packets + - - Raised when a simulator sends agent specific information for our avatar. + + - - Raised when our agents animation playlist changes + + The camera is a local frame of reference inside of + the larger grid space. This is where the math happens - - Raised when an object or avatar forcefully collides with our agent + + - - Raised when our agent crosses a region border into another region + + - - Raised when our agent succeeds or fails to join a group chat session + + - - Raised when a simulator sends an urgent message usually indication the recent failure of - another action we have attempted to take such as an attempt to enter a parcel where we are denied access + + - - Raised when a script attempts to take or release specified controls for our agent + + + Default constructor + - - Raised when the simulator detects our agent is trying to view something - beyond its limits + + Move agent positive along the X axis - - Raised when a script sensor reply is received from a simulator + + Move agent negative along the X axis - - Raised in response to a request + + Move agent positive along the Y axis - - Raised when an avatar enters a group chat session we are participating in + + Move agent negative along the Y axis - - Raised when an agent exits a group chat session we are participating in + + Move agent positive along the Z axis - - Raised when the simulator sends us data containing - the details of display name change + + Move agent negative along the Z axis - - Raised when a scripted object or agent within range sends a public message + + - - Your (client) avatars - "client", "agent", and "avatar" all represent the same thing + + - - Temporary assigned to this session, used for - verifying our identity in packets + + - - Shared secret that is never sent over the wire + + - - Your (client) avatar ID, local to the current region/sim + + - - Where the avatar started at login. Can be "last", "home" - or a login + + - - The access level of this agent, usually M, PG or A + + - - The CollisionPlane of Agent + + Causes simulator to make agent fly - - An representing the velocity of our agent + + Stop movement - - An representing the acceleration of our agent + + Finish animation - - A which specifies the angular speed, and axis about which an Avatar is rotating. + + Stand up from a sit - - Position avatar client will goto when login to 'home' or during - teleport request to 'home' region. + + Tells simulator to sit agent on ground - - LookAt point saved/restored with HomePosition + + Place agent into mouselook mode - - Avatar First Name (i.e. Philip) + + Nudge agent positive along the X axis - - Avatar Last Name (i.e. Linden) + + Nudge agent negative along the X axis - - LookAt point received with the login response message + + Nudge agent positive along the Y axis - - Avatar Full Name (i.e. Philip Linden) + + Nudge agent negative along the Y axis - - Gets the health of the agent + + Nudge agent positive along the Z axis - - Gets the current balance of the agent + + Nudge agent negative along the Z axis - - Gets the local ID of the prim the agent is sitting on, - zero if the avatar is not currently sitting + + - - Gets the of the agents active group. + + - - Gets the Agents powers in the currently active group + + Tell simulator to mark agent as away - - Current status message for teleporting + + - - Current position of the agent as a relative offset from - the simulator, or the parent object if we are sitting on something + + - - Current rotation of the agent as a relative rotation from - the simulator, or the parent object if we are sitting on something + + - - Current position of the agent in the simulator + + - + - A representing the agents current rotation + Returns "always run" value, or changes it by sending a SetAlwaysRunPacket - - Returns the global grid position of the avatar + + The current value of the agent control flags - - - Called once attachment resource usage information has been collected - - Indicates if operation was successfull - Attachment resource usage information + + Gets or sets the interval in milliseconds at which + AgentUpdate packets are sent to the current simulator. Setting + this to a non-zero value will also enable the packet sending if + it was previously off, and setting it to zero will disable - - - Agent movement and camera control - - Agent movement is controlled by setting specific - After the control flags are set, An AgentUpdate is required to update the simulator of the specified flags - This is most easily accomplished by setting one or more of the AgentMovement properties - - Movement of an avatar is always based on a compass direction, for example AtPos will move the - agent from West to East or forward on the X Axis, AtNeg will of course move agent from - East to West or backward on the X Axis, LeftPos will be South to North or forward on the Y Axis - The Z axis is Up, finer grained control of movements can be done using the Nudge properties - + + Gets or sets whether AgentUpdate packets are sent to + the current simulator + + + Reset movement controls every time we send an update Agent camera controls @@ -2297,154 +2448,6 @@ Angle in radians - - Move agent positive along the X axis - - - Move agent negative along the X axis - - - Move agent positive along the Y axis - - - Move agent negative along the Y axis - - - Move agent positive along the Z axis - - - Move agent negative along the Z axis - - - - - - - - - - - - - - - - - - - - - - - - Causes simulator to make agent fly - - - Stop movement - - - Finish animation - - - Stand up from a sit - - - Tells simulator to sit agent on ground - - - Place agent into mouselook mode - - - Nudge agent positive along the X axis - - - Nudge agent negative along the X axis - - - Nudge agent positive along the Y axis - - - Nudge agent negative along the Y axis - - - Nudge agent positive along the Z axis - - - Nudge agent negative along the Z axis - - - - - - - - - Tell simulator to mark agent as away - - - - - - - - - - - - - - - - Returns "always run" value, or changes it by sending a SetAlwaysRunPacket - - - - The current value of the agent control flags - - - Gets or sets the interval in milliseconds at which - AgentUpdate packets are sent to the current simulator. Setting - this to a non-zero value will also enable the packet sending if - it was previously off, and setting it to zero will disable - - - Gets or sets whether AgentUpdate packets are sent to - the current simulator - - - Reset movement controls every time we send an update - - - - Camera controls for the agent, mostly a thin wrapper around - CoordinateFrame. This class is only responsible for state - tracking and math, it does not send any packets - - - - - - - The camera is a local frame of reference inside of - the larger grid space. This is where the math happens - - - - Default constructor - - - - - - - - - - - - - - Used to specify movement actions for your agent @@ -2556,13 +2559,6 @@ of setting the maturity access level - - - Creates new instance of the EventArgs class - - Has setting new maturty access level succeeded - New maturity access level as returned by the simulator - New maturity accesss level returned from the sim @@ -2573,24 +2569,17 @@ True if setting the new maturity access level has succedded - + - + Creates new instance of the EventArgs class + Has setting new maturty access level succeeded + New maturity access level as returned by the simulator - + - Construct a new instance of the ChatEventArgs object + - Sim from which the message originates - The message sent - The audible level of the message - The type of message sent: whisper, shout, etc - The source type of the message sender - The name of the agent or object sending the message - The ID of the agent or object sending the message - The ID of the object owner, or the agent ID sending the message - The position of the agent or object sending the message Get the simulator sending the message @@ -2619,22 +2608,22 @@ Get the position of the agent or object sending the message - - Contains the data sent when a primitive opens a dialog with this agent - - + - Construct a new instance of the ScriptDialogEventArgs + Construct a new instance of the ChatEventArgs object - The dialog message - The name of the object that sent the dialog request - The ID of the image to be displayed - The ID of the primitive sending the dialog - The first name of the senders owner - The last name of the senders owner - The communication channel the dialog was sent on - The string labels containing the options presented in this dialog - UUID of the scritped object owner + Sim from which the message originates + The message sent + The audible level of the message + The type of message sent: whisper, shout, etc + The source type of the message sender + The name of the agent or object sending the message + The ID of the agent or object sending the message + The ID of the object owner, or the agent ID sending the message + The position of the agent or object sending the message + + + Contains the data sent when a primitive opens a dialog with this agent Get the dialog message @@ -2664,21 +2653,24 @@ UUID of the scritped object owner + + + Construct a new instance of the ScriptDialogEventArgs + + The dialog message + The name of the object that sent the dialog request + The ID of the image to be displayed + The ID of the primitive sending the dialog + The first name of the senders owner + The last name of the senders owner + The communication channel the dialog was sent on + The string labels containing the options presented in this dialog + UUID of the scritped object owner + Contains the data sent when a primitive requests debit or other permissions requesting a YES or NO answer - - - Construct a new instance of the ScriptQuestionEventArgs - - The simulator containing the object sending the request - The ID of the script making the request - The ID of the primitive containing the script making the request - The name of the primitive making the request - The name of the owner of the object making the request - The permissions being requested - Get the simulator containing the object sending the request @@ -2697,21 +2689,21 @@ Get the permissions being requested + + + Construct a new instance of the ScriptQuestionEventArgs + + The simulator containing the object sending the request + The ID of the script making the request + The ID of the primitive containing the script making the request + The name of the primitive making the request + The name of the owner of the object making the request + The permissions being requested + Contains the data sent when a primitive sends a request to an agent to open the specified URL - - - Construct a new instance of the LoadUrlEventArgs - - The name of the object sending the request - The ID of the object sending the request - The ID of the owner of the object sending the request - True if the object is owned by a group - The message sent with the request - The URL the object sent - Get the name of the object sending the request @@ -2730,9 +2722,26 @@ Get the URL the object sent + + + Construct a new instance of the LoadUrlEventArgs + + The name of the object sending the request + The ID of the object sending the request + The ID of the owner of the object sending the request + True if the object is owned by a group + The message sent with the request + The URL the object sent + The date received from an ImprovedInstantMessage + + Get the InstantMessage object + + + Get the simulator where the InstantMessage origniated + Construct a new instance of the InstantMessageEventArgs object @@ -2740,42 +2749,24 @@ the InstantMessage object the simulator where the InstantMessage origniated - - Get the InstantMessage object - - - Get the simulator where the InstantMessage origniated - Contains the currency balance - + - Construct a new BalanceEventArgs object + Get the currenct balance - The currenct balance - + - Get the currenct balance + Construct a new BalanceEventArgs object + The currenct balance Contains the transaction summary when an item is purchased, money is given, or land is purchased - - - Construct a new instance of the MoneyBalanceReplyEventArgs object - - The ID of the transaction - True of the transaction was successful - The current currency balance - The meters credited - The meters comitted - A brief description of the transaction - Transaction info - Get the ID of the transaction @@ -2797,19 +2788,20 @@ Detailed transaction information - - Data sent from the simulator containing information about your agent and active group information - - + - Construct a new instance of the AgentDataReplyEventArgs object + Construct a new instance of the MoneyBalanceReplyEventArgs object - The agents first name - The agents last name - The agents active group ID - The group title of the agents active group - The combined group powers the agent has in the active group - The name of the group the agent has currently active + The ID of the transaction + True of the transaction was successful + The current currency balance + The meters credited + The meters comitted + A brief description of the transaction + Transaction info + + + Data sent from the simulator containing information about your agent and active group information Get the agents first name @@ -2829,34 +2821,35 @@ Get the active group name of your agent + + + Construct a new instance of the AgentDataReplyEventArgs object + + The agents first name + The agents last name + The agents active group ID + The group title of the agents active group + The combined group powers the agent has in the active group + The name of the group the agent has currently active + Data sent by the simulator to indicate the active/changed animations applied to your agent + + Get the dictionary that contains the changed animations + Construct a new instance of the AnimationsChangedEventArgs class The dictionary that contains the changed animations - - Get the dictionary that contains the changed animations - Data sent from a simulator indicating a collision with your agent - - - Construct a new instance of the MeanCollisionEventArgs class - - The type of collision that occurred - The ID of the agent or object that perpetrated the agression - The ID of the Victim - The strength of the collision - The Time the collision occurred - Get the Type of collision @@ -2872,9 +2865,25 @@ Get the time the collision occurred + + + Construct a new instance of the MeanCollisionEventArgs class + + The type of collision that occurred + The ID of the agent or object that perpetrated the agression + The ID of the Victim + The strength of the collision + The Time the collision occurred + Data sent to your agent when it crosses region boundaries + + Get the simulator your agent just left + + + Get the simulator your agent is now in + Construct a new instance of the RegionCrossedEventArgs class @@ -2882,24 +2891,9 @@ The simulator your agent just left The simulator your agent is now in - - Get the simulator your agent just left - - - Get the simulator your agent is now in - Data sent from the simulator when your agent joins a group chat session - - - Construct a new instance of the GroupChatJoinedEventArgs class - - The ID of the session - The name of the session - A temporary session id used for establishing new sessions - True of your agent successfully joined the session - Get the ID of the group chat session @@ -2912,29 +2906,30 @@ True if your agent successfully joined the session + + + Construct a new instance of the GroupChatJoinedEventArgs class + + The ID of the session + The name of the session + A temporary session id used for establishing new sessions + True of your agent successfully joined the session + Data sent by the simulator containing urgent messages + + Get the alert message + Construct a new instance of the AlertMessageEventArgs class The alert message - - Get the alert message - Data sent by a script requesting to take or release specified controls to your agent - - - Construct a new instance of the ScriptControlEventArgs class - - The controls the script is attempting to take or release to the agent - True if the script is passing controls back to the agent - True if the script is requesting controls be released to the script - Get the controls the script is attempting to take or release to the agent @@ -2944,41 +2939,34 @@ True if the script is requesting controls be released to the script + + + Construct a new instance of the ScriptControlEventArgs class + + The controls the script is attempting to take or release to the agent + True if the script is passing controls back to the agent + True if the script is requesting controls be released to the script + Data sent from the simulator to an agent to indicate its view limits + + Get the collision plane + Construct a new instance of the CameraConstraintEventArgs class The collision plane - - Get the collision plane - Data containing script sensor requests which allow an agent to know the specific details of a primitive sending script sensor requests - - - Construct a new instance of the ScriptSensorReplyEventArgs - - The ID of the primitive sending the sensor - The ID of the group associated with the primitive - The name of the primitive sending the sensor - The ID of the primitive sending the sensor - The ID of the owner of the primitive sending the sensor - The position of the primitive sending the sensor - The range the primitive specified to scan - The rotation of the primitive sending the sensor - The type of sensor the primitive sent - The velocity of the primitive sending the sensor - Get the ID of the primitive sending the sensor @@ -3009,12 +2997,24 @@ Get the velocity of the primitive sending the sensor + + + Construct a new instance of the ScriptSensorReplyEventArgs + + The ID of the primitive sending the sensor + The ID of the group associated with the primitive + The name of the primitive sending the sensor + The ID of the primitive sending the sensor + The ID of the owner of the primitive sending the sensor + The position of the primitive sending the sensor + The range the primitive specified to scan + The rotation of the primitive sending the sensor + The type of sensor the primitive sent + The velocity of the primitive sending the sensor + Contains the response data returned from the simulator in response to a - - Construct a new instance of the AvatarSitResponseEventArgs object - Get the ID of the primitive the agent will be sitting on @@ -3036,9 +3036,18 @@ Get the rotation of the agent when seated + + Construct a new instance of the AvatarSitResponseEventArgs object + Data sent when an agent joins a chat session your agent is currently participating in + + Get the ID of the chat session + + + Get the ID of the agent that joined + Construct a new instance of the ChatSessionMemberAddedEventArgs object @@ -3046,15 +3055,15 @@ The ID of the chat session The ID of the agent joining - - Get the ID of the chat session - - - Get the ID of the agent that joined - Data sent when an agent exits a chat session your agent is currently participating in + + Get the ID of the chat session + + + Get the ID of the agent that left + Construct a new instance of the ChatSessionMemberLeftEventArgs object @@ -3062,18 +3071,9 @@ The ID of the chat session The ID of the Agent that left - - Get the ID of the chat session - - - Get the ID of the agent that left - Event arguments with the result of setting display name operation - - Default constructor - Status code, 200 indicates settign display name was successful @@ -3083,12 +3083,40 @@ Details of the newly set display name + + Default constructor + Throttles the network traffic for various different traffic types. Access this class through GridClient.Throttle + + Maximum bits per second for resending unacknowledged packets + + + Maximum bits per second for LayerData terrain + + + Maximum bits per second for LayerData wind data + + + Maximum bits per second for LayerData clouds + + + Unknown, includes object data + + + Maximum bits per second for textures + + + Maximum bits per second for downloaded assets + + + Maximum bits per second the entire connection, divided up + between invidiual streams using default multipliers + Default constructor, uses a default high total of 1500 KBps (1536000) @@ -3125,35 +3153,10 @@ Byte array containing all the throttle values - - Maximum bits per second for resending unacknowledged packets - - - Maximum bits per second for LayerData terrain - - - Maximum bits per second for LayerData wind data - - - Maximum bits per second for LayerData clouds - - - Unknown, includes object data - - - Maximum bits per second for textures - - - Maximum bits per second for downloaded assets - - - Maximum bits per second the entire connection, divided up - between invidiual streams using default multipliers - - - - Static pre-defined animations available to all agents - + + + Static pre-defined animations available to all agents + Agent with afraid expression on face @@ -3583,6 +3586,12 @@ Appearance Flags, introdued with server side baking, currently unused + + Mask for multiple attachments + + + Mapping between BakeType and AvatarTextureIndex + Maximum number of concurrent downloads for wearable assets and textures @@ -3617,12 +3626,6 @@ Total number of wearables per bake layer - - Mask for multiple attachments - - - Mapping between BakeType and AvatarTextureIndex - Map of what wearables are included in each bake @@ -3634,6 +3637,54 @@ Default avatar texture, used to detect when a custom texture is not set for a face + + + Contains information about a wearable inventory item + + + + Inventory ItemID of the wearable + + + AssetID of the wearable asset + + + WearableType of the wearable + + + AssetType of the wearable + + + Asset data for the wearable + + + + Data collected from visual params for each wearable + needed for the calculation of the color + + + + + Holds a texture assetID and the data needed to bake this layer into + an outfit texture. Used to keep track of currently worn textures + and baking data + + + + A texture AssetID + + + Asset data for the texture + + + Collection of alpha masks that needs applying + + + Tint that should be applied to the texture + + + Where on avatar does this texture belong + The event subscribers. null if no subcribers @@ -3645,6 +3696,11 @@ Thread sync lock object + + Triggered when an AgentWearablesUpdate packet is received, + telling us what our avatar is currently wearing + request. + The event subscribers. null if no subcribers @@ -3656,6 +3712,12 @@ Thread sync lock object + + Raised when an AgentCachedTextureResponse packet is + received, giving a list of cached bakes that were found on the + simulator + request. + The event subscribers. null if no subcribers @@ -3666,6 +3728,13 @@ Thread sync lock object + + + Raised when appearance data is sent to the simulator, also indicates + the main appearance thread is finished. + + request. + The event subscribers. null if no subcribers @@ -3677,6 +3746,17 @@ Thread sync lock object + + + Triggered when the simulator requests the agent rebake its appearance. + + + + + + Returns true if AppearanceManager is busy and trying to set or change appearance will fail + + Visual parameters last sent to the sim @@ -4085,83 +4165,6 @@ A BakeType A list of texture slots that are inputs for the given bake - - Triggered when an AgentWearablesUpdate packet is received, - telling us what our avatar is currently wearing - request. - - - Raised when an AgentCachedTextureResponse packet is - received, giving a list of cached bakes that were found on the - simulator - request. - - - - Raised when appearance data is sent to the simulator, also indicates - the main appearance thread is finished. - - request. - - - - Triggered when the simulator requests the agent rebake its appearance. - - - - - - Returns true if AppearanceManager is busy and trying to set or change appearance will fail - - - - - Contains information about a wearable inventory item - - - - Inventory ItemID of the wearable - - - AssetID of the wearable asset - - - WearableType of the wearable - - - AssetType of the wearable - - - Asset data for the wearable - - - - Data collected from visual params for each wearable - needed for the calculation of the color - - - - - Holds a texture assetID and the data needed to bake this layer into - an outfit texture. Used to keep track of currently worn textures - and baking data - - - - A texture AssetID - - - Asset data for the texture - - - Collection of alpha masks that needs applying - - - Tint that should be applied to the texture - - - Where on avatar does this texture belong - Contains the Event data returned from the data server from an AgentWearablesRequest @@ -4177,18 +4180,21 @@ Contains the Event data returned from an AppearanceSetRequest + + Indicates whether appearance setting was successful + Triggered when appearance data is sent to the sim and the main appearance thread is done. Indicates whether appearance setting was successful - - Indicates whether appearance setting was successful - Contains the Event data returned from the data server from an RebakeAvatarTextures + + The ID of the Texture Layer to bake + Triggered when the simulator sends a request for this agent to rebake @@ -4196,14 +4202,22 @@ The ID of the Texture Layer to bake - - The ID of the Texture Layer to bake - Class that handles the local asset cache + + + Allows setting weather to periodicale prune the cache if it grows too big + Default is enabled, when caching is enabled + + + + + How long (in ms) between cache checks (default is 5 min.) + + Default constructor @@ -4308,17 +4322,6 @@ Byte size we want to output String with humanly readable file size - - - Allows setting weather to periodicale prune the cache if it grows too big - Default is enabled, when caching is enabled - - - - - How long (in ms) between cache checks (default is 5 min.) - - Helper class for sorting files by their last accessed time @@ -4468,6 +4471,26 @@ Number of milliseconds to wait for a transfer header packet if out of order data was received + + + Callback used for various asset download requests + + Transfer information + Downloaded asset, null on fail + + + + Callback used upon competition of baked texture upload + + Asset UUID of the newly uploaded baked texture + + + + A callback that fires upon the completition of the RequestMesh call + + Was the download successfull + Resulting mesh or null on problems + The event subscribers. null if no subcribers @@ -4479,6 +4502,9 @@ Thread sync lock object + + Raised when the simulator responds sends + The event subscribers. null if no subcribers @@ -4490,6 +4516,9 @@ Thread sync lock object + + Raised during upload completes + The event subscribers. null if no subcribers @@ -4501,6 +4530,9 @@ Thread sync lock object + + Raised during upload with progres update + The event subscribers. null if no subcribers @@ -4512,6 +4544,9 @@ Thread sync lock object + + Fired when the simulator sends an InitiateDownloadPacket, used to download terrain .raw files + The event subscribers. null if no subcribers @@ -4523,6 +4558,9 @@ Thread sync lock object + + Fired when a texture is in the process of being downloaded by the TexturePipeline class + Texture download cache @@ -4831,41 +4869,6 @@ The sender The EventArgs object containing the packet data - - Raised when the simulator responds sends - - - Raised during upload completes - - - Raised during upload with progres update - - - Fired when the simulator sends an InitiateDownloadPacket, used to download terrain .raw files - - - Fired when a texture is in the process of being downloaded by the TexturePipeline class - - - - Callback used for various asset download requests - - Transfer information - Downloaded asset, null on fail - - - - Callback used upon competition of baked texture upload - - Asset UUID of the newly uploaded baked texture - - - - A callback that fires upon the completition of the RequestMesh call - - Was the download successfull - Resulting mesh or null on problems - Xfer data @@ -4897,30738 +4900,31127 @@ Represents an avatar (other than your own) - - - Particle system specific enumerators, flags and methods. - - - - - Current version of the media data for the prim - - - + - Array of media entries indexed by face number + Positive and negative ratings - - - - - - - - - - - - - - - - - + + Positive ratings for Behavior - - + + Negative ratings for Behavior - - Foliage type for this primitive. Only applicable if this - primitive is foliage + + Positive ratings for Appearance - - Unknown + + Negative ratings for Appearance - - + + Positive ratings for Building - - + + Negative ratings for Building - - + + Positive ratings given by this avatar - - + + Negative ratings given by this avatar - - + + + Avatar properties including about text, profile URL, image IDs and + publishing settings + - - + + First Life about text - - + + First Life image ID - + - + - + - + - - + + Profile image ID - - + + Flags of the profile - - Identifies the owner if audio or a particle system is - active + + Web URL for this profile - - + + Should this profile be published on the web - - + + Avatar Online Status - - + + Is this a mature profile - + - + - - + + + Avatar interests including spoken languages, skills, and "want to" + choices + - - + + Languages profile field - + - + - + - + - - + + Groups that this avatar is a member of - - Objects physics engine propertis + + Positive and negative ratings - - Extra data about primitive + + Avatar properties including about text, profile URL, image IDs and + publishing settings - - Indicates if prim is attached to an avatar + + Avatar interests including spoken languages, skills, and "want to" + choices - - Number of clients referencing this prim + + Movement control flags for avatars. Typically not set or used by + clients. To move your avatar, use Client.Self.Movement instead - + - Default constructor + Contains the visual parameters describing the deformation of the avatar - + - Packs PathTwist, PathTwistBegin, PathRadiusOffset, and PathSkew - parameters in to signed eight bit values + Appearance version. Value greater than 0 indicates using server side baking - Floating point parameter to pack - Signed eight bit value containing the packed parameter - + - Unpacks PathTwist, PathTwistBegin, PathRadiusOffset, and PathSkew - parameters from signed eight bit integers to floating point values + Version of the Current Outfit Folder that the appearance is based on - Signed eight bit value to unpack - Unpacked floating point value - - - - - - - - - Uses basic heuristics to estimate the primitive shape - + - Complete structure for the particle system + Appearance flags. Introduced with server side baking, currently unused. - - Particle Flags - There appears to be more data packed in to this area - for many particle systems. It doesn't appear to be flag values - and serialization breaks unless there is a flag for every - possible bit so it is left as an unsigned integer - - - pattern of particles + + + List of current avatar animations + - - A representing the maximimum age (in seconds) particle will be displayed - Maximum value is 30 seconds + + First name - - A representing the number of seconds, - from when the particle source comes into view, - or the particle system's creation, that the object will emits particles; - after this time period no more particles are emitted + + Last name - - A in radians that specifies where particles will not be created + + Full name - - A in radians that specifies where particles will be created + + Active group - - A representing the number of seconds between burts. + + + Default constructor + - - A representing the number of meters - around the center of the source where particles will be created. + + Information about agents display name - - A representing in seconds, the minimum speed between bursts of new particles - being emitted + + Agent UUID - - A representing in seconds the maximum speed of new particles being emitted. + + Username - - A representing the maximum number of particles emitted per burst + + Display name - - A which represents the velocity (speed) from the source which particles are emitted + + First name (legacy) - - A which represents the Acceleration from the source which particles are emitted + + Last name (legacy) - - The Key of the texture displayed on the particle + + Full name (legacy) - - The Key of the specified target object or avatar particles will follow + + Is display name default display name - - Flags of particle from + + Cache display name until - - Max Age particle system will emit particles for + + Last updated timestamp - - The the particle has at the beginning of its lifecycle + + + Creates AgentDisplayName object from OSD + + Incoming OSD data + AgentDisplayName object - - The the particle has at the ending of its lifecycle + + + Return object as OSD map + + OSD containing agent's display name data - - A that represents the starting X size of the particle - Minimum value is 0, maximum value is 4 + + + Holds group information for Avatars such as those you might find in a profile + - - A that represents the starting Y size of the particle - Minimum value is 0, maximum value is 4 + + true of Avatar accepts group notices - - A that represents the ending X size of the particle - Minimum value is 0, maximum value is 4 + + Groups Key - - A that represents the ending Y size of the particle - Minimum value is 0, maximum value is 4 + + Texture Key for groups insignia - - A that represents the start glow value - Minimum value is 0, maximum value is 1 + + Name of the group - - A that represents the end glow value - Minimum value is 0, maximum value is 1 + + Powers avatar has in the group - - OpenGL blend function to use at particle source + + Avatars Currently selected title - - OpenGL blend function to use at particle destination + + true of Avatar has chosen to list this in their profile - + - Can this particle system be packed in a legacy compatible way + Contains an animation currently being played by an agent - True if the particle system doesn't use new particle system features - - - Decodes a byte[] array into a ParticleSystem Object - - ParticleSystem object - Start position for BitPacker + + The ID of the animation asset - + + A number to indicate start order of currently playing animations + On Linden Grids this number is unique per region, with OpenSim it is per client + + + + + - Generate byte[] array from particle data + Holds group information on an individual profile pick - Byte array - + - Particle source pattern + Retrieve friend status notifications, and retrieve avatar names and + profiles - - None + + The event subscribers, null of no subscribers - - Drop particles from source position with no force + + Raises the AvatarAnimation Event + An AvatarAnimationEventArgs object containing + the data sent from the simulator - - "Explode" particles in all directions + + Thread sync lock object - - Particles shoot across a 2D area + + Raised when the simulator sends us data containing + an agents animation playlist - - Particles shoot across a 3D Cone + + The event subscribers, null of no subscribers - - Inverse of AngleCone (shoot particles everywhere except the 3D cone defined + + Raises the AvatarAppearance Event + A AvatarAppearanceEventArgs object containing + the data sent from the simulator - - - Particle Data Flags - + + Thread sync lock object - - None + + Raised when the simulator sends us data containing + the appearance information for an agent - - Interpolate color and alpha from start to end + + The event subscribers, null of no subscribers - - Interpolate scale from start to end + + Raises the UUIDNameReply Event + A UUIDNameReplyEventArgs object containing + the data sent from the simulator - - Bounce particles off particle sources Z height + + Thread sync lock object - - velocity of particles is dampened toward the simulators wind + + Raised when the simulator sends us data containing + agent names/id values - - Particles follow the source + + The event subscribers, null of no subscribers - - Particles point towards the direction of source's velocity + + Raises the AvatarInterestsReply Event + A AvatarInterestsReplyEventArgs object containing + the data sent from the simulator - - Target of the particles + + Thread sync lock object - - Particles are sent in a straight line + + Raised when the simulator sends us data containing + the interests listed in an agents profile - - Particles emit a glow + + The event subscribers, null of no subscribers - - used for point/grab/touch + + Raises the AvatarPropertiesReply Event + A AvatarPropertiesReplyEventArgs object containing + the data sent from the simulator - - continuous ribbon particle + + Thread sync lock object - - particle data contains glow + + Raised when the simulator sends us data containing + profile property information for an agent - - particle data contains blend functions + + The event subscribers, null of no subscribers - - - Particle Flags Enum - + + Raises the AvatarGroupsReply Event + A AvatarGroupsReplyEventArgs object containing + the data sent from the simulator - - None + + Thread sync lock object - - Acceleration and velocity for particles are - relative to the object rotation + + Raised when the simulator sends us data containing + the group membership an agent is a member of - - Particles use new 'correct' angle parameters + + The event subscribers, null of no subscribers - - - Parameters used to construct a visual representation of a primitive - + + Raises the AvatarPickerReply Event + A AvatarPickerReplyEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + Raised when the simulator sends us data containing + name/id pair - - + + The event subscribers, null of no subscribers - - + + Raises the ViewerEffectPointAt Event + A ViewerEffectPointAtEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + Raised when the simulator sends us data containing + the objects and effect when an agent is pointing at - - + + The event subscribers, null of no subscribers - - + + Raises the ViewerEffectLookAt Event + A ViewerEffectLookAtEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + Raised when the simulator sends us data containing + the objects and effect when an agent is looking at - - + + The event subscribers, null of no subscribers - - + + Raises the ViewerEffect Event + A ViewerEffectEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + Raised when the simulator sends us data containing + an agents viewer effect information - - + + The event subscribers, null of no subscribers - - + + Raises the AvatarPicksReply Event + A AvatarPicksReplyEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + Raised when the simulator sends us data containing + the top picks from an agents profile - - + + The event subscribers, null of no subscribers - - + + Raises the PickInfoReply Event + A PickInfoReplyEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - - Calculdates hash code for prim construction data - - The has + + Raised when the simulator sends us data containing + the Pick details - - Attachment point to an avatar + + The event subscribers, null of no subscribers - - + + Raises the AvatarClassifiedReply Event + A AvatarClassifiedReplyEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + Raised when the simulator sends us data containing + the classified ads an agent has placed - - + + The event subscribers, null of no subscribers - - - Information on the flexible properties of a primitive - + + Raises the ClassifiedInfoReply Event + A ClassifiedInfoReplyEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + Raised when the simulator sends us data containing + the details of a classified ad - - + + The event subscribers, null of no subscribers - - + + Raises the DisplayNameUpdate Event + A DisplayNameUpdateEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + Raised when the simulator sends us data containing + the details of display name change - + - Default constructor + Callback giving results when fetching display names + If the request was successful + Array of display names + Array of UUIDs that could not be fetched - + - + Represents other avatars - - + - - - - - + + Tracks the specified avatar on your map + Avatar ID to track - + - + Request a single avatar name - + The avatar key to retrieve a name for - + - Information on the light properties of a primitive + Request a list of avatar names + The avatar keys to retrieve names for - - - - - - - - - - - - - - - - + - Default constructor + Check if Display Names functionality is available + True if Display name functionality is available - + - + Request retrieval of display names (max 90 names per request) - - + List of UUIDs to lookup + Callback to report result of the operation - + - + Start a request for Avatar Properties - + - + - + Search for an avatar (first name, last name) - + The name to search for + An ID to associate with this query - + - Information on the light properties of a primitive as texture map + Start a request for Avatar Picks + UUID of the avatar - - - - - - - + - Default constructor + Start a request for Avatar Classifieds + UUID of the avatar - + - + Start a request for details of a specific profile pick - - + UUID of the avatar + UUID of the profile pick - + - + Start a request for details of a specific profile classified - + UUID of the avatar + UUID of the profile classified - - - - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Information on the sculpt properties of a sculpted primitive - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Default constructor - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - - - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Render inside out (inverts the normals). - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - + - Render an X axis mirror of the sculpty. + EQ Message fired when someone nearby changes their display name + The message key + the IMessage object containing the deserialized data sent from the simulator + The which originated the packet - + - Extended properties to describe an object + Crossed region handler for message that comes across the EventQueue. Sent to an agent + when the agent crosses a sim border into a new region. + The message key + the IMessage object containing the deserialized data sent from the simulator + The which originated the packet - - - - - - - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Provides data for the event + The event occurs when the simulator sends + the animation playlist for an agent + + The following code example uses the and + properties to display the animation playlist of an avatar on the window. + + // subscribe to the event + Client.Avatars.AvatarAnimation += Avatars_AvatarAnimation; + + private void Avatars_AvatarAnimation(object sender, AvatarAnimationEventArgs e) + { + // create a dictionary of "known" animations from the Animations class using System.Reflection + Dictionary<UUID, string> systemAnimations = new Dictionary<UUID, string>(); + Type type = typeof(Animations); + System.Reflection.FieldInfo[] fields = type.GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static); + foreach (System.Reflection.FieldInfo field in fields) + { + systemAnimations.Add((UUID)field.GetValue(type), field.Name); + } + + // find out which animations being played are known animations and which are assets + foreach (Animation animation in e.Animations) + { + if (systemAnimations.ContainsKey(animation.AnimationID)) + { + Console.WriteLine("{0} is playing {1} ({2}) sequence {3}", e.AvatarID, + systemAnimations[animation.AnimationID], animation.AnimationSequence); + } + else + { + Console.WriteLine("{0} is playing {1} (Asset) sequence {2}", e.AvatarID, + animation.AnimationID, animation.AnimationSequence); + } + } + } + + - - + + Get the ID of the agent - - + + Get the list of animations to start - - + + + Construct a new instance of the AvatarAnimationEventArgs class + + The ID of the agent + The list of animations to start - - + + Provides data for the event + The event occurs when the simulator sends + the appearance data for an avatar + + The following code example uses the and + properties to display the selected shape of an avatar on the window. + + // subscribe to the event + Client.Avatars.AvatarAppearance += Avatars_AvatarAppearance; + + // handle the data when the event is raised + void Avatars_AvatarAppearance(object sender, AvatarAppearanceEventArgs e) + { + Console.WriteLine("The Agent {0} is using a {1} shape.", e.AvatarID, (e.VisualParams[31] > 0) : "male" ? "female") + } + + - - + + Get the Simulator this request is from of the agent - - + + Get the ID of the agent - - + + true if the agent is a trial account - - + + Get the default agent texture - - + + Get the agents appearance layer textures - - + + Get the for the agent - - + + Version of the appearance system used. + Value greater than 0 indicates that server side baking is used - - + + Version of the Current Outfit Folder the appearance is based on - - + + Appearance flags, introduced with server side baking, currently unused - + - Default constructor + Construct a new instance of the AvatarAppearanceEventArgs class + The simulator request was from + The ID of the agent + true of the agent is a trial account + The default agent texture + The agents appearance layer textures + The for the agent - - - Set the properties that are set in an ObjectPropertiesFamily packet - - that has - been partially filled by an ObjectPropertiesFamily packet - - - - Describes physics attributes of the prim - - - - Primitive's local ID + + Represents the interests from the profile of an agent - - Density (1000 for normal density) + + Get the ID of the agent - - Friction + + The properties of an agent - - Gravity multiplier (1 for normal gravity) + + Get the ID of the agent - - Type of physics representation of this primitive in the simulator + + Get the ID of the agent - - Restitution + + Get the ID of the agent - - - Creates PhysicsProperties from OSD - - OSDMap with incoming data - Deserialized PhysicsProperties object + + Get the ID of the avatar - + - Serializes PhysicsProperties to OSD + Event args class for display name notification messages - OSDMap with serialized PhysicsProperties data - + - Texture animation mode + Wrapper around a byte array that allows bit to be packed and unpacked + one at a time or by a variable amount. Useful for very tightly packed + data like LayerData packets - - Disable texture animation - - - Enable texture animation - - - Loop when animating textures + + - - Animate in reverse direction + + - - Animate forward then reverse + + - - Slide texture smoothly instead of frame-stepping + + + Default constructor, initialize the bit packer / bit unpacker + with a byte array and starting position + + Byte array to pack bits in to or unpack from + Starting position in the byte array - - Rotate texture instead of using frames + + + Pack a floating point value in to the data + + Floating point value to pack - - Scale texture instead of using frames + + + Pack part or all of an integer in to the data + + Integer containing the data to pack + Number of bits of the integer to pack - + - A single textured face. Don't instantiate this class yourself, use the - methods in TextureEntry + Pack part or all of an unsigned integer in to the data + Unsigned integer containing the data to pack + Number of bits of the integer to pack - + - Contains the definition for individual faces + Pack a single bit in to the data - + Bit to pack - + - - - - - - - - - - - - - - - - - - - - - - + + + + - - + + + + + - - + + + + + - - + + + Unpacking a floating point value from the data + + Unpacked floating point value - - In the future this will specify whether a webpage is - attached to this face + + + Unpack a variable number of bits from the data in to integer format + + Number of bits to unpack + An integer containing the unpacked bits + This function is only useful up to 32 bits - - + + + Unpack a variable number of bits from the data in to unsigned + integer format + + Number of bits to unpack + An unsigned integer containing the unpacked bits + This function is only useful up to 32 bits - - + + + Unpack a 16-bit signed integer + + 16-bit signed integer - + - Represents all of the texturable faces for an object + Unpack a 16-bit unsigned integer - Grid objects have infinite faces, with each face - using the properties of the default face unless set otherwise. So if - you have a TextureEntry with a default texture uuid of X, and face 18 - has a texture UUID of Y, every face would be textured with X except for - face 18 that uses Y. In practice however, primitives utilize a maximum - of nine faces + 16-bit unsigned integer - - + + + Unpack a 32-bit signed integer + + 32-bit signed integer - - + + + Unpack a 32-bit unsigned integer + + 32-bit unsigned integer - + - Constructor that takes a default texture UUID + Reads in a byte array of an Animation Asset created by the SecondLife(tm) client. - Texture UUID to use as the default texture - + - Constructor that takes a TextureEntryFace for the - default face + Rotation Keyframe count (used internally) - Face to use as the default face - + - Constructor that creates the TextureEntry class from a byte array + Position Keyframe count (used internally) - Byte array containing the TextureEntry field - Starting position of the TextureEntry field in - the byte array - Length of the TextureEntry field, in bytes - + - This will either create a new face if a custom face for the given - index is not defined, or return the custom face for that index if - it already exists + Animation Priority - The index number of the face to create or - retrieve - A TextureEntryFace containing all the properties for that - face - + - + The animation length in seconds. - - - + - + Expression set in the client. Null if [None] is selected - - + - + The time in seconds to start the animation - - + - + The time in seconds to end the animation - - + - Controls the texture animation of a particular prim + Loop the animation - - + + + Meta data. Ease in Seconds. + - - + + + Meta data. Ease out seconds. + - - + + + Meta Data for the Hand Pose + - - + + + Number of joints defined in the animation + - - + + + Contains an array of joints + - - + + + Searialize an animation asset into it's joints/keyframes/meta data + + - - + + + Variable length strings seem to be null terminated in the animation asset.. but.. + use with caution, home grown. + advances the index. + + The animation asset byte array + The offset to start reading + a string - + - + Read in a Joint from an animation asset byte array + Variable length Joint fields, yay! + Advances the index - - + animation asset byte array + Byte Offset of the start of the joint + The Joint data serialized into the binBVHJoint structure - + - + Read Keyframes of a certain type + advance i + Animation Byte array + Offset in the Byte Array. Will be advanced + Number of Keyframes + Scaling Min to pass to the Uint16ToFloat method + Scaling Max to pass to the Uint16ToFloat method - - Groups that this avatar is a member of + + + Determines whether the specified is equal to the current . + + + true if the specified is equal to the current ; otherwise, false. + + The to compare with the current . + The parameter is null. + 2 - - Positive and negative ratings + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + 2 - - Avatar properties including about text, profile URL, image IDs and - publishing settings + + + A Joint and it's associated meta data and keyframes + - - Avatar interests including spoken languages, skills, and "want to" - choices + + + Indicates whether this instance and a specified object are equal. + + + true if and this instance are the same type and represent the same value; otherwise, false. + + Another object to compare to. + 2 - - Movement control flags for avatars. Typically not set or used by - clients. To move your avatar, use Client.Self.Movement instead + + + Returns the hash code for this instance. + + + A 32-bit signed integer that is the hash code for this instance. + + 2 - + - Contains the visual parameters describing the deformation of the avatar + Name of the Joint. Matches the avatar_skeleton.xml in client distros - + - Appearance version. Value greater than 0 indicates using server side baking + Joint Animation Override? Was the same as the Priority in testing.. - + - Version of the Current Outfit Folder that the appearance is based on + Array of Rotation Keyframes in order from earliest to latest - + - Appearance flags. Introduced with server side baking, currently unused. + Array of Position Keyframes in order from earliest to latest + This seems to only be for the Pelvis? - + - List of current avatar animations + Custom application data that can be attached to a joint - + - Default constructor + A Joint Keyframe. This is either a position or a rotation. - - First name - - - Last name + + + Either a Vector3 position or a Vector3 Euler rotation + - - Full name + + + Poses set in the animation metadata for the hands. + - - Active group + + + Capabilities is the name of the bi-directional HTTP REST protocol + used to communicate non real-time transactions such as teleporting or + group messaging + - + - Positive and negative ratings + Triggered when an event is received via the EventQueueGet + capability + Event name + Decoded event data + The simulator that generated the event - - Positive ratings for Behavior + + Reference to the simulator this system is connected to - - Negative ratings for Behavior + + Capabilities URI this system was initialized with - - Positive ratings for Appearance + + Whether the capabilities event queue is connected and + listening for incoming events - - Negative ratings for Appearance + + + Default constructor + + + - - Positive ratings for Building + + + Request the URI of a named capability + + Name of the capability to request + The URI of the requested capability, or String.Empty if + the capability does not exist - - Negative ratings for Building + + + Process any incoming events, check to see if we have a message created for the event, + + + - - Positive ratings given by this avatar + + + Attempts to convert an LLSD structure to a known Packet type + + Event name, this must match an actual + packet name for a Packet to be successfully built + LLSD to convert to a Packet + A Packet on success, otherwise null - - Negative ratings given by this avatar + + + A custom decoder callback + + The key of the object + the data to decode + A string represending the fieldData - + - Avatar properties including about text, profile URL, image IDs and - publishing settings + Add a custom decoder callback + The key of the field to decode + The custom decode handler - - First Life about text + + + Remove a custom decoder callback + + The key of the field to decode + The custom decode handler - - First Life image ID - - - + + + Creates a formatted string containing the values of a Packet + + The Packet + A formatted string of values of the nested items in the Packet object - - + + + Decode an IMessage object into a beautifully formatted string + + The IMessage object + Recursion level (used for indenting) + A formatted string containing the names and values of the source object - - + + + Thrown when a packet could not be successfully deserialized + - - + + + Default constructor + - - Profile image ID + + + Constructor that takes an additional error message + + An error message to attach to this exception - - Flags of the profile + + + The header of a message template packet. Holds packet flags, sequence + number, packet ID, and any ACKs that will be appended at the end of + the packet + - - Web URL for this profile + + + Convert the AckList to a byte array, used for packet serializing + + Reference to the target byte array + Beginning position to start writing to in the byte + array, will be updated with the ending position of the ACK list - - Should this profile be published on the web + + + + + + + + - - Avatar Online Status + + + + + + + - - Is this a mature profile + + + A block of data in a packet. Packets are composed of one or more blocks, + each block containing one or more fields + - - + + Current length of the data in this packet - - + + + Create a block from a byte array + + Byte array containing the serialized block + Starting position of the block in the byte array. + This will point to the data after the end of the block when the + call returns - + - Avatar interests including spoken languages, skills, and "want to" - choices + Serialize this block into a byte array + Byte array to serialize this block into + Starting position in the byte array to serialize to. + This will point to the position directly after the end of the + serialized block when the call returns - - Languages profile field + + A generic value, not an actual packet type - - + + - - + + - - + + - - + + - - Information about agents display name + + - - Agent UUID + + - - Username + + - - Display name + + - - First name (legacy) + + - - Last name (legacy) + + - - Is display name default display name + + - - Cache display name until + + - - Last updated timestamp + + - - - Creates AgentDisplayName object from OSD - - Incoming OSD data - AgentDisplayName object + + - - - Return object as OSD map - - OSD containing agent's display name data + + - - Full name (legacy) + + - - - Holds group information for Avatars such as those you might find in a profile - + + - - true of Avatar accepts group notices + + - - Groups Key + + - - Texture Key for groups insignia + + - - Name of the group + + - - Powers avatar has in the group + + - - Avatars Currently selected title + + - - true of Avatar has chosen to list this in their profile + + - - - Contains an animation currently being played by an agent - + + - - The ID of the animation asset + + - - A number to indicate start order of currently playing animations - On Linden Grids this number is unique per region, with OpenSim it is per client + + - - + + - - - Holds group information on an individual profile pick - + + - - - Retrieve friend status notifications, and retrieve avatar names and - profiles - + + - - The event subscribers, null of no subscribers + + - - Raises the AvatarAnimation Event - An AvatarAnimationEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the AvatarAppearance Event - A AvatarAppearanceEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the UUIDNameReply Event - A UUIDNameReplyEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the AvatarInterestsReply Event - A AvatarInterestsReplyEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the AvatarPropertiesReply Event - A AvatarPropertiesReplyEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the AvatarGroupsReply Event - A AvatarGroupsReplyEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the AvatarPickerReply Event - A AvatarPickerReplyEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the ViewerEffectPointAt Event - A ViewerEffectPointAtEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the ViewerEffectLookAt Event - A ViewerEffectLookAtEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the ViewerEffect Event - A ViewerEffectEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the AvatarPicksReply Event - A AvatarPicksReplyEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the PickInfoReply Event - A PickInfoReplyEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the AvatarClassifiedReply Event - A AvatarClassifiedReplyEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the ClassifiedInfoReply Event - A ClassifiedInfoReplyEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the DisplayNameUpdate Event - A DisplayNameUpdateEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - - Represents other avatars - - + + - - Tracks the specified avatar on your map - Avatar ID to track + + - - - Request a single avatar name - - The avatar key to retrieve a name for + + - - - Request a list of avatar names - - The avatar keys to retrieve names for + + - - - Check if Display Names functionality is available - - True if Display name functionality is available + + - - - Request retrieval of display names (max 90 names per request) - - List of UUIDs to lookup - Callback to report result of the operation + + - - - Start a request for Avatar Properties - - + + - - - Search for an avatar (first name, last name) - - The name to search for - An ID to associate with this query + + - - - Start a request for Avatar Picks - - UUID of the avatar + + - - - Start a request for Avatar Classifieds - - UUID of the avatar + + - - - Start a request for details of a specific profile pick - - UUID of the avatar - UUID of the profile pick + + - - - Start a request for details of a specific profile classified - - UUID of the avatar - UUID of the profile classified + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - - EQ Message fired when someone nearby changes their display name - - The message key - the IMessage object containing the deserialized data sent from the simulator - The which originated the packet + + - - - Crossed region handler for message that comes across the EventQueue. Sent to an agent - when the agent crosses a sim border into a new region. - - The message key - the IMessage object containing the deserialized data sent from the simulator - The which originated the packet + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Raised when the simulator sends us data containing - an agents animation playlist + + - - Raised when the simulator sends us data containing - the appearance information for an agent + + - - Raised when the simulator sends us data containing - agent names/id values + + - - Raised when the simulator sends us data containing - the interests listed in an agents profile + + - - Raised when the simulator sends us data containing - profile property information for an agent + + - - Raised when the simulator sends us data containing - the group membership an agent is a member of + + - - Raised when the simulator sends us data containing - name/id pair + + - - Raised when the simulator sends us data containing - the objects and effect when an agent is pointing at + + - - Raised when the simulator sends us data containing - the objects and effect when an agent is looking at + + - - Raised when the simulator sends us data containing - an agents viewer effect information + + - - Raised when the simulator sends us data containing - the top picks from an agents profile + + - - Raised when the simulator sends us data containing - the Pick details + + - - Raised when the simulator sends us data containing - the classified ads an agent has placed + + - - Raised when the simulator sends us data containing - the details of a classified ad + + - - Raised when the simulator sends us data containing - the details of display name change + + - - - Callback giving results when fetching display names - - If the request was successful - Array of display names - Array of UUIDs that could not be fetched + + - - Provides data for the event - The event occurs when the simulator sends - the animation playlist for an agent - - The following code example uses the and - properties to display the animation playlist of an avatar on the window. - - // subscribe to the event - Client.Avatars.AvatarAnimation += Avatars_AvatarAnimation; - - private void Avatars_AvatarAnimation(object sender, AvatarAnimationEventArgs e) - { - // create a dictionary of "known" animations from the Animations class using System.Reflection - Dictionary<UUID, string> systemAnimations = new Dictionary<UUID, string>(); - Type type = typeof(Animations); - System.Reflection.FieldInfo[] fields = type.GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static); - foreach (System.Reflection.FieldInfo field in fields) - { - systemAnimations.Add((UUID)field.GetValue(type), field.Name); - } - - // find out which animations being played are known animations and which are assets - foreach (Animation animation in e.Animations) - { - if (systemAnimations.ContainsKey(animation.AnimationID)) - { - Console.WriteLine("{0} is playing {1} ({2}) sequence {3}", e.AvatarID, - systemAnimations[animation.AnimationID], animation.AnimationSequence); - } - else - { - Console.WriteLine("{0} is playing {1} (Asset) sequence {2}", e.AvatarID, - animation.AnimationID, animation.AnimationSequence); - } - } - } - - + + - - - Construct a new instance of the AvatarAnimationEventArgs class - - The ID of the agent - The list of animations to start + + - - Get the ID of the agent + + - - Get the list of animations to start + + - - Provides data for the event - The event occurs when the simulator sends - the appearance data for an avatar - - The following code example uses the and - properties to display the selected shape of an avatar on the window. - - // subscribe to the event - Client.Avatars.AvatarAppearance += Avatars_AvatarAppearance; - - // handle the data when the event is raised - void Avatars_AvatarAppearance(object sender, AvatarAppearanceEventArgs e) - { - Console.WriteLine("The Agent {0} is using a {1} shape.", e.AvatarID, (e.VisualParams[31] > 0) : "male" ? "female") - } - - + + - - - Construct a new instance of the AvatarAppearanceEventArgs class - - The simulator request was from - The ID of the agent - true of the agent is a trial account - The default agent texture - The agents appearance layer textures - The for the agent + + - - Get the Simulator this request is from of the agent + + - - Get the ID of the agent + + - - true if the agent is a trial account + + - - Get the default agent texture + + - - Get the agents appearance layer textures + + - - Get the for the agent + + - - Version of the appearance system used. - Value greater than 0 indicates that server side baking is used + + - - Version of the Current Outfit Folder the appearance is based on + + - - Appearance flags, introduced with server side baking, currently unused + + - - Represents the interests from the profile of an agent + + - - Get the ID of the agent + + - - The properties of an agent + + - - Get the ID of the agent + + - - Get the ID of the agent + + - - Get the ID of the agent + + - - Get the ID of the avatar + + - - - Event args class for display name notification messages - + + - - - Wrapper around a byte array that allows bit to be packed and unpacked - one at a time or by a variable amount. Useful for very tightly packed - data like LayerData packets - + + - - + + - - - Default constructor, initialize the bit packer / bit unpacker - with a byte array and starting position - - Byte array to pack bits in to or unpack from - Starting position in the byte array + + - - - Pack a floating point value in to the data - - Floating point value to pack + + - - - Pack part or all of an integer in to the data - - Integer containing the data to pack - Number of bits of the integer to pack + + - - - Pack part or all of an unsigned integer in to the data - - Unsigned integer containing the data to pack - Number of bits of the integer to pack + + - - - Pack a single bit in to the data - - Bit to pack + + - - - - - - - - + + - - - - - + + - - - - - + + - - - Unpacking a floating point value from the data - - Unpacked floating point value + + - - - Unpack a variable number of bits from the data in to integer format - - Number of bits to unpack - An integer containing the unpacked bits - This function is only useful up to 32 bits + + - - - Unpack a variable number of bits from the data in to unsigned - integer format - - Number of bits to unpack - An unsigned integer containing the unpacked bits - This function is only useful up to 32 bits + + - - - Unpack a 16-bit signed integer - - 16-bit signed integer + + - - - Unpack a 16-bit unsigned integer - - 16-bit unsigned integer + + - - - Unpack a 32-bit signed integer - - 32-bit signed integer + + - - - Unpack a 32-bit unsigned integer - - 32-bit unsigned integer + + - - + + - - + + - - - Reads in a byte array of an Animation Asset created by the SecondLife(tm) client. - + + - - - Rotation Keyframe count (used internally) - + + - - - Position Keyframe count (used internally) - + + - - - Animation Priority - + + - - - The animation length in seconds. - + + - - - Expression set in the client. Null if [None] is selected - + + - - - The time in seconds to start the animation - + + - - - The time in seconds to end the animation - + + - - - Loop the animation - + + - - - Meta data. Ease in Seconds. - + + - - - Meta data. Ease out seconds. - + + - - - Meta Data for the Hand Pose - + + - - - Number of joints defined in the animation - + + - - - Contains an array of joints - + + - - - Searialize an animation asset into it's joints/keyframes/meta data - - + + - - - Variable length strings seem to be null terminated in the animation asset.. but.. - use with caution, home grown. - advances the index. - - The animation asset byte array - The offset to start reading - a string + + - - - Read in a Joint from an animation asset byte array - Variable length Joint fields, yay! - Advances the index - - animation asset byte array - Byte Offset of the start of the joint - The Joint data serialized into the binBVHJoint structure + + - - - Read Keyframes of a certain type - advance i - - Animation Byte array - Offset in the Byte Array. Will be advanced - Number of Keyframes - Scaling Min to pass to the Uint16ToFloat method - Scaling Max to pass to the Uint16ToFloat method - + + - - - Determines whether the specified is equal to the current . - - - true if the specified is equal to the current ; otherwise, false. - - The to compare with the current . - The parameter is null. - 2 + + - - - Serves as a hash function for a particular type. - - - A hash code for the current . - - 2 + + - - - A Joint and it's associated meta data and keyframes - + + - - - Indicates whether this instance and a specified object are equal. - - - true if and this instance are the same type and represent the same value; otherwise, false. - - Another object to compare to. - 2 + + - - - Returns the hash code for this instance. - - - A 32-bit signed integer that is the hash code for this instance. - - 2 + + - - - Name of the Joint. Matches the avatar_skeleton.xml in client distros - + + - - - Joint Animation Override? Was the same as the Priority in testing.. - + + - - - Array of Rotation Keyframes in order from earliest to latest - + + - - - Array of Position Keyframes in order from earliest to latest - This seems to only be for the Pelvis? - + + - - - Custom application data that can be attached to a joint - + + - - - A Joint Keyframe. This is either a position or a rotation. - + + - - - Either a Vector3 position or a Vector3 Euler rotation - + + - - - Poses set in the animation metadata for the hands. - + + - - - Capabilities is the name of the bi-directional HTTP REST protocol - used to communicate non real-time transactions such as teleporting or - group messaging - + + - - Reference to the simulator this system is connected to + + - - - Default constructor - - - + + - - - Request the URI of a named capability - - Name of the capability to request - The URI of the requested capability, or String.Empty if - the capability does not exist + + - - - Process any incoming events, check to see if we have a message created for the event, - - - + + - - Capabilities URI this system was initialized with + + - - Whether the capabilities event queue is connected and - listening for incoming events + + - - - Triggered when an event is received via the EventQueueGet - capability - - Event name - Decoded event data - The simulator that generated the event + + - - - Attempts to convert an LLSD structure to a known Packet type - - Event name, this must match an actual - packet name for a Packet to be successfully built - LLSD to convert to a Packet - A Packet on success, otherwise null + + - - - - - Looking direction, must be a normalized vector - Up direction, must be a normalized vector + + - - - Align the coordinate frame X and Y axis with a given rotation - around the Z axis in radians - - Absolute rotation around the Z axis in - radians + + - - Origin position of this coordinate frame + + - - X axis of this coordinate frame, or Forward/At in grid terms + + - - Y axis of this coordinate frame, or Left in grid terms + + - - Z axis of this coordinate frame, or Up in grid terms + + - - - Access to the data server which allows searching for land, events, people, etc - + + - - The event subscribers. null if no subcribers + + - - Raises the EventInfoReply event - An EventInfoReplyEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the DirEventsReply event - An DirEventsReplyEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the PlacesReply event - A PlacesReplyEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the DirPlacesReply event - A DirPlacesReplyEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the DirClassifiedsReply event - A DirClassifiedsReplyEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the DirGroupsReply event - A DirGroupsReplyEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the DirPeopleReply event - A DirPeopleReplyEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the DirLandReply event - A DirLandReplyEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - - Constructs a new instance of the DirectoryManager class - - An instance of GridClient + + - - - Query the data server for a list of classified ads containing the specified string. - Defaults to searching for classified placed in any category, and includes PG, Adult and Mature - results. - - Responses are sent 16 per response packet, there is no way to know how many results a query reply will contain however assuming - the reply packets arrived ordered, a response with less than 16 entries would indicate all results have been received - - The event is raised when a response is received from the simulator - - A string containing a list of keywords to search for - A UUID to correlate the results when the event is raised + + - - - Query the data server for a list of classified ads which contain specified keywords (Overload) - - The event is raised when a response is received from the simulator - - A string containing a list of keywords to search for - The category to search - A set of flags which can be ORed to modify query options - such as classified maturity rating. - A UUID to correlate the results when the event is raised - - Search classified ads containing the key words "foo" and "bar" in the "Any" category that are either PG or Mature - - UUID searchID = StartClassifiedSearch("foo bar", ClassifiedCategories.Any, ClassifiedQueryFlags.PG | ClassifiedQueryFlags.Mature); - - - - Responses are sent 16 at a time, there is no way to know how many results a query reply will contain however assuming - the reply packets arrived ordered, a response with less than 16 entries would indicate all results have been received - + + - - - Starts search for places (Overloaded) - - The event is raised when a response is received from the simulator - - Search text - Each request is limited to 100 places - being returned. To get the first 100 result entries of a request use 0, - from 100-199 use 1, 200-299 use 2, etc. - A UUID to correlate the results when the event is raised + + - - - Queries the dataserver for parcels of land which are flagged to be shown in search - - The event is raised when a response is received from the simulator - - A string containing a list of keywords to search for separated by a space character - A set of flags which can be ORed to modify query options - such as classified maturity rating. - The category to search - Each request is limited to 100 places - being returned. To get the first 100 result entries of a request use 0, - from 100-199 use 1, 200-299 use 2, etc. - A UUID to correlate the results when the event is raised - - Search places containing the key words "foo" and "bar" in the "Any" category that are either PG or Adult - - UUID searchID = StartDirPlacesSearch("foo bar", DirFindFlags.DwellSort | DirFindFlags.IncludePG | DirFindFlags.IncludeAdult, ParcelCategory.Any, 0); - - - - Additional information on the results can be obtained by using the ParcelManager.InfoRequest method - + + - - - Starts a search for land sales using the directory - - The event is raised when a response is received from the simulator - - What type of land to search for. Auction, - estate, mainland, "first land", etc - The OnDirLandReply event handler must be registered before - calling this function. There is no way to determine how many - results will be returned, or how many times the callback will be - fired other than you won't get more than 100 total parcels from - each query. + + - - - Starts a search for land sales using the directory - - The event is raised when a response is received from the simulator - - What type of land to search for. Auction, - estate, mainland, "first land", etc - Maximum price to search for - Maximum area to search for - Each request is limited to 100 parcels - being returned. To get the first 100 parcels of a request use 0, - from 100-199 use 1, 200-299 use 2, etc. - The OnDirLandReply event handler must be registered before - calling this function. There is no way to determine how many - results will be returned, or how many times the callback will be - fired other than you won't get more than 100 total parcels from - each query. + + - - - Send a request to the data server for land sales listings - - - Flags sent to specify query options - - Available flags: - Specify the parcel rating with one or more of the following: - IncludePG IncludeMature IncludeAdult - - Specify the field to pre sort the results with ONLY ONE of the following: - PerMeterSort NameSort AreaSort PricesSort - - Specify the order the results are returned in, if not specified the results are pre sorted in a Descending Order - SortAsc - - Specify additional filters to limit the results with one or both of the following: - LimitByPrice LimitByArea - - Flags can be combined by separating them with the | (pipe) character - - Additional details can be found in - - What type of land to search for. Auction, - Estate or Mainland - Maximum price to search for when the - DirFindFlags.LimitByPrice flag is specified in findFlags - Maximum area to search for when the - DirFindFlags.LimitByArea flag is specified in findFlags - Each request is limited to 100 parcels - being returned. To get the first 100 parcels of a request use 0, - from 100-199 use 100, 200-299 use 200, etc. - The event will be raised with the response from the simulator - - There is no way to determine how many results will be returned, or how many times the callback will be - fired other than you won't get more than 100 total parcels from - each reply. - - Any land set for sale to either anybody or specific to the connected agent will be included in the - results if the land is included in the query - - - // request all mainland, any maturity rating that is larger than 512 sq.m - StartLandSearch(DirFindFlags.SortAsc | DirFindFlags.PerMeterSort | DirFindFlags.LimitByArea | DirFindFlags.IncludePG | DirFindFlags.IncludeMature | DirFindFlags.IncludeAdult, SearchTypeFlags.Mainland, 0, 512, 0); - + + - - - Search for Groups - - The name or portion of the name of the group you wish to search for - Start from the match number - + + - - - Search for Groups - - The name or portion of the name of the group you wish to search for - Start from the match number - Search flags - + + - - - Search the People directory for other avatars - - The name or portion of the name of the avatar you wish to search for - - + + - - - Search Places for parcels of land you personally own - + + - - - Searches Places for land owned by the specified group - - ID of the group you want to recieve land list for (You must be a member of the group) - Transaction (Query) ID which can be associated with results from your request. + + - - - Search the Places directory for parcels that are listed in search and contain the specified keywords - - A string containing the keywords to search for - Transaction (Query) ID which can be associated with results from your request. + + - - - Search Places - All Options - - One of the Values from the DirFindFlags struct, ie: AgentOwned, GroupOwned, etc. - One of the values from the SearchCategory Struct, ie: Any, Linden, Newcomer - A string containing a list of keywords to search for separated by a space character - String Simulator Name to search in - LLUID of group you want to recieve results for - Transaction (Query) ID which can be associated with results from your request. - Transaction (Query) ID which can be associated with results from your request. + + - - - Search All Events with specifid searchText in all categories, includes PG, Mature and Adult - - A string containing a list of keywords to search for separated by a space character - Each request is limited to 100 entries - being returned. To get the first group of entries of a request use 0, - from 100-199 use 100, 200-299 use 200, etc. - UUID of query to correlate results in callback. + + - - - Search Events - - A string containing a list of keywords to search for separated by a space character - One or more of the following flags: DateEvents, IncludePG, IncludeMature, IncludeAdult - from the Enum - - Multiple flags can be combined by separating the flags with the | (pipe) character - "u" for in-progress and upcoming events, -or- number of days since/until event is scheduled - For example "0" = Today, "1" = tomorrow, "2" = following day, "-1" = yesterday, etc. - Each request is limited to 100 entries - being returned. To get the first group of entries of a request use 0, - from 100-199 use 100, 200-299 use 200, etc. - EventCategory event is listed under. - UUID of query to correlate results in callback. + + - - Requests Event Details - ID of Event returned from the method + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming event message - The Unique Capabilities Key - The event message containing the data - The simulator the message originated from + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming event message - The Unique Capabilities Key - The event message containing the data - The simulator the message originated from + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Raised when the data server responds to a request. + + - - Raised when the data server responds to a request. + + - - Raised when the data server responds to a request. + + - - Raised when the data server responds to a request. + + - - Raised when the data server responds to a request. + + - - Raised when the data server responds to a request. + + - - Raised when the data server responds to a request. + + - - Raised when the data server responds to a request. + + - - Classified Ad categories + + - - Classified is listed in the Any category + + - - Classified is shopping related + + - - Classified is + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - Event Categories + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - Query Flags used in many of the DirectoryManager methods to specify which query to execute and how to return the results. - - Flags can be combined using the | (pipe) character, not all flags are available in all queries - + + - - Query the People database + + - - + + - - + + - - Query the Groups database + + - - Query the Events database + + - - Query the land holdings database for land owned by the currently connected agent + + - - + + - - Query the land holdings database for land which is owned by a Group + + - - Specifies the query should pre sort the results based upon traffic - when searching the Places database + + - - + + - - + + - - + + - - + + - - Specifies the query should pre sort the results in an ascending order when searching the land sales database. - This flag is only used when searching the land sales database + + - - Specifies the query should pre sort the results using the SalePrice field when searching the land sales database. - This flag is only used when searching the land sales database + + - - Specifies the query should pre sort the results by calculating the average price/sq.m (SalePrice / Area) when searching the land sales database. - This flag is only used when searching the land sales database + + - - Specifies the query should pre sort the results using the ParcelSize field when searching the land sales database. - This flag is only used when searching the land sales database + + - - Specifies the query should pre sort the results using the Name field when searching the land sales database. - This flag is only used when searching the land sales database + + - - When set, only parcels less than the specified Price will be included when searching the land sales database. - This flag is only used when searching the land sales database + + - - When set, only parcels greater than the specified Size will be included when searching the land sales database. - This flag is only used when searching the land sales database + + - - + + - - + + - - Include PG land in results. This flag is used when searching both the Groups, Events and Land sales databases + + - - Include Mature land in results. This flag is used when searching both the Groups, Events and Land sales databases + + - - Include Adult land in results. This flag is used when searching both the Groups, Events and Land sales databases + + - - + + - - - Land types to search dataserver for - + + - - Search Auction, Mainland and Estate + + - - Land which is currently up for auction + + - - Parcels which are on the mainland (Linden owned) continents + + - - Parcels which are on privately owned simulators + + - - - The content rating of the event - - - - Event is PG + + - - Event is Mature + + - - Event is Adult + + - - - Classified Ad Options - - There appear to be two formats the flags are packed in. - This set of flags is for the newer style + + - - + + - - + + - - + + - - + + - - + + - - - Classified ad query options - + + - - Include all ads in results + + - - Include PG ads in results + + - - Include Mature ads in results + + - - Include Adult ads in results + + - - - The For Sale flag in PlacesReplyData - + + - - Parcel is not listed for sale + + - - Parcel is For Sale + + - - - A classified ad on the grid - + + - - UUID for this ad, useful for looking up detailed - information about it + + - - The title of this classified ad + + - - Flags that show certain options applied to the classified + + - - Creation date of the ad + + - - Expiration date of the ad + + - - Price that was paid for this ad + + - - Print the struct data as a string - A string containing the field name, and field value + + - - - A parcel retrieved from the dataserver such as results from the - "For-Sale" listings or "Places" Search - + + - - The unique dataserver parcel ID - This id is used to obtain additional information from the entry - by using the method + + - - A string containing the name of the parcel + + - - The size of the parcel - This field is not returned for Places searches + + - - The price of the parcel - This field is not returned for Places searches + + - - If True, this parcel is flagged to be auctioned + + - - If true, this parcel is currently set for sale + + - - Parcel traffic + + - - Print the struct data as a string - A string containing the field name, and field value + + - - - An Avatar returned from the dataserver - + + - - Online status of agent - This field appears to be obsolete and always returns false + + - - The agents first name + + - - The agents last name + + - - The agents + + - - Print the struct data as a string - A string containing the field name, and field value + + - - - Response to a "Groups" Search - + + - - The Group ID + + - - The name of the group + + - - The current number of members + + - - Print the struct data as a string - A string containing the field name, and field value + + - - - Parcel information returned from a request - - Represents one of the following: - A parcel of land on the grid that has its Show In Search flag set - A parcel of land owned by the agent making the request - A parcel of land owned by a group the agent making the request is a member of - - - In a request for Group Land, the First record will contain an empty record - - Note: This is not the same as searching the land for sale data source - + + - - The ID of the Agent of Group that owns the parcel + + - - The name + + - - The description + + - - The Size of the parcel + + - - The billable Size of the parcel, for mainland - parcels this will match the ActualArea field. For Group owned land this will be 10 percent smaller - than the ActualArea. For Estate land this will always be 0 + + - - Indicates the ForSale status of the parcel + + - - The Gridwide X position + + - - The Gridwide Y position + + - - The Z position of the parcel, or 0 if no landing point set + + - - The name of the Region the parcel is located in + + - - The Asset ID of the parcels Snapshot texture + + - - The calculated visitor traffic + + - - The billing product SKU - Known values are: - - 023Mainland / Full Region - 024Estate / Full Region - 027Estate / Openspace - 029Estate / Homestead - 129Mainland / Homestead (Linden Owned) - - + + - - No longer used, will always be 0 + + - - Get a SL URL for the parcel - A string, containing a standard SLURL + + - - Print the struct data as a string - A string containing the field name, and field value + + - - - An "Event" Listing summary - + + - - The ID of the event creator + + - - The name of the event + + - - The events ID + + - - A string containing the short date/time the event will begin + + - - The event start time in Unixtime (seconds since epoch) + + - - The events maturity rating + + - - Print the struct data as a string - A string containing the field name, and field value + + - - - The details of an "Event" - + + - - The events ID + + - - The ID of the event creator + + - - The name of the event + + - - The category + + - - The events description + + - - The short date/time the event will begin + + - - The event start time in Unixtime (seconds since epoch) UTC adjusted + + - - The length of the event in minutes + + - - 0 if no cover charge applies + + - - The cover charge amount in L$ if applicable + + - - The name of the region where the event is being held + + - - The gridwide location of the event + + - - The maturity rating + + - - Get a SL URL for the parcel where the event is hosted - A string, containing a standard SLURL + + - - Print the struct data as a string - A string containing the field name, and field value + + - - Contains the Event data returned from the data server from an EventInfoRequest + + - - Construct a new instance of the EventInfoReplyEventArgs class - A single EventInfo object containing the details of an event + + - - - A single EventInfo object containing the details of an event - + + - - Contains the "Event" detail data returned from the data server + + - - Construct a new instance of the DirEventsReplyEventArgs class - The ID of the query returned by the data server. - This will correlate to the ID returned by the method - A list containing the "Events" returned by the search query + + - - The ID returned by + + - - A list of "Events" returned by the data server + + - - Contains the "Event" list data returned from the data server + + - - Construct a new instance of PlacesReplyEventArgs class - The ID of the query returned by the data server. - This will correlate to the ID returned by the method - A list containing the "Places" returned by the data server query + + - - The ID returned by + + - - A list of "Places" returned by the data server + + - - Contains the places data returned from the data server + + - - Construct a new instance of the DirPlacesReplyEventArgs class - The ID of the query returned by the data server. - This will correlate to the ID returned by the method - A list containing land data returned by the data server + + - - The ID returned by + + - - A list containing Places data returned by the data server + + - - Contains the classified data returned from the data server + + - - Construct a new instance of the DirClassifiedsReplyEventArgs class - A list of classified ad data returned from the data server + + - - A list containing Classified Ads returned by the data server + + - - Contains the group data returned from the data server + + - - Construct a new instance of the DirGroupsReplyEventArgs class - The ID of the query returned by the data server. - This will correlate to the ID returned by the method - A list of groups data returned by the data server + + - - The ID returned by + + - - A list containing Groups data returned by the data server + + - - Contains the people data returned from the data server + + - - Construct a new instance of the DirPeopleReplyEventArgs class - The ID of the query returned by the data server. - This will correlate to the ID returned by the method - A list of people data returned by the data server + + - - The ID returned by + + - - A list containing People data returned by the data server + + - - Contains the land sales data returned from the data server + + - - Construct a new instance of the DirLandReplyEventArgs class - A list of parcels for sale returned by the data server + + - - A list containing land forsale data returned by the data server + + - - - Represends individual HTTP Download request - + + - - URI of the item to fetch + + - - Timout specified in milliseconds + + - - Download progress callback + + - - Download completed callback + + - - Accept the following content type + + - - How many times will this request be retried + + - - Current fetch attempt + + - - Default constructor + + - - Constructor + + - - - Manages async HTTP downloads with a limit on maximum - concurrent downloads - + + - - Default constructor + + - - Cleanup method + + - - Setup http download request + + - - Check the queue for pending work + + - - Enqueue a new HTTP download + + - - Maximum number of parallel downloads from a single endpoint + + - - Client certificate + + - - Describes tasks returned in LandStatReply + + - - - Estate level administration and utilities - + + - - Textures for each of the four terrain height levels + + - - Upper/lower texture boundaries for each corner of the sim + + - - - Constructor for EstateTools class - - + + - - The event subscribers. null if no subcribers + + - - Raises the TopCollidersReply event - A TopCollidersReplyEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the TopScriptsReply event - A TopScriptsReplyEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the EstateUsersReply event - A EstateUsersReplyEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the EstateGroupsReply event - A EstateGroupsReplyEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the EstateManagersReply event - A EstateManagersReplyEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the EstateBansReply event - A EstateBansReplyEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the EstateCovenantReply event - A EstateCovenantReplyEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the EstateUpdateInfoReply event - A EstateUpdateInfoReplyEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - - Requests estate information such as top scripts and colliders - - - - - + + - - Requests estate settings, including estate manager and access/ban lists + + - - Requests the "Top Scripts" list for the current region + + - - Requests the "Top Colliders" list for the current region + + - - - Set several estate specific configuration variables - - The Height of the waterlevel over the entire estate. Defaults to 20 - The maximum height change allowed above the baked terrain. Defaults to 4 - The minimum height change allowed below the baked terrain. Defaults to -4 - true to use - if True forces the sun position to the position in SunPosition - The current position of the sun on the estate, or when FixedSun is true the static position - the sun will remain. 6.0 = Sunrise, 30.0 = Sunset + + - - - Request return of objects owned by specified avatar - - The Agents owning the primitives to return - specify the coverage and type of objects to be included in the return - true to perform return on entire estate + + - - - - + + - - - Used for setting and retrieving various estate panel settings - - EstateOwnerMessage Method field - List of parameters to include + + - - - Kick an avatar from an estate - - Key of Agent to remove + + - - - Ban an avatar from an estate - Key of Agent to remove - Ban user from this estate and all others owned by the estate owner + + - - Unban an avatar from an estate - Key of Agent to remove - /// Unban user from this estate and all others owned by the estate owner + + - - - Send a message dialog to everyone in an entire estate - - Message to send all users in the estate + + - - - Send a message dialog to everyone in a simulator - - Message to send all users in the simulator + + - - - Send an avatar back to their home location - - Key of avatar to send home + + - - - Begin the region restart process - + + - - - Cancels a region restart - + + - - Estate panel "Region" tab settings + + - - Estate panel "Debug" tab settings + + - - Used for setting the region's terrain textures for its four height levels - - - - + + - - Used for setting sim terrain texture heights + + - - Requests the estate covenant + + - - - Upload a terrain RAW file - - A byte array containing the encoded terrain data - The name of the file being uploaded - The Id of the transfer request + + - - - Teleports all users home in current Estate - + + - - - Remove estate manager - Key of Agent to Remove - removes manager to this estate and all others owned by the estate owner + + - - - Add estate manager - Key of Agent to Add - Add agent as manager to this estate and all others owned by the estate owner + + - - - Add's an agent to the estate Allowed list - Key of Agent to Add - Add agent as an allowed reisdent to All estates if true + + - - - Removes an agent from the estate Allowed list - Key of Agent to Remove - Removes agent as an allowed reisdent from All estates if true + + - - - - Add's a group to the estate Allowed list - Key of Group to Add - Add Group as an allowed group to All estates if true + + - - - - Removes a group from the estate Allowed list - Key of Group to Remove - Removes Group as an allowed Group from All estates if true + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Raised when the data server responds to a request. + + - - Raised when the data server responds to a request. + + - - Raised when the data server responds to a request. + + - - Raised when the data server responds to a request. + + - - Raised when the data server responds to a request. + + - - Raised when the data server responds to a request. + + - - Raised when the data server responds to a request. + + - - Raised when the data server responds to a request. + + - - Used in the ReportType field of a LandStatRequest + + - - Used by EstateOwnerMessage packets + + - - Used by EstateOwnerMessage packets + + - - - - + + - - No flags set + + - - Only return targets scripted objects + + - - Only return targets objects if on others land + + - - Returns target's scripted objects and objects on other parcels + + - - Ground texture settings for each corner of the region + + - - Used by GroundTextureHeightSettings + + - - The high and low texture thresholds for each corner of the sim + + - - Raised on LandStatReply when the report type is for "top colliders" + + - - Construct a new instance of the TopCollidersReplyEventArgs class - The number of returned items in LandStatReply - Dictionary of Object UUIDs to tasks returned in LandStatReply + + - - - The number of returned items in LandStatReply - + + - - - A Dictionary of Object UUIDs to tasks returned in LandStatReply - + + - - Raised on LandStatReply when the report type is for "top Scripts" + + - - Construct a new instance of the TopScriptsReplyEventArgs class - The number of returned items in LandStatReply - Dictionary of Object UUIDs to tasks returned in LandStatReply + + - - - The number of scripts returned in LandStatReply - + + - - - A Dictionary of Object UUIDs to tasks returned in LandStatReply - + + - - Returned, along with other info, upon a successful .RequestInfo() + + - - Construct a new instance of the EstateBansReplyEventArgs class - The estate's identifier on the grid - The number of returned items in LandStatReply - User UUIDs banned + + - - - The identifier of the estate - + + - - - The number of returned itmes - + + - - - List of UUIDs of Banned Users - + + - - Returned, along with other info, upon a successful .RequestInfo() + + - - Construct a new instance of the EstateUsersReplyEventArgs class - The estate's identifier on the grid - The number of users - Allowed users UUIDs + + - - - The identifier of the estate - + + - - - The number of returned items - + + - - - List of UUIDs of Allowed Users - + + - - Returned, along with other info, upon a successful .RequestInfo() + + - - Construct a new instance of the EstateGroupsReplyEventArgs class - The estate's identifier on the grid - The number of Groups - Allowed Groups UUIDs + + - - - The identifier of the estate - + + - - - The number of returned items - + + - - - List of UUIDs of Allowed Groups - + + - - Returned, along with other info, upon a successful .RequestInfo() + + - - Construct a new instance of the EstateManagersReplyEventArgs class - The estate's identifier on the grid - The number of Managers - Managers UUIDs + + - - - The identifier of the estate - + + - - - The number of returned items - + + - - - List of UUIDs of the Estate's Managers - + + - - Returned, along with other info, upon a successful .RequestInfo() + + - - Construct a new instance of the EstateCovenantReplyEventArgs class - The Covenant ID - The timestamp - The estate's name - The Estate Owner's ID (can be a GroupID) + + - - - The Covenant - + + - - - The timestamp - + + - - - The Estate name - + + - - - The Estate Owner's ID (can be a GroupID) - + + - - Returned, along with other info, upon a successful .RequestInfo() + + - - Construct a new instance of the EstateUpdateInfoReplyEventArgs class - The estate's name - The Estate Owners ID (can be a GroupID) - The estate's identifier on the grid - + + - - - The estate's name - + + - - - The Estate Owner's ID (can be a GroupID) - + + - - - The identifier of the estate on the grid - + + - - + + - - - Registers, unregisters, and fires events generated by incoming packets - + + - - Reference to the GridClient object + + - - - Default constructor - - + + - - - Register an event handler - - Use PacketType.Default to fire this event on every - incoming packet - Packet type to register the handler for - Callback to be fired - True if this callback should be ran - asynchronously, false to run it synchronous + + - - - Unregister an event handler - - Packet type to unregister the handler for - Callback to be unregistered + + - - - Fire the events registered for this packet type - - Incoming packet type - Incoming packet - Simulator this packet was received from + + - - - Object that is passed to worker threads in the ThreadPool for - firing packet callbacks - + + - - Callback to fire for this packet + + - - Reference to the simulator that this packet came from + + - - The packet that needs to be processed + + - - - Registers, unregisters, and fires events generated by the Capabilities - event queue - + + - - Reference to the GridClient object + + - - - Default constructor - - Reference to the GridClient object + + - - - Register an new event handler for a capabilities event sent via the EventQueue - - Use String.Empty to fire this event on every CAPS event - Capability event name to register the - handler for - Callback to fire + + - - - Unregister a previously registered capabilities handler - - Capability event name unregister the - handler for - Callback to unregister + + - - - Fire the events registered for this event type synchronously - - Capability name - Decoded event body - Reference to the simulator that - generated this event + + - - - Fire the events registered for this event type asynchronously - - Capability name - Decoded event body - Reference to the simulator that - generated this event + + - - - Object that is passed to worker threads in the ThreadPool for - firing CAPS callbacks - + + - - Callback to fire for this packet + + - - Name of the CAPS event + + - - Strongly typed decoded data + + - - Reference to the simulator that generated this event + + - - - - + + - - The avatar has no rights + + - - The avatar can see the online status of the target avatar + + - - The avatar can see the location of the target avatar on the map + + - - The avatar can modify the ojects of the target avatar + + - - - This class holds information about an avatar in the friends list. There are two ways - to interface to this class. The first is through the set of boolean properties. This is the typical - way clients of this class will use it. The second interface is through two bitflag properties, - TheirFriendsRights and MyFriendsRights - + + - - - Used internally when building the initial list of friends at login time - - System ID of the avatar being prepesented - Rights the friend has to see you online and to modify your objects - Rights you have to see your friend online and to modify their objects + + - - - FriendInfo represented as a string - - A string reprentation of both my rights and my friends rights + + - - - System ID of the avatar - + + - - - full name of the avatar - + + - - - True if the avatar is online - + + - - - True if the friend can see if I am online - + + - - - True if the friend can see me on the map - + + - - - True if the freind can modify my objects - + + - - - True if I can see if my friend is online - + + - - - True if I can see if my friend is on the map - + + - - - True if I can modify my friend's objects - + + - - - My friend's rights represented as bitmapped flags - + + - - - My rights represented as bitmapped flags - + + - - - This class is used to add and remove avatars from your friends list and to manage their permission. - - - - The event subscribers. null if no subcribers + + - - Raises the FriendOnline event - A FriendInfoEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the FriendOffline event - A FriendInfoEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the FriendRightsUpdate event - A FriendInfoEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the FriendNames event - A FriendNamesEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the FriendshipOffered event - A FriendshipOfferedEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the FriendshipResponse event - A FriendshipResponseEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the FriendshipTerminated event - A FriendshipTerminatedEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the FriendFoundReply event - A FriendFoundReplyEventArgs object containing the - data returned from the data server + + - - Thread sync lock object + + - - - A dictionary of key/value pairs containing known friends of this avatar. - - The Key is the of the friend, the value is a - object that contains detailed information including permissions you have and have given to the friend - + + - - - A Dictionary of key/value pairs containing current pending frienship offers. - - The key is the of the avatar making the request, - the value is the of the request which is used to accept - or decline the friendship offer - + + - - - Internal constructor - - A reference to the GridClient Object + + - - - Accept a friendship request - - agentID of avatatar to form friendship with - imSessionID of the friendship request message + + - - - Decline a friendship request - - of friend - imSessionID of the friendship request message + + - - - Overload: Offer friendship to an avatar. - - System ID of the avatar you are offering friendship to + + - - - Offer friendship to an avatar. - - System ID of the avatar you are offering friendship to - A message to send with the request + + - - - Terminate a friendship with an avatar - - System ID of the avatar you are terminating the friendship with + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - - Change the rights of a friend avatar. - - the of the friend - the new rights to give the friend - This method will implicitly set the rights to those passed in the rights parameter. + + - - - Use to map a friends location on the grid. - - Friends UUID to find - + + - - - Use to track a friends movement on the grid - - Friends Key + + - - - Ask for a notification of friend's online status - - Friend's UUID + + - - - This handles the asynchronous response of a RequestAvatarNames call. - - - names cooresponding to the the list of IDs sent the the RequestAvatarNames call. + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - - Populate FriendList with data from the login reply - - true if login was successful - true if login request is requiring a redirect - A string containing the response to the login request - A string containing the reason for the request - A object containing the decoded - reply from the login server + + - - Raised when the simulator sends notification one of the members in our friends list comes online + + - - Raised when the simulator sends notification one of the members in our friends list goes offline + + - - Raised when the simulator sends notification one of the members in our friends list grants or revokes permissions + + - - Raised when the simulator sends us the names on our friends list + + - - Raised when the simulator sends notification another agent is offering us friendship + + - - Raised when a request we sent to friend another agent is accepted or declined + + - - Raised when the simulator sends notification one of the members in our friends list has terminated - our friendship + + - - Raised when the simulator sends the location of a friend we have - requested map location info for + + - - Contains information on a member of our friends list + + - - - Construct a new instance of the FriendInfoEventArgs class - - The FriendInfo + + - - Get the FriendInfo + + - - Contains Friend Names + + - - - Construct a new instance of the FriendNamesEventArgs class - - A dictionary where the Key is the ID of the Agent, - and the Value is a string containing their name + + - - A dictionary where the Key is the ID of the Agent, - and the Value is a string containing their name + + - - Sent when another agent requests a friendship with our agent + + - - - Construct a new instance of the FriendshipOfferedEventArgs class - - The ID of the agent requesting friendship - The name of the agent requesting friendship - The ID of the session, used in accepting or declining the - friendship offer + + - - Get the ID of the agent requesting friendship + + - - Get the name of the agent requesting friendship + + - - Get the ID of the session, used in accepting or declining the - friendship offer + + - - A response containing the results of our request to form a friendship with another agent + + - - - Construct a new instance of the FriendShipResponseEventArgs class - - The ID of the agent we requested a friendship with - The name of the agent we requested a friendship with - true if the agent accepted our friendship offer + + - - Get the ID of the agent we requested a friendship with + + - - Get the name of the agent we requested a friendship with + + - - true if the agent accepted our friendship offer + + - - Contains data sent when a friend terminates a friendship with us + + - - - Construct a new instance of the FrindshipTerminatedEventArgs class - - The ID of the friend who terminated the friendship with us - The name of the friend who terminated the friendship with us + + - - Get the ID of the agent that terminated the friendship with us + + - - Get the name of the agent that terminated the friendship with us + + - - - Data sent in response to a request which contains the information to allow us to map the friends location - + + - - - Construct a new instance of the FriendFoundReplyEventArgs class - - The ID of the agent we have requested location information for - The region handle where our friend is located - The simulator local position our friend is located + + - - Get the ID of the agent we have received location information for + + - - Get the region handle where our mapped friend is located + + - - Get the simulator local position where our friend is located + + - - - Main class to expose grid functionality to clients. All of the - classes needed for sending and receiving data are accessible through - this class. - - - - // Example minimum code required to instantiate class and - // connect to a simulator. - using System; - using System.Collections.Generic; - using System.Text; - using OpenMetaverse; - - namespace FirstBot - { - class Bot - { - public static GridClient Client; - static void Main(string[] args) - { - Client = new GridClient(); // instantiates the GridClient class - // to the global Client object - // Login to Simulator - Client.Network.Login("FirstName", "LastName", "Password", "FirstBot", "1.0"); - // Wait for a Keypress - Console.ReadLine(); - // Logout of simulator - Client.Network.Logout(); - } - } - } - - + + - - Networking subsystem + + - - Settings class including constant values and changeable - parameters for everything + + - - Parcel (subdivided simulator lots) subsystem + + - - Our own avatars subsystem + + - - Other avatars subsystem + + - - Estate subsystem + + - - Friends list subsystem + + - - Grid (aka simulator group) subsystem + + - - Object subsystem + + - - Group subsystem + + - - Asset subsystem + + - - Appearance subsystem + + - - Inventory subsystem + + - - Directory searches including classifieds, people, land - sales, etc + + - - Handles land, wind, and cloud heightmaps + + - - Handles sound-related networking + + - - Throttling total bandwidth usage, or allocating bandwidth - for specific data stream types + + - - - Default constructor - + + - - - Return the full name of this instance - - Client avatars full name + + - - - Map layer request type - + + - - Objects and terrain are shown + + - - Only the terrain is shown, no objects + + - - Overlay showing land for sale and for auction + + - - - Type of grid item, such as telehub, event, populator location, etc. - + + - - Telehub + + - - PG rated event + + - - Mature rated event + + - - Popular location + + - - Locations of avatar groups in a region + + - - Land for sale + + - - Classified ad + + - - Adult rated event + + - - Adult land for sale + + - - - Information about a region on the grid map - + + - - Sim X position on World Map + + - - Sim Y position on World Map + + - - Sim Name (NOTE: In lowercase!) + + - - + + - - Appears to always be zero (None) + + - - Sim's defined Water Height + + - - + + - - UUID of the World Map image + + - - Unique identifier for this region, a combination of the X - and Y position + + - - - - - + + - - - - - + + - - - - - - + + - - - Visual chunk of the grid map - + + - - - Base class for Map Items - + + - - The Global X position of the item + + - - The Global Y position of the item + + - - Get the Local X position of the item + + - - Get the Local Y position of the item + + - - Get the Handle of the region + + - - - Represents an agent or group of agents location - + + - - - Represents a Telehub location - + + - - - Represents a non-adult parcel of land for sale - + + - - - Represents an Adult parcel of land for sale - + + - - - Represents a PG Event - + + - - - Represents a Mature event - + + - - - Represents an Adult event - + + - - - Manages grid-wide tasks such as the world map - + + - - The event subscribers. null if no subcribers + + - - Raises the CoarseLocationUpdate event - A CoarseLocationUpdateEventArgs object containing the - data sent by simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the GridRegion event - A GridRegionEventArgs object containing the - data sent by simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the GridLayer event - A GridLayerEventArgs object containing the - data sent by simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the GridItems event - A GridItemEventArgs object containing the - data sent by simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the RegionHandleReply event - A RegionHandleReplyEventArgs object containing the - data sent by simulator + + - - Thread sync lock object + + - - A dictionary of all the regions, indexed by region name + + - - A dictionary of all the regions, indexed by region handle + + - - - Constructor - - Instance of GridClient object to associate with this GridManager instance + + - - - - - + + - - - Request a map layer - - The name of the region - The type of layer + + - - - - - - - - - - + + - - - - - - - - - + + - - - - - - - + + - - - Request data for all mainland (Linden managed) simulators - + + - - - Request the region handle for the specified region UUID - - UUID of the region to look up + + - - - Get grid region information using the region name, this function - will block until it can find the region or gives up - - Name of sim you're looking for - Layer that you are requesting - Will contain a GridRegion for the sim you're - looking for if successful, otherwise an empty structure - True if the GridRegion was successfully fetched, otherwise - false + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Raised when the simulator sends a - containing the location of agents in the simulator + + - - Raised when the simulator sends a Region Data in response to - a Map request + + - - Raised when the simulator sends GridLayer object containing - a map tile coordinates and texture information + + - - Raised when the simulator sends GridItems object containing - details on events, land sales at a specific location + + - - Raised in response to a Region lookup + + - - Unknown + + - - Current direction of the sun + + - - Current angular velocity of the sun + + - - Microseconds since the start of SL 4-hour day + + - - - Avatar group management - + + - - Key of Group Member + + - - Total land contribution + + - - Online status information + + - - Abilities that the Group Member has + + - - Current group title + + - - Is a group owner + + - - - Role manager for a group - + + - - Key of the group + + - - Key of Role + + - - Name of Role + + - - Group Title associated with Role + + - - Description of Role + + - - Abilities Associated with Role + + - - Returns the role's title - The role's title + + - - - Class to represent Group Title - + + - - Key of the group + + - - ID of the role title belongs to + + - - Group Title + + - - Whether title is Active + + - - Returns group title + + - - - Represents a group on the grid - + + - - Key of Group + + - - Key of Group Insignia + + - - Key of Group Founder + + - - Key of Group Role for Owners + + - - Name of Group + + - - Text of Group Charter + + - - Title of "everyone" role + + - - Is the group open for enrolement to everyone + + - - Will group show up in search + + - - + + - - + + - - + + - - Is the group Mature + + - - Cost of group membership + + - - + + - - + + - - The total number of current members this group has + + - - The number of roles this group has configured + + - - Show this group in agent's profile + + - - Returns the name of the group - A string containing the name of the group + + - - - A group Vote - + + - - Key of Avatar who created Vote + + - - Text of the Vote proposal + + - - Total number of votes + + - - - A group proposal - + + - - The Text of the proposal + + - - The minimum number of members that must vote before proposal passes or failes + + - - The required ration of yes/no votes required for vote to pass - The three options are Simple Majority, 2/3 Majority, and Unanimous - TODO: this should be an enum + + - - The duration in days votes are accepted + + - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - Struct representing a group notice - + + - - + + - - + + - - + + - - + + - - - - - + + - - - Struct representing a group notice list entry - + + - - Notice ID + + - - Creation timestamp of notice + + - - Agent name who created notice + + - - Notice subject + + - - Is there an attachment? + + - - Attachment Type + + - - - Struct representing a member of a group chat session and their settings - + + - - The of the Avatar + + - - True if user has voice chat enabled + + - - True of Avatar has moderator abilities + + - - True if a moderator has muted this avatars chat + + - - True if a moderator has muted this avatars voice + + - - - Role update flags - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - Can send invitations to groups default role + + - - Can eject members from group + + - - Can toggle 'Open Enrollment' and change 'Signup fee' + + - - Member is visible in the public member list + + - - Can create new roles + + - - Can delete existing roles + + - - Can change Role names, titles and descriptions + + - - Can assign other members to assigners role + + - - Can assign other members to any role + + - - Can remove members from roles + + - - Can assign and remove abilities in roles + + - - Can change group Charter, Insignia, 'Publish on the web' and which - members are publicly visible in group member listings + + - - Can buy land or deed land to group + + - - Can abandon group owned land to Governor Linden on mainland, or Estate owner for - private estates + + - - Can set land for-sale information on group owned parcels + + - - Can subdivide and join parcels + + - - Can join group chat sessions + + - - Can use voice chat in Group Chat sessions + + - - Can moderate group chat sessions + + - - Can toggle "Show in Find Places" and set search category + + - - Can change parcel name, description, and 'Publish on web' settings + + - - Can set the landing point and teleport routing on group land + + - - Can change music and media settings + + - - Can toggle 'Edit Terrain' option in Land settings + + - - Can toggle various About Land > Options settings + + - - Can always terraform land, even if parcel settings have it turned off + + - - Can always fly while over group owned land + + - - Can always rez objects on group owned land + + - - Can always create landmarks for group owned parcels + + - - Can set home location on any group owned parcel + + - - Can modify public access settings for group owned parcels + + - - Can manager parcel ban lists on group owned land + + - - Can manage pass list sales information + + - - Can eject and freeze other avatars on group owned land + + - - Can return objects set to group + + - - Can return non-group owned/set objects + + - - Can return group owned objects + + - - Can landscape using Linden plants + + - - Can deed objects to group + + - - Can move group owned objects + + - - Can set group owned objects for-sale + + - - Pay group liabilities and receive group dividends + + - - List and Host group events + + - - Can send group notices + + - - Can receive group notices + + - - Can create group proposals + + - - Can vote on group proposals + + - - - Ban actions available for group members - + + - - Ban agent from joining a group + + - - Remove restriction on agent jointing a group + + - - - Handles all network traffic related to reading and writing group - information - + + - - The event subscribers. null if no subcribers + + - - Raises the CurrentGroups event - A CurrentGroupsEventArgs object containing the - data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the GroupNamesReply event - A GroupNamesEventArgs object containing the - data response from the simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the GroupProfile event - An GroupProfileEventArgs object containing the - data returned from the simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the GroupMembers event - A GroupMembersEventArgs object containing the - data returned from the simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the GroupRolesDataReply event - A GroupRolesDataReplyEventArgs object containing the - data returned from the simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the GroupRoleMembersReply event - A GroupRolesRoleMembersReplyEventArgs object containing the - data returned from the simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the GroupTitlesReply event - A GroupTitlesReplyEventArgs object containing the - data returned from the simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the GroupAccountSummary event - A GroupAccountSummaryReplyEventArgs object containing the - data returned from the simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the GroupCreated event - An GroupCreatedEventArgs object containing the - data returned from the simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the GroupJoined event - A GroupOperationEventArgs object containing the - result of the operation returned from the simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the GroupLeft event - A GroupOperationEventArgs object containing the - result of the operation returned from the simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the GroupDropped event - An GroupDroppedEventArgs object containing the - the group your agent left + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the GroupMemberEjected event - An GroupMemberEjectedEventArgs object containing the - data returned from the simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the GroupNoticesListReply event - An GroupNoticesListReplyEventArgs object containing the - data returned from the simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the GroupInvitation event - An GroupInvitationEventArgs object containing the - data returned from the simulator + + - - Thread sync lock object + + - - The event subscribers. null if no subcribers + + - - Raises the BannedAgents event - An BannedAgentsEventArgs object containing the - data returned from the simulator + + - - Thread sync lock object + + - - A reference to the current instance + + - - Currently-active group members requests + + - - Currently-active group roles requests + + - - Currently-active group role-member requests + + - - Dictionary keeping group members while request is in progress + + - - Dictionary keeping mebmer/role mapping while request is in progress + + - - Dictionary keeping GroupRole information while request is in progress + + - - Caches group name lookups + + - - - Construct a new instance of the GroupManager class - - A reference to the current instance + + - - - Request a current list of groups the avatar is a member of. - - CAPS Event Queue must be running for this to work since the results - come across CAPS. + + - - - Lookup name of group based on groupID - - groupID of group to lookup name for. + + - - - Request lookup of multiple group names - - List of group IDs to request. + + - - Lookup group profile data such as name, enrollment, founder, logo, etc - Subscribe to OnGroupProfile event to receive the results. - group ID (UUID) + + - - Request a list of group members. - Subscribe to OnGroupMembers event to receive the results. - group ID (UUID) - UUID of the request, use to index into cache + + - - Request group roles - Subscribe to OnGroupRoles event to receive the results. - group ID (UUID) - UUID of the request, use to index into cache + + - - Request members (members,role) role mapping for a group. - Subscribe to OnGroupRolesMembers event to receive the results. - group ID (UUID) - UUID of the request, use to index into cache + + - - Request a groups Titles - Subscribe to OnGroupTitles event to receive the results. - group ID (UUID) - UUID of the request, use to index into cache + + - - Begin to get the group account summary - Subscribe to the OnGroupAccountSummary event to receive the results. - group ID (UUID) - How long of an interval - Which interval (0 for current, 1 for last) + + - - Invites a user to a group - The group to invite to - A list of roles to invite a person to - Key of person to invite + + - - Set a group as the current active group - group ID (UUID) + + - - Change the role that determines your active title - Group ID to use - Role ID to change to + + - - Set this avatar's tier contribution - Group ID to change tier in - amount of tier to donate + + - - - Save wheather agent wants to accept group notices and list this group in their profile - - Group - Accept notices from this group - List this group in the profile + + - - Request to join a group - Subscribe to OnGroupJoined event for confirmation. - group ID (UUID) to join. + + - - - Request to create a new group. If the group is successfully - created, L$100 will automatically be deducted - - Subscribe to OnGroupCreated event to receive confirmation. - Group struct containing the new group info + + - - Update a group's profile and other information - Groups ID (UUID) to update. - Group struct to update. + + - - Eject a user from a group - Group ID to eject the user from - Avatar's key to eject + + - - Update role information - Modified role to be updated + + - - Create a new group role - Group ID to update - Role to create + + - - Delete a group role - Group ID to update - Role to delete + + - - Remove an avatar from a role - Group ID to update - Role ID to be removed from - Avatar's Key to remove + + - - Assign an avatar to a role - Group ID to update - Role ID to assign to - Avatar's ID to assign to role + + - - Request the group notices list - Group ID to fetch notices for + + - - Request a group notice by key - ID of group notice + + - - Send out a group notice - Group ID to update - GroupNotice structure containing notice data + + - - Start a group proposal (vote) - The Group ID to send proposal to - GroupProposal structure containing the proposal + + - - Request to leave a group - Subscribe to OnGroupLeft event to receive confirmation - The group to leave + + - - - Gets the URI of the cpability for handling group bans - - Group ID - null, if the feature is not supported, or URI of the capability + + - - - Request a list of residents banned from joining a group - - UUID of the group + + - - - Request a list of residents banned from joining a group - - UUID of the group - Callback on request completition + + - - - Request that group of agents be banned or unbanned from the group - - Group ID - Ban/Unban action - Array of agents UUIDs to ban + + - - - Request that group of agents be banned or unbanned from the group - - Group ID - Ban/Unban action - Array of agents UUIDs to ban - Callback + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Raised when the simulator sends us data containing - our current group membership + + - - Raised when the simulator responds to a RequestGroupName - or RequestGroupNames request + + - - Raised when the simulator responds to a request + + - - Raised when the simulator responds to a request + + - - Raised when the simulator responds to a request + + - - Raised when the simulator responds to a request + + - - Raised when the simulator responds to a request + + - - Raised when a response to a RequestGroupAccountSummary is returned - by the simulator + + - - Raised when a request to create a group is successful + + - - Raised when a request to join a group either - fails or succeeds + + - - Raised when a request to leave a group either - fails or succeeds + + - - Raised when A group is removed from the group server + + - - Raised when a request to eject a member from a group either - fails or succeeds + + - - Raised when the simulator sends us group notices - + + - - Raised when another agent invites our avatar to join a group + + - - Raised when another agent invites our avatar to join a group + + - - Contains the current groups your agent is a member of + + - - Construct a new instance of the CurrentGroupsEventArgs class - The current groups your agent is a member of + + - - Get the current groups your agent is a member of + + - - A Dictionary of group names, where the Key is the groups ID and the value is the groups name + + - - Construct a new instance of the GroupNamesEventArgs class - The Group names dictionary + + - - Get the Group Names dictionary + + - - Represents the members of a group + + - - - Construct a new instance of the GroupMembersReplyEventArgs class - - The ID of the request - The ID of the group - The membership list of the group + + - - Get the ID as returned by the request to correlate - this result set and the request + + - - Get the ID of the group + + - - Get the dictionary of members + + - - Represents the roles associated with a group + + - - Construct a new instance of the GroupRolesDataReplyEventArgs class - The ID as returned by the request to correlate - this result set and the request - The ID of the group - The dictionary containing the roles + + - - Get the ID as returned by the request to correlate - this result set and the request + + - - Get the ID of the group + + - - Get the dictionary containing the roles + + - - Represents the Role to Member mappings for a group + + - - Construct a new instance of the GroupRolesMembersReplyEventArgs class - The ID as returned by the request to correlate - this result set and the request - The ID of the group - The member to roles map + + - - Get the ID as returned by the request to correlate - this result set and the request + + - - Get the ID of the group + + - - Get the member to roles map + + - - Represents the titles for a group + + - - Construct a new instance of the GroupTitlesReplyEventArgs class - The ID as returned by the request to correlate - this result set and the request - The ID of the group - The titles + + - - Get the ID as returned by the request to correlate - this result set and the request + + - - Get the ID of the group + + - - Get the titles + + - - Represents the summary data for a group + + - - Construct a new instance of the GroupAccountSummaryReplyEventArgs class - The ID of the group - The summary data + + - - Get the ID of the group + + - - Get the summary data + + - - A response to a group create request + + - - Construct a new instance of the GroupCreatedReplyEventArgs class - The ID of the group - the success or faulure of the request - A string containing additional information + + - - Get the ID of the group + + - - true of the group was created successfully + + - - A string containing the message + + - - Represents a response to a request + + - - Construct a new instance of the GroupOperationEventArgs class - The ID of the group - true of the request was successful + + - - Get the ID of the group + + - - true of the request was successful + + - - Represents your agent leaving a group + + - - Construct a new instance of the GroupDroppedEventArgs class - The ID of the group + + - - Get the ID of the group + + - - Represents a list of active group notices + + - - Construct a new instance of the GroupNoticesListReplyEventArgs class - The ID of the group - The list containing active notices + + - - Get the ID of the group + + - - Get the notices list + + - - Represents the profile of a group + + - - Construct a new instance of the GroupProfileEventArgs class - The group profile + + - - Get the group profile + + - - - Provides notification of a group invitation request sent by another Avatar - - The invitation is raised when another avatar makes an offer for our avatar - to join a group. + + - - The ID of the Avatar sending the group invitation + + - - The name of the Avatar sending the group invitation + + - - A message containing the request information which includes - the name of the group, the groups charter and the fee to join details + + - - The Simulator + + - - Set to true to accept invitation, false to decline + + - - - Result of the request for list of agents banned from a group - + + - - Indicates if list of banned agents for a group was successfully retrieved + + - - Indicates if list of banned agents for a group was successfully retrieved + + - - Array containing a list of UUIDs of the agents banned from a group + + - - - Static helper functions and global variables - + + - - This header flag signals that ACKs are appended to the packet + + - - This header flag signals that this packet has been sent before + + - - This header flags signals that an ACK is expected for this packet + + - - This header flag signals that the message is compressed using zerocoding + + - - - - - - + + - - - - - - - + + - - - - - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Origin position of this coordinate frame + + + X axis of this coordinate frame, or Forward/At in grid terms + + + Y axis of this coordinate frame, or Left in grid terms + + + Z axis of this coordinate frame, or Up in grid terms + + - - - + Looking direction, must be a normalized vector + Up direction, must be a normalized vector - + - Given an X/Y location in absolute (grid-relative) terms, a region - handle is returned along with the local X/Y location in that region + Align the coordinate frame X and Y axis with a given rotation + around the Z axis in radians - The absolute X location, a number such as - 255360.35 - The absolute Y location, a number such as - 255360.35 - The sim-local X position of the global X - position, a value from 0.0 to 256.0 - The sim-local Y position of the global Y - position, a value from 0.0 to 256.0 - A 64-bit region handle that can be used to teleport to + Absolute rotation around the Z axis in + radians - + - Converts a floating point number to a terse string format used for - transmitting numbers in wearable asset files + Access to the data server which allows searching for land, events, people, etc - Floating point number to convert to a string - A terse string representation of the input number - - - Convert a variable length field (byte array) to a string, with a - field name prepended to each line of the output - - If the byte array has unprintable characters in it, a - hex dump will be written instead - The StringBuilder object to write to - The byte array to convert to a string - A field name to prepend to each line of output + + Classified Ad categories - - - Decode a zerocoded byte array, used to decompress packets marked - with the zerocoded flag - - Any time a zero is encountered, the next byte is a count - of how many zeroes to expand. One zero is encoded with 0x00 0x01, - two zeroes is 0x00 0x02, three zeroes is 0x00 0x03, etc. The - first four bytes are copied directly to the output buffer. - - The byte array to decode - The length of the byte array to decode. This - would be the length of the packet up to (but not including) any - appended ACKs - The output byte array to decode to - The length of the output buffer + + Classified is listed in the Any category - - - Encode a byte array with zerocoding. Used to compress packets marked - with the zerocoded flag. Any zeroes in the array are compressed down - to a single zero byte followed by a count of how many zeroes to expand - out. A single zero becomes 0x00 0x01, two zeroes becomes 0x00 0x02, - three zeroes becomes 0x00 0x03, etc. The first four bytes are copied - directly to the output buffer. - - The byte array to encode - The length of the byte array to encode - The output byte array to encode to - The length of the output buffer + + Classified is shopping related - - - Calculates the CRC (cyclic redundancy check) needed to upload inventory. - - Creation date - Sale type - Inventory type - Type - Asset ID - Group ID - Sale price - Owner ID - Creator ID - Item ID - Folder ID - Everyone mask (permissions) - Flags - Next owner mask (permissions) - Group mask (permissions) - Owner mask (permissions) - The calculated CRC + + Classified is - - - Attempts to load a file embedded in the assembly - - The filename of the resource to load - A Stream for the requested file, or null if the resource - was not successfully loaded + + - - - Attempts to load a file either embedded in the assembly or found in - a given search path - - The filename of the resource to load - An optional path that will be searched if - the asset is not found embedded in the assembly - A Stream for the requested file, or null if the resource - was not successfully loaded + + - - - Converts a list of primitives to an object that can be serialized - with the LLSD system - - Primitives to convert to a serializable object - An object that can be serialized with LLSD + + - - - Deserializes OSD in to a list of primitives - - Structure holding the serialized primitive list, - must be of the SDMap type - A list of deserialized primitives + + - - - Converts a struct or class object containing fields only into a key value separated string - - The struct object - A string containing the struct fields as the keys, and the field value as the value separated - - - // Add the following code to any struct or class containing only fields to override the ToString() - // method to display the values of the passed object - - /// Print the struct data as a string - ///A string containing the field name, and field value - public override string ToString() - { - return Helpers.StructToString(this); - } - - + + - - - Passed to Logger.Log() to identify the severity of a log entry - + + - - No logging information will be output + + - - Non-noisy useful information, may be helpful in - debugging a problem + + Event Categories - - A non-critical error occurred. A warning will not - prevent the rest of the library from operating as usual, - although it may be indicative of an underlying issue + + - - A critical error has occurred. Generally this will - be followed by the network layer shutting down, although the - stability of the library after an error is uncertain + + - - Used for internal testing, this logging level can - generate very noisy (long and/or repetitive) messages. Don't - pass this to the Log() function, use DebugLog() instead. - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - The InternalDictionary class is used through the library for storing key/value pairs. - It is intended to be a replacement for the generic Dictionary class and should - be used in its place. It contains several methods for allowing access to the data from - outside the library that are read only and thread safe. + Query Flags used in many of the DirectoryManager methods to specify which query to execute and how to return the results. + Flags can be combined using the | (pipe) character, not all flags are available in all queries - Key - Value - - Internal dictionary that this class wraps around. Do not - modify or enumerate the contents of this dictionary without locking - on this member + + Query the People database - - - Initializes a new instance of the Class - with the specified key/value, has the default initial capacity. - - - - // initialize a new InternalDictionary named testDict with a string as the key and an int as the value. - public InternalDictionary<string, int> testDict = new InternalDictionary<string, int>(); - - + + - - - Initializes a new instance of the Class - with the specified key/value, has its initial valies copied from the specified - - - - to copy initial values from - - - // initialize a new InternalDictionary named testAvName with a UUID as the key and an string as the value. - // populates with copied values from example KeyNameCache Dictionary. - - // create source dictionary - Dictionary<UUID, string> KeyNameCache = new Dictionary<UUID, string>(); - KeyNameCache.Add("8300f94a-7970-7810-cf2c-fc9aa6cdda24", "Jack Avatar"); - KeyNameCache.Add("27ba1e40-13f7-0708-3e98-5819d780bd62", "Jill Avatar"); - - // Initialize new dictionary. - public InternalDictionary<UUID, string> testAvName = new InternalDictionary<UUID, string>(KeyNameCache); - - + + - - - Initializes a new instance of the Class - with the specified key/value, With its initial capacity specified. - - Initial size of dictionary - - - // initialize a new InternalDictionary named testDict with a string as the key and an int as the value, - // initially allocated room for 10 entries. - public InternalDictionary<string, int> testDict = new InternalDictionary<string, int>(10); - - + + Query the Groups database - - - Try to get entry from with specified key - - Key to use for lookup - Value returned - if specified key exists, if not found - - - // find your avatar using the Simulator.ObjectsAvatars InternalDictionary: - Avatar av; - if (Client.Network.CurrentSim.ObjectsAvatars.TryGetValue(Client.Self.AgentID, out av)) - Console.WriteLine("Found Avatar {0}", av.Name); - - - + + Query the Events database - - - Finds the specified match. - - The match. - Matched value - - - // use a delegate to find a prim in the ObjectsPrimitives InternalDictionary - // with the ID 95683496 - uint findID = 95683496; - Primitive findPrim = sim.ObjectsPrimitives.Find( - delegate(Primitive prim) { return prim.ID == findID; }); - - + + Query the land holdings database for land owned by the currently connected agent - - Find All items in an - return matching items. - a containing found items. - - Find All prims within 20 meters and store them in a List - - int radius = 20; - List<Primitive> prims = Client.Network.CurrentSim.ObjectsPrimitives.FindAll( - delegate(Primitive prim) { - Vector3 pos = prim.Position; - return ((prim.ParentID == 0) && (pos != Vector3.Zero) && (Vector3.Distance(pos, location) < radius)); - } - ); - - + + - - Find All items in an - return matching keys. - a containing found keys. - - Find All keys which also exist in another dictionary - - List<UUID> matches = myDict.FindAll( - delegate(UUID id) { - return myOtherDict.ContainsKey(id); - } - ); - - + + Query the land holdings database for land which is owned by a Group - - Perform an on each entry in an - to perform - - - // Iterates over the ObjectsPrimitives InternalDictionary and prints out some information. - Client.Network.CurrentSim.ObjectsPrimitives.ForEach( - delegate(Primitive prim) - { - if (prim.Text != null) - { - Console.WriteLine("NAME={0} ID = {1} TEXT = '{2}'", - prim.PropertiesFamily.Name, prim.ID, prim.Text); - } - }); - - + + Specifies the query should pre sort the results based upon traffic + when searching the Places database - - Perform an on each key of an - to perform + + - - - Perform an on each KeyValuePair of an - - to perform + + - - Check if Key exists in Dictionary - Key to check for - if found, otherwise + + - - Check if Value exists in Dictionary - Value to check for - if found, otherwise + + - - - Adds the specified key to the dictionary, dictionary locking is not performed, - - - The key - The value + + Specifies the query should pre sort the results in an ascending order when searching the land sales database. + This flag is only used when searching the land sales database - - - Removes the specified key, dictionary locking is not performed - - The key. - if successful, otherwise + + Specifies the query should pre sort the results using the SalePrice field when searching the land sales database. + This flag is only used when searching the land sales database - - - Gets the number of Key/Value pairs contained in the - + + Specifies the query should pre sort the results by calculating the average price/sq.m (SalePrice / Area) when searching the land sales database. + This flag is only used when searching the land sales database - - - Indexer for the dictionary - - The key - The value + + Specifies the query should pre sort the results using the ParcelSize field when searching the land sales database. + This flag is only used when searching the land sales database - + + Specifies the query should pre sort the results using the Name field when searching the land sales database. + This flag is only used when searching the land sales database + + + When set, only parcels less than the specified Price will be included when searching the land sales database. + This flag is only used when searching the land sales database + + + When set, only parcels greater than the specified Size will be included when searching the land sales database. + This flag is only used when searching the land sales database + + + + + + + + + Include PG land in results. This flag is used when searching both the Groups, Events and Land sales databases + + + Include Mature land in results. This flag is used when searching both the Groups, Events and Land sales databases + + + Include Adult land in results. This flag is used when searching both the Groups, Events and Land sales databases + + + + + - Exception class to identify inventory exceptions + Land types to search dataserver for - + + Search Auction, Mainland and Estate + + + Land which is currently up for auction + + + Parcels which are on the mainland (Linden owned) continents + + + Parcels which are on privately owned simulators + + - Responsible for maintaining inventory structure. Inventory constructs nodes - and manages node children as is necessary to maintain a coherant hirarchy. - Other classes should not manipulate or create InventoryNodes explicitly. When - A node's parent changes (when a folder is moved, for example) simply pass - Inventory the updated InventoryFolder and it will make the appropriate changes - to its internal representation. + The content rating of the event - - The event subscribers, null of no subscribers + + Event is PG - - Raises the InventoryObjectUpdated Event - A InventoryObjectUpdatedEventArgs object containing - the data sent from the simulator + + Event is Mature - - Thread sync lock object + + Event is Adult - - The event subscribers, null of no subscribers + + + Classified Ad Options + + There appear to be two formats the flags are packed in. + This set of flags is for the newer style - - Raises the InventoryObjectRemoved Event - A InventoryObjectRemovedEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the InventoryObjectAdded Event - A InventoryObjectAddedEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + - + - Returns the contents of the specified folder + Classified ad query options - A folder's UUID - The contents of the folder corresponding to folder - When folder does not exist in the inventory - - - Updates the state of the InventoryNode and inventory data structure that - is responsible for the InventoryObject. If the item was previously not added to inventory, - it adds the item, and updates structure accordingly. If it was, it updates the - InventoryNode, changing the parent node if item.parentUUID does - not match node.Parent.Data.UUID. - - You can not set the inventory root folder using this method - - The InventoryObject to store + + Include all ads in results - + + Include PG ads in results + + + Include Mature ads in results + + + Include Adult ads in results + + - Removes the InventoryObject and all related node data from Inventory. + The For Sale flag in PlacesReplyData - The InventoryObject to remove. - + + Parcel is not listed for sale + + + Parcel is For Sale + + - Used to find out if Inventory contains the InventoryObject - specified by uuid. + A classified ad on the grid - The UUID to check. - true if inventory contains uuid, false otherwise - + + UUID for this ad, useful for looking up detailed + information about it + + + The title of this classified ad + + + Flags that show certain options applied to the classified + + + Creation date of the ad + + + Expiration date of the ad + + + Price that was paid for this ad + + + Print the struct data as a string + A string containing the field name, and field value + + - Saves the current inventory structure to a cache file + A parcel retrieved from the dataserver such as results from the + "For-Sale" listings or "Places" Search - Name of the cache file to save to - + + The unique dataserver parcel ID + This id is used to obtain additional information from the entry + by using the method + + + A string containing the name of the parcel + + + The size of the parcel + This field is not returned for Places searches + + + The price of the parcel + This field is not returned for Places searches + + + If True, this parcel is flagged to be auctioned + + + If true, this parcel is currently set for sale + + + Parcel traffic + + + Print the struct data as a string + A string containing the field name, and field value + + - Loads in inventory cache file into the inventory structure. Note only valid to call after login has been successful. + An Avatar returned from the dataserver - Name of the cache file to load - The number of inventory items sucessfully reconstructed into the inventory node tree - - Raised when the simulator sends us data containing - ... + + Online status of agent + This field appears to be obsolete and always returns false - - Raised when the simulator sends us data containing - ... + + The agents first name - - Raised when the simulator sends us data containing - ... + + The agents last name + + + The agents + + + Print the struct data as a string + A string containing the field name, and field value - + - The root folder of this avatars inventory + Response to a "Groups" Search - - - The default shared library folder - + + The Group ID - - - The root node of the avatars inventory - + + The name of the group - - - The root node of the default shared library - + + The current number of members - + + Print the struct data as a string + A string containing the field name, and field value + + - By using the bracket operator on this class, the program can get the - InventoryObject designated by the specified uuid. If the value for the corresponding - UUID is null, the call is equivelant to a call to RemoveNodeFor(this[uuid]). - If the value is non-null, it is equivelant to a call to UpdateNodeFor(value), - the uuid parameter is ignored. + Parcel information returned from a request + + Represents one of the following: + A parcel of land on the grid that has its Show In Search flag set + A parcel of land owned by the agent making the request + A parcel of land owned by a group the agent making the request is a member of + + + In a request for Group Land, the First record will contain an empty record + + Note: This is not the same as searching the land for sale data source - The UUID of the InventoryObject to get or set, ignored if set to non-null value. - The InventoryObject corresponding to uuid. - - Sort by name + + The ID of the Agent of Group that owns the parcel - - Sort by date + + The name - - Sort folders by name, regardless of whether items are - sorted by name or date + + The description - - Place system folders at the top + + The Size of the parcel - - - Possible destinations for DeRezObject request - + + The billable Size of the parcel, for mainland + parcels this will match the ActualArea field. For Group owned land this will be 10 percent smaller + than the ActualArea. For Estate land this will always be 0 - - + + Indicates the ForSale status of the parcel - - Copy from in-world to agent inventory + + The Gridwide X position - - Derez to TaskInventory + + The Gridwide Y position - - + + The Z position of the parcel, or 0 if no landing point set - - Take Object + + The name of the Region the parcel is located in - - + + The Asset ID of the parcels Snapshot texture - - Delete Object + + The calculated visitor traffic - - Put an avatar attachment into agent inventory + + The billing product SKU + Known values are: + + 023Mainland / Full Region + 024Estate / Full Region + 027Estate / Openspace + 029Estate / Homestead + 129Mainland / Homestead (Linden Owned) + + - - + + No longer used, will always be 0 - - Return an object back to the owner's inventory + + Get a SL URL for the parcel + A string, containing a standard SLURL - - Return a deeded object back to the last owner's inventory + + Print the struct data as a string + A string containing the field name, and field value - + - Upper half of the Flags field for inventory items + An "Event" Listing summary - - Indicates that the NextOwner permission will be set to the - most restrictive set of permissions found in the object set - (including linkset items and object inventory items) on next rez - - - Indicates that the object sale information has been - changed - - - If set, and a slam bit is set, indicates BaseMask will be overwritten on Rez + + The ID of the event creator - - If set, and a slam bit is set, indicates OwnerMask will be overwritten on Rez + + The name of the event - - If set, and a slam bit is set, indicates GroupMask will be overwritten on Rez + + The events ID - - If set, and a slam bit is set, indicates EveryoneMask will be overwritten on Rez + + A string containing the short date/time the event will begin - - If set, and a slam bit is set, indicates NextOwnerMask will be overwritten on Rez + + The event start time in Unixtime (seconds since epoch) - - Indicates whether this object is composed of multiple - items or not + + The events maturity rating - - Indicates that the asset is only referenced by this - inventory item. If this item is deleted or updated to reference a - new assetID, the asset can be deleted + + Print the struct data as a string + A string containing the field name, and field value - + - Base Class for Inventory Items + The details of an "Event" - - of item/folder + + The events ID - - of parent folder + + The ID of the event creator - - Name of item/folder + + The name of the event - - Item/Folder Owners + + The category - - - Constructor, takes an itemID as a parameter - - The of the item + + The events description - - - - - + + The short date/time the event will begin - - - - - + + The event start time in Unixtime (seconds since epoch) UTC adjusted - - - Generates a number corresponding to the value of the object to support the use of a hash table, - suitable for use in hashing algorithms and data structures such as a hash table - - A Hashcode of all the combined InventoryBase fields + + The length of the event in minutes - - - Determine whether the specified object is equal to the current object - - InventoryBase object to compare against - true if objects are the same + + 0 if no cover charge applies - - - Determine whether the specified object is equal to the current object - - InventoryBase object to compare against - true if objects are the same + + The cover charge amount in L$ if applicable - - - Convert inventory to OSD - - OSD representation + + The name of the region where the event is being held - - - An Item in Inventory - + + The gridwide location of the event - - The of this item + + The maturity rating - - The combined of this item + + Get a SL URL for the parcel where the event is hosted + A string, containing a standard SLURL - - The type of item from + + Print the struct data as a string + A string containing the field name, and field value - - The type of item from the enum + + The event subscribers. null if no subcribers - - The of the creator of this item + + Raises the EventInfoReply event + An EventInfoReplyEventArgs object containing the + data returned from the data server - - A Description of this item + + Thread sync lock object - - The s this item is set to or owned by + + Raised when the data server responds to a request. - - If true, item is owned by a group + + The event subscribers. null if no subcribers - - The price this item can be purchased for + + Raises the DirEventsReply event + An DirEventsReplyEventArgs object containing the + data returned from the data server - - The type of sale from the enum + + Thread sync lock object - - Combined flags from + + Raised when the data server responds to a request. - - Time and date this inventory item was created, stored as - UTC (Coordinated Universal Time) + + The event subscribers. null if no subcribers - - Used to update the AssetID in requests sent to the server + + Raises the PlacesReply event + A PlacesReplyEventArgs object containing the + data returned from the data server - - The of the previous owner of the item + + Thread sync lock object - - - Construct a new InventoryItem object - - The of the item + + Raised when the data server responds to a request. - - - Construct a new InventoryItem object of a specific Type - - The type of item from - of the item + + The event subscribers. null if no subcribers - - - Indicates inventory item is a link - - True if inventory item is a link to another inventory item + + Raises the DirPlacesReply event + A DirPlacesReplyEventArgs object containing the + data returned from the data server - - - - - + + Thread sync lock object - - - - - + + Raised when the data server responds to a request. - - - Generates a number corresponding to the value of the object to support the use of a hash table. - Suitable for use in hashing algorithms and data structures such as a hash table - - A Hashcode of all the combined InventoryItem fields + + The event subscribers. null if no subcribers - - - Compares an object - - The object to compare - true if comparison object matches + + Raises the DirClassifiedsReply event + A DirClassifiedsReplyEventArgs object containing the + data returned from the data server - - - Determine whether the specified object is equal to the current object - - The object to compare against - true if objects are the same + + Thread sync lock object - - - Determine whether the specified object is equal to the current object - - The object to compare against - true if objects are the same + + Raised when the data server responds to a request. - - - Create InventoryItem from OSD - - OSD Data that makes up InventoryItem - Inventory item created + + The event subscribers. null if no subcribers - - - Convert InventoryItem to OSD - - OSD representation of InventoryItem + + Raises the DirGroupsReply event + A DirGroupsReplyEventArgs object containing the + data returned from the data server - - - InventoryTexture Class representing a graphical image - - + + Thread sync lock object - - - Construct an InventoryTexture object - - A which becomes the - objects AssetUUID + + Raised when the data server responds to a request. - - - Construct an InventoryTexture object from a serialization stream - + + The event subscribers. null if no subcribers - - - InventorySound Class representing a playable sound - + + Raises the DirPeopleReply event + A DirPeopleReplyEventArgs object containing the + data returned from the data server - - - Construct an InventorySound object - - A which becomes the - objects AssetUUID + + Thread sync lock object - - - Construct an InventorySound object from a serialization stream - + + Raised when the data server responds to a request. - - - InventoryCallingCard Class, contains information on another avatar - + + The event subscribers. null if no subcribers - - - Construct an InventoryCallingCard object - - A which becomes the - objects AssetUUID + + Raises the DirLandReply event + A DirLandReplyEventArgs object containing the + data returned from the data server - - - Construct an InventoryCallingCard object from a serialization stream - + + Thread sync lock object - + + Raised when the data server responds to a request. + + - InventoryLandmark Class, contains details on a specific location + Constructs a new instance of the DirectoryManager class + An instance of GridClient - + - Construct an InventoryLandmark object + Query the data server for a list of classified ads containing the specified string. + Defaults to searching for classified placed in any category, and includes PG, Adult and Mature + results. + + Responses are sent 16 per response packet, there is no way to know how many results a query reply will contain however assuming + the reply packets arrived ordered, a response with less than 16 entries would indicate all results have been received + + The event is raised when a response is received from the simulator - A which becomes the - objects AssetUUID + A string containing a list of keywords to search for + A UUID to correlate the results when the event is raised - + - Construct an InventoryLandmark object from a serialization stream + Query the data server for a list of classified ads which contain specified keywords (Overload) + + The event is raised when a response is received from the simulator + A string containing a list of keywords to search for + The category to search + A set of flags which can be ORed to modify query options + such as classified maturity rating. + A UUID to correlate the results when the event is raised + + Search classified ads containing the key words "foo" and "bar" in the "Any" category that are either PG or Mature + + UUID searchID = StartClassifiedSearch("foo bar", ClassifiedCategories.Any, ClassifiedQueryFlags.PG | ClassifiedQueryFlags.Mature); + + + + Responses are sent 16 at a time, there is no way to know how many results a query reply will contain however assuming + the reply packets arrived ordered, a response with less than 16 entries would indicate all results have been received + - + - Landmarks use the InventoryItemFlags struct and will have a flag of 1 set if they have been visited + Starts search for places (Overloaded) + + The event is raised when a response is received from the simulator + Search text + Each request is limited to 100 places + being returned. To get the first 100 result entries of a request use 0, + from 100-199 use 1, 200-299 use 2, etc. + A UUID to correlate the results when the event is raised - + - InventoryObject Class contains details on a primitive or coalesced set of primitives + Queries the dataserver for parcels of land which are flagged to be shown in search + + The event is raised when a response is received from the simulator + A string containing a list of keywords to search for separated by a space character + A set of flags which can be ORed to modify query options + such as classified maturity rating. + The category to search + Each request is limited to 100 places + being returned. To get the first 100 result entries of a request use 0, + from 100-199 use 1, 200-299 use 2, etc. + A UUID to correlate the results when the event is raised + + Search places containing the key words "foo" and "bar" in the "Any" category that are either PG or Adult + + UUID searchID = StartDirPlacesSearch("foo bar", DirFindFlags.DwellSort | DirFindFlags.IncludePG | DirFindFlags.IncludeAdult, ParcelCategory.Any, 0); + + + + Additional information on the results can be obtained by using the ParcelManager.InfoRequest method + - + - Construct an InventoryObject object + Starts a search for land sales using the directory + + The event is raised when a response is received from the simulator - A which becomes the - objects AssetUUID + What type of land to search for. Auction, + estate, mainland, "first land", etc + The OnDirLandReply event handler must be registered before + calling this function. There is no way to determine how many + results will be returned, or how many times the callback will be + fired other than you won't get more than 100 total parcels from + each query. - + - Construct an InventoryObject object from a serialization stream + Starts a search for land sales using the directory + + The event is raised when a response is received from the simulator + What type of land to search for. Auction, + estate, mainland, "first land", etc + Maximum price to search for + Maximum area to search for + Each request is limited to 100 parcels + being returned. To get the first 100 parcels of a request use 0, + from 100-199 use 1, 200-299 use 2, etc. + The OnDirLandReply event handler must be registered before + calling this function. There is no way to determine how many + results will be returned, or how many times the callback will be + fired other than you won't get more than 100 total parcels from + each query. - + - Gets or sets the upper byte of the Flags value + Send a request to the data server for land sales listings + + Flags sent to specify query options + + Available flags: + Specify the parcel rating with one or more of the following: + IncludePG IncludeMature IncludeAdult + + Specify the field to pre sort the results with ONLY ONE of the following: + PerMeterSort NameSort AreaSort PricesSort + + Specify the order the results are returned in, if not specified the results are pre sorted in a Descending Order + SortAsc + + Specify additional filters to limit the results with one or both of the following: + LimitByPrice LimitByArea + + Flags can be combined by separating them with the | (pipe) character + + Additional details can be found in + + What type of land to search for. Auction, + Estate or Mainland + Maximum price to search for when the + DirFindFlags.LimitByPrice flag is specified in findFlags + Maximum area to search for when the + DirFindFlags.LimitByArea flag is specified in findFlags + Each request is limited to 100 parcels + being returned. To get the first 100 parcels of a request use 0, + from 100-199 use 100, 200-299 use 200, etc. + The event will be raised with the response from the simulator + + There is no way to determine how many results will be returned, or how many times the callback will be + fired other than you won't get more than 100 total parcels from + each reply. + + Any land set for sale to either anybody or specific to the connected agent will be included in the + results if the land is included in the query + + + // request all mainland, any maturity rating that is larger than 512 sq.m + StartLandSearch(DirFindFlags.SortAsc | DirFindFlags.PerMeterSort | DirFindFlags.LimitByArea | DirFindFlags.IncludePG | DirFindFlags.IncludeMature | DirFindFlags.IncludeAdult, SearchTypeFlags.Mainland, 0, 512, 0); + - + - Gets or sets the object attachment point, the lower byte of the Flags value + Search for Groups + The name or portion of the name of the group you wish to search for + Start from the match number + - + - InventoryNotecard Class, contains details on an encoded text document + Search for Groups + The name or portion of the name of the group you wish to search for + Start from the match number + Search flags + - + - Construct an InventoryNotecard object + Search the People directory for other avatars - A which becomes the - objects AssetUUID + The name or portion of the name of the avatar you wish to search for + + - + - Construct an InventoryNotecard object from a serialization stream + Search Places for parcels of land you personally own - + - InventoryCategory Class + Searches Places for land owned by the specified group - TODO: Is this even used for anything? + ID of the group you want to recieve land list for (You must be a member of the group) + Transaction (Query) ID which can be associated with results from your request. - + - Construct an InventoryCategory object + Search the Places directory for parcels that are listed in search and contain the specified keywords - A which becomes the - objects AssetUUID + A string containing the keywords to search for + Transaction (Query) ID which can be associated with results from your request. - + - Construct an InventoryCategory object from a serialization stream + Search Places - All Options + One of the Values from the DirFindFlags struct, ie: AgentOwned, GroupOwned, etc. + One of the values from the SearchCategory Struct, ie: Any, Linden, Newcomer + A string containing a list of keywords to search for separated by a space character + String Simulator Name to search in + LLUID of group you want to recieve results for + Transaction (Query) ID which can be associated with results from your request. + Transaction (Query) ID which can be associated with results from your request. - + - InventoryLSL Class, represents a Linden Scripting Language object + Search All Events with specifid searchText in all categories, includes PG, Mature and Adult + A string containing a list of keywords to search for separated by a space character + Each request is limited to 100 entries + being returned. To get the first group of entries of a request use 0, + from 100-199 use 100, 200-299 use 200, etc. + UUID of query to correlate results in callback. - + - Construct an InventoryLSL object + Search Events - A which becomes the - objects AssetUUID + A string containing a list of keywords to search for separated by a space character + One or more of the following flags: DateEvents, IncludePG, IncludeMature, IncludeAdult + from the Enum + + Multiple flags can be combined by separating the flags with the | (pipe) character + "u" for in-progress and upcoming events, -or- number of days since/until event is scheduled + For example "0" = Today, "1" = tomorrow, "2" = following day, "-1" = yesterday, etc. + Each request is limited to 100 entries + being returned. To get the first group of entries of a request use 0, + from 100-199 use 100, 200-299 use 200, etc. + EventCategory event is listed under. + UUID of query to correlate results in callback. - - - Construct an InventoryLSL object from a serialization stream - + + Requests Event Details + ID of Event returned from the method - - - InventorySnapshot Class, an image taken with the viewer - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Construct an InventorySnapshot object - - A which becomes the - objects AssetUUID + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Construct an InventorySnapshot object from a serialization stream - + + Process an incoming event message + The Unique Capabilities Key + The event message containing the data + The simulator the message originated from - - - InventoryAttachment Class, contains details on an attachable object - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Construct an InventoryAttachment object - - A which becomes the - objects AssetUUID + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Construct an InventoryAttachment object from a serialization stream - + + Process an incoming event message + The Unique Capabilities Key + The event message containing the data + The simulator the message originated from - - - Get the last AttachmentPoint this object was attached to - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - InventoryWearable Class, details on a clothing item or body part - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Construct an InventoryWearable object - - A which becomes the - objects AssetUUID + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Construct an InventoryWearable object from a serialization stream - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - The , Skin, Shape, Skirt, Etc - + + Contains the Event data returned from the data server from an EventInfoRequest - + - InventoryAnimation Class, A bvh encoded object which animates an avatar + A single EventInfo object containing the details of an event - - - Construct an InventoryAnimation object - - A which becomes the - objects AssetUUID + + Construct a new instance of the EventInfoReplyEventArgs class + A single EventInfo object containing the details of an event - - - Construct an InventoryAnimation object from a serialization stream - + + Contains the "Event" detail data returned from the data server - - - InventoryGesture Class, details on a series of animations, sounds, and actions - + + The ID returned by - - - Construct an InventoryGesture object - - A which becomes the - objects AssetUUID + + A list of "Events" returned by the data server - - - Construct an InventoryGesture object from a serialization stream - + + Construct a new instance of the DirEventsReplyEventArgs class + The ID of the query returned by the data server. + This will correlate to the ID returned by the method + A list containing the "Events" returned by the search query - - - A folder contains s and has certain attributes specific - to itself - + + Contains the "Event" list data returned from the data server - - The Preferred for a folder. + + The ID returned by - - The Version of this folder + + A list of "Places" returned by the data server - - Number of child items this folder contains. + + Construct a new instance of PlacesReplyEventArgs class + The ID of the query returned by the data server. + This will correlate to the ID returned by the method + A list containing the "Places" returned by the data server query - - - Constructor - - UUID of the folder + + Contains the places data returned from the data server - - - - - + + The ID returned by - - - Get Serilization data for this InventoryFolder object - + + A list containing Places data returned by the data server - - - Construct an InventoryFolder object from a serialization stream - + + Construct a new instance of the DirPlacesReplyEventArgs class + The ID of the query returned by the data server. + This will correlate to the ID returned by the method + A list containing land data returned by the data server - - - - - + + Contains the classified data returned from the data server - - - - - - + + A list containing Classified Ads returned by the data server - - - - - - + + Construct a new instance of the DirClassifiedsReplyEventArgs class + A list of classified ad data returned from the data server - - - - - - + + Contains the group data returned from the data server - - - Create InventoryFolder from OSD - - OSD Data that makes up InventoryFolder - Inventory folder created + + The ID returned by - - - Convert InventoryItem to OSD - - OSD representation of InventoryItem + + A list containing Groups data returned by the data server - - - Tools for dealing with agents inventory - + + Construct a new instance of the DirGroupsReplyEventArgs class + The ID of the query returned by the data server. + This will correlate to the ID returned by the method + A list of groups data returned by the data server - - Used for converting shadow_id to asset_id + + Contains the people data returned from the data server - - The event subscribers, null of no subscribers + + The ID returned by - - Raises the ItemReceived Event - A ItemReceivedEventArgs object containing - the data sent from the simulator + + A list containing People data returned by the data server - - Thread sync lock object + + Construct a new instance of the DirPeopleReplyEventArgs class + The ID of the query returned by the data server. + This will correlate to the ID returned by the method + A list of people data returned by the data server - - The event subscribers, null of no subscribers + + Contains the land sales data returned from the data server - - Raises the FolderUpdated Event - A FolderUpdatedEventArgs object containing - the data sent from the simulator + + A list containing land forsale data returned by the data server - - Thread sync lock object + + Construct a new instance of the DirLandReplyEventArgs class + A list of parcels for sale returned by the data server - - The event subscribers, null of no subscribers + + + Represends individual HTTP Download request + - - Raises the InventoryObjectOffered Event - A InventoryObjectOfferedEventArgs object containing - the data sent from the simulator + + URI of the item to fetch - - Thread sync lock object + + Timout specified in milliseconds - - The event subscribers, null of no subscribers + + Download progress callback - - Raises the TaskItemReceived Event - A TaskItemReceivedEventArgs object containing - the data sent from the simulator + + Download completed callback - - Thread sync lock object + + Accept the following content type - - The event subscribers, null of no subscribers + + How many times will this request be retried - - Raises the FindObjectByPath Event - A FindObjectByPathEventArgs object containing - the data sent from the simulator + + Current fetch attempt - - Thread sync lock object + + Default constructor - - The event subscribers, null of no subscribers + + Constructor - - Raises the TaskInventoryReply Event - A TaskInventoryReplyEventArgs object containing - the data sent from the simulator + + + Manages async HTTP downloads with a limit on maximum + concurrent downloads + - - Thread sync lock object + + Maximum number of parallel downloads from a single endpoint - - The event subscribers, null of no subscribers + + Client certificate - - Raises the SaveAssetToInventory Event - A SaveAssetToInventoryEventArgs object containing - the data sent from the simulator + + Default constructor - - Thread sync lock object + + Cleanup method - - The event subscribers, null of no subscribers + + Setup http download request - - Raises the ScriptRunningReply Event - A ScriptRunningReplyEventArgs object containing - the data sent from the simulator + + Check the queue for pending work - - Thread sync lock object + + Enqueue a new HTTP download - - Partial mapping of AssetTypes to folder names + + Describes tasks returned in LandStatReply - + - Default constructor + Estate level administration and utilities - Reference to the GridClient object - - - Fetch an inventory item from the dataserver - - The items - The item Owners - a integer representing the number of milliseconds to wait for results - An object on success, or null if no item was found - Items will also be sent to the event + + Textures for each of the four terrain height levels - - - Request A single inventory item - - The items - The item Owners - + + Upper/lower texture boundaries for each corner of the sim - + - Request inventory items + Constructor for EstateTools class - Inventory items to request - Owners of the inventory items - + - - - Request inventory items via Capabilities - - Inventory items to request - Owners of the inventory items - + + Used in the ReportType field of a LandStatRequest - - - Get contents of a folder - - The of the folder to search - The of the folders owner - true to retrieve folders - true to retrieve items - sort order to return results in - a integer representing the number of milliseconds to wait for results - A list of inventory items matching search criteria within folder - - InventoryFolder.DescendentCount will only be accurate if both folders and items are - requested + + Used by EstateOwnerMessage packets - - - Request the contents of an inventory folder - - The folder to search - The folder owners - true to return s contained in folder - true to return s containd in folder - the sort order to return items in - + + Used by EstateOwnerMessage packets - + - Request the contents of an inventory folder using HTTP capabilities + - The folder to search - The folder owners - true to return s contained in folder - true to return s containd in folder - the sort order to return items in - - - - Returns the UUID of the folder (category) that defaults to - containing 'type'. The folder is not necessarily only for that - type - - This will return the root folder if one does not exist - - The UUID of the desired folder if found, the UUID of the RootFolder - if not found, or UUID.Zero on failure + + No flags set - - - Find an object in inventory using a specific path to search - - The folder to begin the search in - The object owners - A string path to search - milliseconds to wait for a reply - Found items or if - timeout occurs or item is not found + + Only return targets scripted objects - - - Find inventory items by path - - The folder to begin the search in - The object owners - A string path to search, folders/objects separated by a '/' - Results are sent to the event + + Only return targets objects if on others land - - - Search inventory Store object for an item or folder - - The folder to begin the search in - An array which creates a path to search - Number of levels below baseFolder to conduct searches - if True, will stop searching after first match is found - A list of inventory items found + + Returns target's scripted objects and objects on other parcels - - - Move an inventory item or folder to a new location - - The item or folder to move - The to move item or folder to + + Ground texture settings for each corner of the region - - - Move an inventory item or folder to a new location and change its name - - The item or folder to move - The to move item or folder to - The name to change the item or folder to + + Used by GroundTextureHeightSettings - - - Move and rename a folder - - The source folders - The destination folders - The name to change the folder to + + The high and low texture thresholds for each corner of the sim - - - Update folder properties - - of the folder to update - Sets folder's parent to - Folder name - Folder type + + The event subscribers. null if no subcribers - - - Move a folder - - The source folders - The destination folders + + Raises the TopCollidersReply event + A TopCollidersReplyEventArgs object containing the + data returned from the data server - - - Move multiple folders, the keys in the Dictionary parameter, - to a new parents, the value of that folder's key. - - A Dictionary containing the - of the source as the key, and the - of the destination as the value + + Thread sync lock object - - - Move an inventory item to a new folder - - The of the source item to move - The of the destination folder + + Raised when the data server responds to a request. - - - Move and rename an inventory item - - The of the source item to move - The of the destination folder - The name to change the folder to + + The event subscribers. null if no subcribers - - - Move multiple inventory items to new locations - - A Dictionary containing the - of the source item as the key, and the - of the destination folder as the value + + Raises the TopScriptsReply event + A TopScriptsReplyEventArgs object containing the + data returned from the data server - - - Remove descendants of a folder - - The of the folder + + Thread sync lock object - - - Remove a single item from inventory - - The of the inventory item to remove + + Raised when the data server responds to a request. - - - Remove a folder from inventory - - The of the folder to remove + + The event subscribers. null if no subcribers - - - Remove multiple items or folders from inventory - - A List containing the s of items to remove - A List containing the s of the folders to remove + + Raises the EstateUsersReply event + A EstateUsersReplyEventArgs object containing the + data returned from the data server - - - Empty the Lost and Found folder - + + Thread sync lock object - - - Empty the Trash folder - + + Raised when the data server responds to a request. - - - - - - - - - Proper use is to upload the inventory's asset first, then provide the Asset's TransactionID here. - - - + + The event subscribers. null if no subcribers - - - - - - - - - Proper use is to upload the inventory's asset first, then provide the Asset's TransactionID here. - - - - + + Raises the EstateGroupsReply event + A EstateGroupsReplyEventArgs object containing the + data returned from the data server - - - Creates a new inventory folder - - ID of the folder to put this folder in - Name of the folder to create - The UUID of the newly created folder + + Thread sync lock object - - - Creates a new inventory folder - - ID of the folder to put this folder in - Name of the folder to create - Sets this folder as the default folder - for new assets of the specified type. Use AssetType.Unknown - to create a normal folder, otherwise it will likely create a - duplicate of an existing folder type - The UUID of the newly created folder - If you specify a preferred type of AsseType.Folder - it will create a new root folder which may likely cause all sorts - of strange problems + + Raised when the data server responds to a request. - - - Create an inventory item and upload asset data - - Asset data - Inventory item name - Inventory item description - Asset type - Inventory type - Put newly created inventory in this folder - Delegate that will receive feedback on success or failure + + The event subscribers. null if no subcribers - - - Create an inventory item and upload asset data - - Asset data - Inventory item name - Inventory item description - Asset type - Inventory type - Put newly created inventory in this folder - Permission of the newly created item - (EveryoneMask, GroupMask, and NextOwnerMask of Permissions struct are supported) - Delegate that will receive feedback on success or failure + + Raises the EstateManagersReply event + A EstateManagersReplyEventArgs object containing the + data returned from the data server - - - Creates inventory link to another inventory item or folder - - Put newly created link in folder with this UUID - Inventory item or folder - Method to call upon creation of the link + + Thread sync lock object - - - Creates inventory link to another inventory item - - Put newly created link in folder with this UUID - Original inventory item - Method to call upon creation of the link + + Raised when the data server responds to a request. - - - Creates inventory link to another inventory folder - - Put newly created link in folder with this UUID - Original inventory folder - Method to call upon creation of the link + + The event subscribers. null if no subcribers - - - Creates inventory link to another inventory item or folder - - Put newly created link in folder with this UUID - Original item's UUID - Name - Description - Asset Type - Inventory Type - Transaction UUID - Method to call upon creation of the link + + Raises the EstateBansReply event + A EstateBansReplyEventArgs object containing the + data returned from the data server - - - - - - - - + + Thread sync lock object - - - - - - - - - + + Raised when the data server responds to a request. - - - - - - - - - + + The event subscribers. null if no subcribers - - - Request a copy of an asset embedded within a notecard - - Usually UUID.Zero for copying an asset from a notecard - UUID of the notecard to request an asset from - Target folder for asset to go to in your inventory - UUID of the embedded asset - callback to run when item is copied to inventory + + Raises the EstateCovenantReply event + A EstateCovenantReplyEventArgs object containing the + data returned from the data server - - - - - + + Thread sync lock object - - - - - + + Raised when the data server responds to a request. - - - - - - + + The event subscribers. null if no subcribers + + + Raises the EstateUpdateInfoReply event + A EstateUpdateInfoReplyEventArgs object containing the + data returned from the data server + + + Thread sync lock object - - - - - - - + + Raised when the data server responds to a request. - + - Save changes to notecard embedded in object contents + Requests estate information such as top scripts and colliders - Encoded notecard asset data - Notecard UUID - Object's UUID - Called upon finish of the upload with status information + + + + - - - Upload new gesture asset for an inventory gesture item - - Encoded gesture asset - Gesture inventory UUID - Callback whick will be called when upload is complete + + Requests estate settings, including estate manager and access/ban lists - - - Update an existing script in an agents Inventory - - A byte[] array containing the encoded scripts contents - the itemID of the script - if true, sets the script content to run on the mono interpreter - + + Requests the "Top Scripts" list for the current region - - - Update an existing script in an task Inventory - - A byte[] array containing the encoded scripts contents - the itemID of the script - UUID of the prim containting the script - if true, sets the script content to run on the mono interpreter - if true, sets the script to running - + + Requests the "Top Colliders" list for the current region - + - Rez an object from inventory + Set several estate specific configuration variables - Simulator to place object in - Rotation of the object when rezzed - Vector of where to place object - InventoryItem object containing item details + The Height of the waterlevel over the entire estate. Defaults to 20 + The maximum height change allowed above the baked terrain. Defaults to 4 + The minimum height change allowed below the baked terrain. Defaults to -4 + true to use + if True forces the sun position to the position in SunPosition + The current position of the sun on the estate, or when FixedSun is true the static position + the sun will remain. 6.0 = Sunrise, 30.0 = Sunset - + - Rez an object from inventory + Request return of objects owned by specified avatar - Simulator to place object in - Rotation of the object when rezzed - Vector of where to place object - InventoryItem object containing item details - UUID of group to own the object + The Agents owning the primitives to return + specify the coverage and type of objects to be included in the return + true to perform return on entire estate - - - Rez an object from inventory - - Simulator to place object in - Rotation of the object when rezzed - Vector of where to place object - InventoryItem object containing item details - UUID of group to own the object - User defined queryID to correlate replies - If set to true, the CreateSelected flag - will be set on the rezzed object + + + + - + - Rez an object from inventory + Used for setting and retrieving various estate panel settings - Simulator to place object in - TaskID object when rezzed - Rotation of the object when rezzed - Vector of where to place object - InventoryItem object containing item details - UUID of group to own the object - User defined queryID to correlate replies - If set to true, the CreateSelected flag - will be set on the rezzed object + EstateOwnerMessage Method field + List of parameters to include - + - DeRez an object from the simulator to the agents Objects folder in the agents Inventory + Kick an avatar from an estate - The simulator Local ID of the object - If objectLocalID is a child primitive in a linkset, the entire linkset will be derezzed + Key of Agent to remove - + - DeRez an object from the simulator and return to inventory - - The simulator Local ID of the object - The type of destination from the enum - The destination inventory folders -or- - if DeRezzing object to a tasks Inventory, the Tasks - The transaction ID for this request which - can be used to correlate this request with other packets - If objectLocalID is a child primitive in a linkset, the entire linkset will be derezzed + Ban an avatar from an estate + Key of Agent to remove + Ban user from this estate and all others owned by the estate owner - - - Rez an item from inventory to its previous simulator location - - - - - + + Unban an avatar from an estate + Key of Agent to remove + /// Unban user from this estate and all others owned by the estate owner - + - Give an inventory item to another avatar + Send a message dialog to everyone in an entire estate - The of the item to give - The name of the item - The type of the item from the enum - The of the recipient - true to generate a beameffect during transfer + Message to send all users in the estate - + - Give an inventory Folder with contents to another avatar + Send a message dialog to everyone in a simulator - The of the Folder to give - The name of the folder - The type of the item from the enum - The of the recipient - true to generate a beameffect during transfer + Message to send all users in the simulator - + - Copy or move an from agent inventory to a task (primitive) inventory + Send an avatar back to their home location - The target object - The item to copy or move from inventory - - For items with copy permissions a copy of the item is placed in the tasks inventory, - for no-copy items the object is moved to the tasks inventory + Key of avatar to send home - + - Retrieve a listing of the items contained in a task (Primitive) + Begin the region restart process - The tasks - The tasks simulator local ID - milliseconds to wait for reply from simulator - A list containing the inventory items inside the task or null - if a timeout occurs - This request blocks until the response from the simulator arrives - or timeoutMS is exceeded - + - Request the contents of a tasks (primitives) inventory from the - current simulator + Cancels a region restart - The LocalID of the object - - - - Request the contents of a tasks (primitives) inventory - - The simulator Local ID of the object - A reference to the simulator object that contains the object - + + Estate panel "Region" tab settings - - - Move an item from a tasks (Primitive) inventory to the specified folder in the avatars inventory - - LocalID of the object in the simulator - UUID of the task item to move - The ID of the destination folder in this agents inventory - Simulator Object - Raises the event + + Estate panel "Debug" tab settings - - - Remove an item from an objects (Prim) Inventory - - LocalID of the object in the simulator - UUID of the task item to remove - Simulator Object - You can confirm the removal by comparing the tasks inventory serial before and after the - request with the request combined with - the event + + Used for setting the region's terrain textures for its four height levels + + + + - - - Copy an InventoryScript item from the Agents Inventory into a primitives task inventory - - An unsigned integer representing a primitive being simulated - An which represents a script object from the agents inventory - true to set the scripts running state to enabled - A Unique Transaction ID - - The following example shows the basic steps necessary to copy a script from the agents inventory into a tasks inventory - and assumes the script exists in the agents inventory. - - uint primID = 95899503; // Fake prim ID - UUID scriptID = UUID.Parse("92a7fe8a-e949-dd39-a8d8-1681d8673232"); // Fake Script UUID in Inventory - - Client.Inventory.FolderContents(Client.Inventory.FindFolderForType(AssetType.LSLText), Client.Self.AgentID, - false, true, InventorySortOrder.ByName, 10000); - - Client.Inventory.RezScript(primID, (InventoryItem)Client.Inventory.Store[scriptID]); - - + + Used for setting sim terrain texture heights - - - Request the running status of a script contained in a task (primitive) inventory - - The ID of the primitive containing the script - The ID of the script - The event can be used to obtain the results of the - request - + + Requests the estate covenant - + - Send a request to set the running state of a script contained in a task (primitive) inventory + Upload a terrain RAW file - The ID of the primitive containing the script - The ID of the script - true to set the script running, false to stop a running script - To verify the change you can use the method combined - with the event + A byte array containing the encoded terrain data + The name of the file being uploaded + The Id of the transfer request - + - Create a CRC from an InventoryItem + Teleports all users home in current Estate - The source InventoryItem - A uint representing the source InventoryItem as a CRC - + - Reverses a cheesy XORing with a fixed UUID to convert a shadow_id to an asset_id - - Obfuscated shadow_id value - Deobfuscated asset_id value + Remove estate manager + Key of Agent to Remove + removes manager to this estate and all others owned by the estate owner - + - Does a cheesy XORing with a fixed UUID to convert an asset_id to a shadow_id - - asset_id value to obfuscate - Obfuscated shadow_id value + Add estate manager + Key of Agent to Add + Add agent as manager to this estate and all others owned by the estate owner - + - Wrapper for creating a new object - - The type of item from the enum - The of the newly created object - An object with the type and id passed + Add's an agent to the estate Allowed list + Key of Agent to Add + Add agent as an allowed reisdent to All estates if true - + - Parse the results of a RequestTaskInventory() response - - A string which contains the data from the task reply - A List containing the items contained within the tasks inventory - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + Removes an agent from the estate Allowed list + Key of Agent to Remove + Removes agent as an allowed reisdent from All estates if true - - - UpdateCreateInventoryItem packets are received when a new inventory item - is created. This may occur when an object that's rezzed in world is - taken into inventory, when an item is created using the CreateInventoryItem - packet, or when an object is purchased - - The sender - The EventArgs object containing the packet data + + + + Add's a group to the estate Allowed list + Key of Group to Add + Add Group as an allowed group to All estates if true - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + + + Removes a group from the estate Allowed list + Key of Group to Remove + Removes Group as an allowed Group from All estates if true - + Process an incoming packet and raise the appropriate events The sender The EventArgs object containing the packet data - + Process an incoming packet and raise the appropriate events The sender The EventArgs object containing the packet data - + Process an incoming packet and raise the appropriate events The sender The EventArgs object containing the packet data - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - an inventory object sent by another avatar or primitive - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... - - - Raised when the simulator sends us data containing - ... + + Raised on LandStatReply when the report type is for "top colliders" - + - Get this agents Inventory data + The number of returned items in LandStatReply - + - Callback for inventory item creation finishing + A Dictionary of Object UUIDs to tasks returned in LandStatReply - Whether the request to create an inventory - item succeeded or not - Inventory item being created. If success is - false this will be null - - - Callback for an inventory item being create from an uploaded asset - - true if inventory item creation was successful - - - + + Construct a new instance of the TopCollidersReplyEventArgs class + The number of returned items in LandStatReply + Dictionary of Object UUIDs to tasks returned in LandStatReply - - - - - + + Raised on LandStatReply when the report type is for "top Scripts" - + - Reply received when uploading an inventory asset + The number of scripts returned in LandStatReply - Has upload been successful - Error message if upload failed - Inventory asset UUID - New asset UUID - + - Delegate that is invoked when script upload is completed + A Dictionary of Object UUIDs to tasks returned in LandStatReply - Has upload succeded (note, there still might be compile errors) - Upload status message - Is compilation successful - If compilation failed, list of error messages, null on compilation success - Script inventory UUID - Script's new asset UUID - - Set to true to accept offer, false to decline it + + Construct a new instance of the TopScriptsReplyEventArgs class + The number of returned items in LandStatReply + Dictionary of Object UUIDs to tasks returned in LandStatReply - - The folder to accept the inventory into, if null default folder for will be used + + Returned, along with other info, upon a successful .RequestInfo() - + - Callback when an inventory object is accepted and received from a - task inventory. This is the callback in which you actually get - the ItemID, as in ObjectOfferedCallback it is null when received - from a task. + The identifier of the estate - + - + The number of returned itmes - + - + List of UUIDs of Banned Users - - - - De-serialization constructor for the InventoryNode Class - + + Construct a new instance of the EstateBansReplyEventArgs class + The estate's identifier on the grid + The number of returned items in LandStatReply + User UUIDs banned - + + Returned, along with other info, upon a successful .RequestInfo() + + - Serialization handler for the InventoryNode Class + The identifier of the estate - + - De-serialization handler for the InventoryNode Class + The number of returned items - + - + List of UUIDs of Allowed Users - - - - - - - User data - - + + Construct a new instance of the EstateUsersReplyEventArgs class + The estate's identifier on the grid + The number of users + Allowed users UUIDs - - + + Returned, along with other info, upon a successful .RequestInfo() - - + + + The identifier of the estate + - + - For inventory folder nodes specifies weather the folder needs to be - refreshed from the server + The number of returned items - + - Singleton logging class for the entire library + List of UUIDs of Allowed Groups - - log4net logging engine + + Construct a new instance of the EstateGroupsReplyEventArgs class + The estate's identifier on the grid + The number of Groups + Allowed Groups UUIDs - + + Returned, along with other info, upon a successful .RequestInfo() + + - Default constructor + The identifier of the estate - + - Send a log message to the logging engine + The number of returned items - The log message - The severity of the log entry - + - Send a log message to the logging engine + List of UUIDs of the Estate's Managers - The log message - The severity of the log entry - Instance of the client - + + Construct a new instance of the EstateManagersReplyEventArgs class + The estate's identifier on the grid + The number of Managers + Managers UUIDs + + + Returned, along with other info, upon a successful .RequestInfo() + + - Send a log message to the logging engine + The Covenant - The log message - The severity of the log entry - Exception that was raised - + - Send a log message to the logging engine + The timestamp - The log message - The severity of the log entry - Instance of the client - Exception that was raised - + - If the library is compiled with DEBUG defined, an event will be - fired if an OnLogMessage handler is registered and the - message will be sent to the logging engine + The Estate name - The message to log at the DEBUG level to the - current logging engine - + - If the library is compiled with DEBUG defined and - GridClient.Settings.DEBUG is true, an event will be - fired if an OnLogMessage handler is registered and the - message will be sent to the logging engine + The Estate Owner's ID (can be a GroupID) - The message to log at the DEBUG level to the - current logging engine - Instance of the client - - Triggered whenever a message is logged. If this is left - null, log messages will go to the console + + Construct a new instance of the EstateCovenantReplyEventArgs class + The Covenant ID + The timestamp + The estate's name + The Estate Owner's ID (can be a GroupID) - + + Returned, along with other info, upon a successful .RequestInfo() + + - Callback used for client apps to receive log messages from - the library + The estate's name - Data being logged - The severity of the log entry from - + - + The Estate Owner's ID (can be a GroupID) - - - - - - - - - - - - - - + + + The identifier of the estate on the grid + - + - - + + Construct a new instance of the EstateUpdateInfoReplyEventArgs class + The estate's name + The Estate Owners ID (can be a GroupID) + The estate's identifier on the grid + - + - Status of the last application run. - Used for error reporting to the grid login service for statistical purposes. + Registers, unregisters, and fires events generated by incoming packets - - Application exited normally - - - Application froze - - - Application detected error and exited abnormally - - - Other crash - - - Application froze during logout - - - Application crashed during logout - - + - Login Request Parameters + Object that is passed to worker threads in the ThreadPool for + firing packet callbacks - - The URL of the Login Server - - - The number of milliseconds to wait before a login is considered - failed due to timeout - - - The request method - login_to_simulator is currently the only supported method - - - The Agents First name - - - The Agents Last name - - - A md5 hashed password - plaintext password will be automatically hashed + + Callback to fire for this packet - - The agents starting location once logged in - Either "last", "home", or a string encoded URI - containing the simulator name and x/y/z coordinates e.g: uri:hooper&128&152&17 + + Reference to the simulator that this packet came from - - A string containing the client software channel information - Second Life Release + + The packet that needs to be processed - - The client software version information - The official viewer uses: Second Life Release n.n.n.n - where n is replaced with the current version of the viewer + + Reference to the GridClient object - - A string containing the platform information the agent is running on + + + Default constructor + + - - A string hash of the network cards Mac Address + + + Register an event handler + + Use PacketType.Default to fire this event on every + incoming packet + Packet type to register the handler for + Callback to be fired + True if this callback should be ran + asynchronously, false to run it synchronous - - Unknown or deprecated + + + Unregister an event handler + + Packet type to unregister the handler for + Callback to be unregistered - - A string hash of the first disk drives ID used to identify this clients uniqueness + + + Fire the events registered for this packet type + + Incoming packet type + Incoming packet + Simulator this packet was received from - - A string containing the viewers Software, this is not directly sent to the login server but - instead is used to generate the Version string + + + Registers, unregisters, and fires events generated by the Capabilities + event queue + - - A string representing the software creator. This is not directly sent to the login server but - is used by the library to generate the Version information + + + Object that is passed to worker threads in the ThreadPool for + firing CAPS callbacks + - - If true, this agent agrees to the Terms of Service of the grid its connecting to + + Callback to fire for this packet - - Unknown + + Name of the CAPS event - - Status of the last application run sent to the grid login server for statistical purposes + + Strongly typed decoded data - - An array of string sent to the login server to enable various options + + Reference to the simulator that generated this event - - A randomly generated ID to distinguish between login attempts. This value is only used - internally in the library and is never sent over the wire + + Reference to the GridClient object - + - Default constuctor, initializes sane default values + Default constructor + Reference to the GridClient object - + - Instantiates new LoginParams object and fills in the values + Register an new event handler for a capabilities event sent via the EventQueue - Instance of GridClient to read settings from - Login first name - Login last name - Password - Login channnel (application name) - Client version, should be application name + version number + Use String.Empty to fire this event on every CAPS event + Capability event name to register the + handler for + Callback to fire - + - Instantiates new LoginParams object and fills in the values + Unregister a previously registered capabilities handler - Instance of GridClient to read settings from - Login first name - Login last name - Password - Login channnel (application name) - Client version, should be application name + version number - URI of the login server + Capability event name unregister the + handler for + Callback to unregister - + - The decoded data returned from the login server after a successful login + Fire the events registered for this event type synchronously + Capability name + Decoded event body + Reference to the simulator that + generated this event - - true, false, indeterminate - - - Login message of the day - - - M or PG, also agent_region_access and agent_access_max - - + - Parse LLSD Login Reply Data + Fire the events registered for this event type asynchronously - An - contaning the login response data - XML-RPC logins do not require this as XML-RPC.NET - automatically populates the struct properly using attributes + Capability name + Decoded event body + Reference to the simulator that + generated this event - - - Login Routines - + - NetworkManager is responsible for managing the network layer of - OpenMetaverse. It tracks all the server connections, serializes - outgoing traffic and deserializes incoming traffic, and provides - instances of delegates for network-related events. + - - The event subscribers, null of no subscribers - - - Raises the LoginProgress Event - A LoginProgressEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - Seed CAPS URL returned from the login server - - - Maximum number of groups an agent can belong to, -1 for unlimited + + The avatar has no rights - - Server side baking service URL + + The avatar can see the online status of the target avatar - - Parsed login response data + + The avatar can see the location of the target avatar on the map - - A list of packets obtained during the login process which - networkmanager will log but not process + + The avatar can modify the ojects of the target avatar - + - Generate sane default values for a login request + This class holds information about an avatar in the friends list. There are two ways + to interface to this class. The first is through the set of boolean properties. This is the typical + way clients of this class will use it. The second interface is through two bitflag properties, + TheirFriendsRights and MyFriendsRights - Account first name - Account last name - Account password - Client application name (channel) - Client application name + version - A populated struct containing - sane defaults - + - Simplified login that takes the most common and required fields + System ID of the avatar - Account first name - Account last name - Account password - Client application name (channel) - Client application name + version - Whether the login was successful or not. On failure the - LoginErrorKey string will contain the error code and LoginMessage - will contain a description of the error - + - Simplified login that takes the most common fields along with a - starting location URI, and can accept an MD5 string instead of a - plaintext password + full name of the avatar - Account first name - Account last name - Account password or MD5 hash of the password - such as $1$1682a1e45e9f957dcdf0bb56eb43319c - Client application name (channel) - Starting location URI that can be built with - StartLocation() - Client application name + version - Whether the login was successful or not. On failure the - LoginErrorKey string will contain the error code and LoginMessage - will contain a description of the error - + - Login that takes a struct of all the values that will be passed to - the login server + True if the avatar is online - The values that will be passed to the login - server, all fields must be set even if they are String.Empty - Whether the login was successful or not. On failure the - LoginErrorKey string will contain the error code and LoginMessage - will contain a description of the error - + - Build a start location URI for passing to the Login function + True if the friend can see if I am online - Name of the simulator to start in - X coordinate to start at - Y coordinate to start at - Z coordinate to start at - String with a URI that can be used to login to a specified - location - + - LoginParams and the initial login XmlRpcRequest were made on a remote machine. - This method now initializes libomv with the results. + True if the friend can see me on the map - + - Handles response from XML-RPC login replies + True if the freind can modify my objects - + - Handles response from XML-RPC login replies with already parsed LoginResponseData + True if I can see if my friend is online - + - Handle response from LLSD login replies + True if I can see if my friend is on the map - - - - + - Get current OS + True if I can modify my friend's objects - Either "Win" or "Linux" - + - Get clients default Mac Address + My friend's rights represented as bitmapped flags - A string containing the first found Mac Address - - - The event subscribers, null of no subscribers - - - Raises the PacketSent Event - A PacketSentEventArgs object containing - the data sent from the simulator - - Thread sync lock object + + + My rights represented as bitmapped flags + - - The event subscribers, null of no subscribers + + + Used internally when building the initial list of friends at login time + + System ID of the avatar being prepesented + Rights the friend has to see you online and to modify your objects + Rights you have to see your friend online and to modify their objects - - Raises the LoggedOut Event - A LoggedOutEventArgs object containing - the data sent from the simulator + + + FriendInfo represented as a string + + A string reprentation of both my rights and my friends rights - - Thread sync lock object + + + This class is used to add and remove avatars from your friends list and to manage their permission. + - - The event subscribers, null of no subscribers + + The event subscribers. null if no subcribers - - Raises the SimConnecting Event - A SimConnectingEventArgs object containing - the data sent from the simulator + + Raises the FriendOnline event + A FriendInfoEventArgs object containing the + data returned from the data server - + Thread sync lock object - - The event subscribers, null of no subscribers + + Raised when the simulator sends notification one of the members in our friends list comes online - - Raises the SimConnected Event - A SimConnectedEventArgs object containing - the data sent from the simulator + + The event subscribers. null if no subcribers - + + Raises the FriendOffline event + A FriendInfoEventArgs object containing the + data returned from the data server + + Thread sync lock object - - The event subscribers, null of no subscribers + + Raised when the simulator sends notification one of the members in our friends list goes offline - - Raises the SimDisconnected Event - A SimDisconnectedEventArgs object containing - the data sent from the simulator + + The event subscribers. null if no subcribers - + + Raises the FriendRightsUpdate event + A FriendInfoEventArgs object containing the + data returned from the data server + + Thread sync lock object - - The event subscribers, null of no subscribers + + Raised when the simulator sends notification one of the members in our friends list grants or revokes permissions - - Raises the Disconnected Event - A DisconnectedEventArgs object containing - the data sent from the simulator + + The event subscribers. null if no subcribers - + + Raises the FriendNames event + A FriendNamesEventArgs object containing the + data returned from the data server + + Thread sync lock object - - The event subscribers, null of no subscribers + + Raised when the simulator sends us the names on our friends list - - Raises the SimChanged Event - A SimChangedEventArgs object containing - the data sent from the simulator + + The event subscribers. null if no subcribers - + + Raises the FriendshipOffered event + A FriendshipOfferedEventArgs object containing the + data returned from the data server + + Thread sync lock object - - The event subscribers, null of no subscribers + + Raised when the simulator sends notification another agent is offering us friendship - - Raises the EventQueueRunning Event - A EventQueueRunningEventArgs object containing - the data sent from the simulator + + The event subscribers. null if no subcribers - + + Raises the FriendshipResponse event + A FriendshipResponseEventArgs object containing the + data returned from the data server + + Thread sync lock object - - All of the simulators we are currently connected to + + Raised when a request we sent to friend another agent is accepted or declined - - Handlers for incoming capability events + + The event subscribers. null if no subcribers - - Handlers for incoming packets + + Raises the FriendshipTerminated event + A FriendshipTerminatedEventArgs object containing the + data returned from the data server - - Incoming packets that are awaiting handling + + Thread sync lock object - - Outgoing packets that are awaiting handling + + Raised when the simulator sends notification one of the members in our friends list has terminated + our friendship - - - Default constructor - - Reference to the GridClient object + + The event subscribers. null if no subcribers - - - Register an event handler for a packet. This is a low level event - interface and should only be used if you are doing something not - supported in the library - - Packet type to trigger events for - Callback to fire when a packet of this type - is received + + Raises the FriendFoundReply event + A FriendFoundReplyEventArgs object containing the + data returned from the data server - - - Register an event handler for a packet. This is a low level event - interface and should only be used if you are doing something not - supported in the library - - Packet type to trigger events for - Callback to fire when a packet of this type - is received - True if the callback should be ran - asynchronously. Only set this to false (synchronous for callbacks - that will always complete quickly) - If any callback for a packet type is marked as - asynchronous, all callbacks for that packet type will be fired - asynchronously + + Thread sync lock object - - - Unregister an event handler for a packet. This is a low level event - interface and should only be used if you are doing something not - supported in the library - - Packet type this callback is registered with - Callback to stop firing events for + + Raised when the simulator sends the location of a friend we have + requested map location info for - + - Register a CAPS event handler. This is a low level event interface - and should only be used if you are doing something not supported in - the library + A dictionary of key/value pairs containing known friends of this avatar. + + The Key is the of the friend, the value is a + object that contains detailed information including permissions you have and have given to the friend - Name of the CAPS event to register a handler for - Callback to fire when a CAPS event is received - + - Unregister a CAPS event handler. This is a low level event interface - and should only be used if you are doing something not supported in - the library + A Dictionary of key/value pairs containing current pending frienship offers. + + The key is the of the avatar making the request, + the value is the of the request which is used to accept + or decline the friendship offer - Name of the CAPS event this callback is - registered with - Callback to stop firing events for - + - Send a packet to the simulator the avatar is currently occupying + Internal constructor - Packet to send + A reference to the GridClient Object - + - Send a packet to a specified simulator + Accept a friendship request - Packet to send - Simulator to send the packet to + agentID of avatatar to form friendship with + imSessionID of the friendship request message - + - Connect to a simulator + Decline a friendship request - IP address to connect to - Port to connect to - Handle for this simulator, to identify its - location in the grid - Whether to set CurrentSim to this new - connection, use this if the avatar is moving in to this simulator - URL of the capabilities server to use for - this sim connection - A Simulator object on success, otherwise null + of friend + imSessionID of the friendship request message - + - Connect to a simulator + Overload: Offer friendship to an avatar. - IP address and port to connect to - Handle for this simulator, to identify its - location in the grid - Whether to set CurrentSim to this new - connection, use this if the avatar is moving in to this simulator - URL of the capabilities server to use for - this sim connection - A Simulator object on success, otherwise null + System ID of the avatar you are offering friendship to - + - Initiate a blocking logout request. This will return when the logout - handshake has completed or when Settings.LOGOUT_TIMEOUT - has expired and the network layer is manually shut down + Offer friendship to an avatar. + System ID of the avatar you are offering friendship to + A message to send with the request - + - Initiate the logout process. Check if logout succeeded with the - OnLogoutReply event, and if this does not fire the - Shutdown() function needs to be manually called + Terminate a friendship with an avatar + System ID of the avatar you are terminating the friendship with - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + + - Close a connection to the given simulator + Change the rights of a friend avatar. - - + the of the friend + the new rights to give the friend + This method will implicitly set the rights to those passed in the rights parameter. - + - Shutdown will disconnect all the sims except for the current sim - first, and then kill the connection to CurrentSim. This should only - be called if the logout process times out on RequestLogout + Use to map a friends location on the grid. - Type of shutdown + Friends UUID to find + - + - Shutdown will disconnect all the sims except for the current sim - first, and then kill the connection to CurrentSim. This should only - be called if the logout process times out on RequestLogout + Use to track a friends movement on the grid - Type of shutdown - Shutdown message + Friends Key - + - Searches through the list of currently connected simulators to find - one attached to the given IPEndPoint + Ask for a notification of friend's online status - IPEndPoint of the Simulator to search for - A Simulator reference on success, otherwise null + Friend's UUID - + - Fire an event when an event queue connects for capabilities + This handles the asynchronous response of a RequestAvatarNames call. - Simulator the event queue is attached to + + names cooresponding to the the list of IDs sent the the RequestAvatarNames call. - + Process an incoming packet and raise the appropriate events The sender The EventArgs object containing the packet data - + Process an incoming packet and raise the appropriate events The sender The EventArgs object containing the packet data - + Process an incoming packet and raise the appropriate events The sender The EventArgs object containing the packet data - + Process an incoming packet and raise the appropriate events The sender The EventArgs object containing the packet data - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + + Populate FriendList with data from the login reply + + true if login was successful + true if login request is requiring a redirect + A string containing the response to the login request + A string containing the reason for the request + A object containing the decoded + reply from the login server - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Contains information on a member of our friends list - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Get the FriendInfo - - Raised when the simulator sends us data containing - ... + + + Construct a new instance of the FriendInfoEventArgs class + + The FriendInfo - - Called when a reply is received from the login server, the - login sequence will block until this event returns + + Contains Friend Names - - Current state of logging in + + A dictionary where the Key is the ID of the Agent, + and the Value is a string containing their name - - Upon login failure, contains a short string key for the - type of login error that occurred + + + Construct a new instance of the FriendNamesEventArgs class + + A dictionary where the Key is the ID of the Agent, + and the Value is a string containing their name - - The raw XML-RPC reply from the login server, exactly as it - was received (minus the HTTP header) + + Sent when another agent requests a friendship with our agent - - During login this contains a descriptive version of - LoginStatusCode. After a successful login this will contain the - message of the day, and after a failed login a descriptive error - message will be returned + + Get the ID of the agent requesting friendship - - Raised when the simulator sends us data containing - ... + + Get the name of the agent requesting friendship - - Raised when the simulator sends us data containing - ... + + Get the ID of the session, used in accepting or declining the + friendship offer - - Raised when the simulator sends us data containing - ... + + + Construct a new instance of the FriendshipOfferedEventArgs class + + The ID of the agent requesting friendship + The name of the agent requesting friendship + The ID of the session, used in accepting or declining the + friendship offer - - Raised when the simulator sends us data containing - ... + + A response containing the results of our request to form a friendship with another agent - - Raised when the simulator sends us data containing - ... + + Get the ID of the agent we requested a friendship with - - Raised when the simulator sends us data containing - ... + + Get the name of the agent we requested a friendship with + + + true if the agent accepted our friendship offer + + + + Construct a new instance of the FriendShipResponseEventArgs class + + The ID of the agent we requested a friendship with + The name of the agent we requested a friendship with + true if the agent accepted our friendship offer + + + Contains data sent when a friend terminates a friendship with us + + + Get the ID of the agent that terminated the friendship with us + + + Get the name of the agent that terminated the friendship with us + + + + Construct a new instance of the FrindshipTerminatedEventArgs class + + The ID of the friend who terminated the friendship with us + The name of the friend who terminated the friendship with us + + + + Data sent in response to a request which contains the information to allow us to map the friends location + + + + Get the ID of the agent we have received location information for + + + Get the region handle where our mapped friend is located + + + Get the simulator local position where our friend is located + + + + Construct a new instance of the FriendFoundReplyEventArgs class + + The ID of the agent we have requested location information for + The region handle where our friend is located + The simulator local position our friend is located + + + + Main class to expose grid functionality to clients. All of the + classes needed for sending and receiving data are accessible through + this class. + + + + // Example minimum code required to instantiate class and + // connect to a simulator. + using System; + using System.Collections.Generic; + using System.Text; + using OpenMetaverse; + + namespace FirstBot + { + class Bot + { + public static GridClient Client; + static void Main(string[] args) + { + Client = new GridClient(); // instantiates the GridClient class + // to the global Client object + // Login to Simulator + Client.Network.Login("FirstName", "LastName", "Password", "FirstBot", "1.0"); + // Wait for a Keypress + Console.ReadLine(); + // Logout of simulator + Client.Network.Logout(); + } + } + } + + + + + Networking subsystem + + + Settings class including constant values and changeable + parameters for everything + + + Parcel (subdivided simulator lots) subsystem + + + Our own avatars subsystem + + + Other avatars subsystem + + + Estate subsystem + + + Friends list subsystem + + + Grid (aka simulator group) subsystem + + + Object subsystem + + + Group subsystem - - Raised when the simulator sends us data containing - ... + + Asset subsystem - - Raised when the simulator sends us data containing - ... + + Appearance subsystem - - Unique identifier associated with our connections to - simulators + + Inventory subsystem - - The simulator that the logged in avatar is currently - occupying + + Directory searches including classifieds, people, land + sales, etc - - Shows whether the network layer is logged in to the - grid or not + + Handles land, wind, and cloud heightmaps - - Number of packets in the incoming queue + + Handles sound-related networking - - Number of packets in the outgoing queue + + Throttling total bandwidth usage, or allocating bandwidth + for specific data stream types - + - + Default constructor - - - - - - + - Explains why a simulator or the grid disconnected from us + Return the full name of this instance + Client avatars full name - - The client requested the logout or simulator disconnect + + + Map layer request type + - - The server notified us that it is disconnecting + + Objects and terrain are shown - - Either a socket was closed or network traffic timed out + + Only the terrain is shown, no objects - - The last active simulator shut down + + Overlay showing land for sale and for auction - + - Holds a simulator reference and a decoded packet, these structs are put in - the packet inbox for event handling + Type of grid item, such as telehub, event, populator location, etc. - - Reference to the simulator that this packet came from + + Telehub - - Packet that needs to be processed + + PG rated event - - - Holds a simulator reference and a serialized packet, these structs are put in - the packet outbox for sending - + + Mature rated event - - Reference to the simulator this packet is destined for + + Popular location - - Packet that needs to be sent + + Locations of avatar groups in a region - - Sequence number of the wrapped packet + + Land for sale - - Number of times this packet has been resent + + Classified ad - - Environment.TickCount when this packet was last sent over the wire + + Adult rated event - - Type of the packet + + Adult land for sale - + - A Name Value pair with additional settings, used in the protocol - primarily to transmit avatar names and active group in object packets + Information about a region on the grid map - - + + Sim X position on World Map - - + + Sim Y position on World Map - - + + Sim Name (NOTE: In lowercase!) - + - + + Appears to always be zero (None) + + + Sim's defined Water Height + + - + + UUID of the World Map image + + + Unique identifier for this region, a combination of the X + and Y position + + - Constructor that takes all the fields as parameters + - - - - - + - + - Constructor that takes a single line from a NameValue field + - - - - Type of the value - - - Unknown + - - String value + + + + + + - - + + + Visual chunk of the grid map + - - + + + Base class for Map Items + - - + + The Global X position of the item - - + + The Global Y position of the item - - Deprecated + + Get the Local X position of the item - - String value, but designated as an asset + + Get the Local Y position of the item - - + + Get the Handle of the region - + - + Represents an agent or group of agents location - - - - - + + + Represents a Telehub location + - - + + + Represents a non-adult parcel of land for sale + - - + + + Represents an Adult parcel of land for sale + - + - + Represents a PG Event - - + + + Represents a Mature event + - - + + + Represents an Adult event + - - + + + Manages grid-wide tasks such as the world map + - - + + The event subscribers. null if no subcribers - - + + Raises the CoarseLocationUpdate event + A CoarseLocationUpdateEventArgs object containing the + data sent by simulator - - - - + + Thread sync lock object - - No report + + Raised when the simulator sends a + containing the location of agents in the simulator - - Unknown report type + + The event subscribers. null if no subcribers - - Bug report + + Raises the GridRegion event + A GridRegionEventArgs object containing the + data sent by simulator - - Complaint report + + Thread sync lock object - - Customer service report + + Raised when the simulator sends a Region Data in response to + a Map request - - - Bitflag field for ObjectUpdateCompressed data blocks, describing - which options are present for each object - + + The event subscribers. null if no subcribers - - Unknown + + Raises the GridLayer event + A GridLayerEventArgs object containing the + data sent by simulator - - Whether the object has a TreeSpecies + + Thread sync lock object - - Whether the object has floating text ala llSetText + + Raised when the simulator sends GridLayer object containing + a map tile coordinates and texture information - - Whether the object has an active particle system + + The event subscribers. null if no subcribers - - Whether the object has sound attached to it + + Raises the GridItems event + A GridItemEventArgs object containing the + data sent by simulator - - Whether the object is attached to a root object or not + + Thread sync lock object - - Whether the object has texture animation settings + + Raised when the simulator sends GridItems object containing + details on events, land sales at a specific location - - Whether the object has an angular velocity + + The event subscribers. null if no subcribers - - Whether the object has a name value pairs string + + Raises the RegionHandleReply event + A RegionHandleReplyEventArgs object containing the + data sent by simulator - - Whether the object has a Media URL set + + Thread sync lock object - - - Specific Flags for MultipleObjectUpdate requests - + + Raised in response to a Region lookup - - None + + Unknown - - Change position of prims + + Current direction of the sun - - Change rotation of prims + + Current angular velocity of the sun - - Change size of prims + + Microseconds since the start of SL 4-hour day - - Perform operation on link set + + A dictionary of all the regions, indexed by region name - - Scale prims uniformly, same as selecing ctrl+shift in the - viewer. Used in conjunction with Scale + + A dictionary of all the regions, indexed by region handle - + - Special values in PayPriceReply. If the price is not one of these - literal value of the price should be use + Constructor + Instance of GridClient object to associate with this GridManager instance - + - Indicates that this pay option should be hidden + + - + - Indicates that this pay option should have the default value + Request a map layer + The name of the region + The type of layer - + - Contains the variables sent in an object update packet for objects. - Used to track position and movement of prims and avatars + + + + + + + - - + + + + + + + + + - - + + + + + + + - - + + + Request data for all mainland (Linden managed) simulators + - - + + + Request the region handle for the specified region UUID + + UUID of the region to look up - - + + + Get grid region information using the region name, this function + will block until it can find the region or gives up + + Name of sim you're looking for + Layer that you are requesting + Will contain a GridRegion for the sim you're + looking for if successful, otherwise an empty structure + True if the GridRegion was successfully fetched, otherwise + false - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - + - Handles all network traffic related to prims and avatar positions and - movement. + Avatar group management - - The event subscribers, null of no subscribers + + Key of Group Member - - Thread sync lock object + + Total land contribution - - The event subscribers, null of no subscribers + + Online status information - - Raises the ObjectProperties Event - A ObjectPropertiesEventArgs object containing - the data sent from the simulator + + Abilities that the Group Member has - - Thread sync lock object + + Current group title - - The event subscribers, null of no subscribers + + Is a group owner - - Raises the ObjectPropertiesUpdated Event - A ObjectPropertiesUpdatedEventArgs object containing - the data sent from the simulator + + + Role manager for a group + - - Thread sync lock object + + Key of the group - - The event subscribers, null of no subscribers + + Key of Role - - Raises the ObjectPropertiesFamily Event - A ObjectPropertiesFamilyEventArgs object containing - the data sent from the simulator + + Name of Role - - Thread sync lock object + + Group Title associated with Role - - The event subscribers, null of no subscribers + + Description of Role - - Raises the AvatarUpdate Event - A AvatarUpdateEventArgs object containing - the data sent from the simulator + + Abilities Associated with Role - - Thread sync lock object + + Returns the role's title + The role's title - - The event subscribers, null of no subscribers + + + Class to represent Group Title + - - Thread sync lock object + + Key of the group - - The event subscribers, null of no subscribers + + ID of the role title belongs to - - Raises the ObjectDataBlockUpdate Event - A ObjectDataBlockUpdateEventArgs object containing - the data sent from the simulator + + Group Title - - Thread sync lock object + + Whether title is Active - - The event subscribers, null of no subscribers + + Returns group title - - Raises the KillObject Event - A KillObjectEventArgs object containing - the data sent from the simulator + + + Represents a group on the grid + - - Thread sync lock object + + Key of Group - - The event subscribers, null of no subscribers + + Key of Group Insignia - - Raises the KillObjects Event - A KillObjectsEventArgs object containing - the data sent from the simulator + + Key of Group Founder - - Thread sync lock object + + Key of Group Role for Owners - - The event subscribers, null of no subscribers + + Name of Group - - Raises the AvatarSitChanged Event - A AvatarSitChangedEventArgs object containing - the data sent from the simulator + + Text of Group Charter - - Thread sync lock object + + Title of "everyone" role - - The event subscribers, null of no subscribers + + Is the group open for enrolement to everyone - - Raises the PayPriceReply Event - A PayPriceReplyEventArgs object containing - the data sent from the simulator + + Will group show up in search - - Thread sync lock object + + - - The event subscribers, null of no subscribers + + - - Raises the PhysicsProperties Event - A PhysicsPropertiesEventArgs object containing - the data sent from the simulator + + - - Thread sync lock object + + Is the group Mature - - Reference to the GridClient object + + Cost of group membership - - Does periodic dead reckoning calculation to convert - velocity and acceleration to new positions for objects + + - - - Construct a new instance of the ObjectManager class - - A reference to the instance + + - - - Request information for a single object from a - you are currently connected to - - The the object is located - The Local ID of the object + + The total number of current members this group has - - - Request information for multiple objects contained in - the same simulator - - The the objects are located - An array containing the Local IDs of the objects + + The number of roles this group has configured - - - Attempt to purchase an original object, a copy, or the contents of - an object - - The the object is located - The Local ID of the object - Whether the original, a copy, or the object - contents are on sale. This is used for verification, if the this - sale type is not valid for the object the purchase will fail - Price of the object. This is used for - verification, if it does not match the actual price the purchase - will fail - Group ID that will be associated with the new - purchase - Inventory folder UUID where the object or objects - purchased should be placed - - - BuyObject(Client.Network.CurrentSim, 500, SaleType.Copy, - 100, UUID.Zero, Client.Self.InventoryRootFolderUUID); - - + + Show this group in agent's profile - - - Request prices that should be displayed in pay dialog. This will triggger the simulator - to send us back a PayPriceReply which can be handled by OnPayPriceReply event - - The the object is located - The ID of the object - The result is raised in the event + + Returns the name of the group + A string containing the name of the group - + - Select a single object. This will cause the to send us - an which will raise the event + A group Vote - The the object is located - The Local ID of the object - - - - Select a single object. This will cause the to send us - an which will raise the event - - The the object is located - The Local ID of the object - if true, a call to is - made immediately following the request - + + Key of Avatar who created Vote - - - Select multiple objects. This will cause the to send us - an which will raise the event - - The the objects are located - An array containing the Local IDs of the objects - Should objects be deselected immediately after selection - + + Text of the Vote proposal - - - Select multiple objects. This will cause the to send us - an which will raise the event - - The the objects are located - An array containing the Local IDs of the objects - + + Total number of votes - + - Update the properties of an object + A group proposal - The the object is located - The Local ID of the object - true to turn the objects physical property on - true to turn the objects temporary property on - true to turn the objects phantom property on - true to turn the objects cast shadows property on - - - Update the properties of an object - - The the object is located - The Local ID of the object - true to turn the objects physical property on - true to turn the objects temporary property on - true to turn the objects phantom property on - true to turn the objects cast shadows property on - Type of the represetnation prim will have in the physics engine - Density - normal value 1000 - Friction - normal value 0.6 - Restitution - standard value 0.5 - Gravity multiplier - standar value 1.0 + + The Text of the proposal - - - Sets the sale properties of a single object - - The the object is located - The Local ID of the object - One of the options from the enum - The price of the object + + The minimum number of members that must vote before proposal passes or failes - - - Sets the sale properties of multiple objects - - The the objects are located - An array containing the Local IDs of the objects - One of the options from the enum - The price of the object + + The required ration of yes/no votes required for vote to pass + The three options are Simple Majority, 2/3 Majority, and Unanimous + TODO: this should be an enum - - - Deselect a single object - - The the object is located - The Local ID of the object + + The duration in days votes are accepted - + - Deselect multiple objects. + - The the objects are located - An array containing the Local IDs of the objects - - - Perform a click action on an object - - The the object is located - The Local ID of the object + + - - - Perform a click action (Grab) on a single object - - The the object is located - The Local ID of the object - The texture coordinates to touch - The surface coordinates to touch - The face of the position to touch - The region coordinates of the position to touch - The surface normal of the position to touch (A normal is a vector perpindicular to the surface) - The surface binormal of the position to touch (A binormal is a vector tangen to the surface - pointing along the U direction of the tangent space + + - - - Create (rez) a new prim object in a simulator - - A reference to the object to place the object in - Data describing the prim object to rez - Group ID that this prim will be set to, or UUID.Zero if you - do not want the object to be associated with a specific group - An approximation of the position at which to rez the prim - Scale vector to size this prim - Rotation quaternion to rotate this prim - Due to the way client prim rezzing is done on the server, - the requested position for an object is only close to where the prim - actually ends up. If you desire exact placement you'll need to - follow up by moving the object after it has been created. This - function will not set textures, light and flexible data, or other - extended primitive properties + + - - - Create (rez) a new prim object in a simulator - - A reference to the object to place the object in - Data describing the prim object to rez - Group ID that this prim will be set to, or UUID.Zero if you - do not want the object to be associated with a specific group - An approximation of the position at which to rez the prim - Scale vector to size this prim - Rotation quaternion to rotate this prim - Specify the - Due to the way client prim rezzing is done on the server, - the requested position for an object is only close to where the prim - actually ends up. If you desire exact placement you'll need to - follow up by moving the object after it has been created. This - function will not set textures, light and flexible data, or other - extended primitive properties + + - - - Rez a Linden tree - - A reference to the object where the object resides - The size of the tree - The rotation of the tree - The position of the tree - The Type of tree - The of the group to set the tree to, - or UUID.Zero if no group is to be set - true to use the "new" Linden trees, false to use the old + + - - - Rez grass and ground cover - - A reference to the object where the object resides - The size of the grass - The rotation of the grass - The position of the grass - The type of grass from the enum - The of the group to set the tree to, - or UUID.Zero if no group is to be set + + - - - Set the textures to apply to the faces of an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The texture data to apply + + - - - Set the textures to apply to the faces of an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The texture data to apply - A media URL (not used) + + - - - Set the Light data on an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - A object containing the data to set + + - - - Set the flexible data on an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - A object containing the data to set + + - - - Set the sculptie texture and data on an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - A object containing the data to set + + - - - Unset additional primitive parameters on an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The extra parameters to set + + - - - Link multiple prims into a linkset - - A reference to the object where the objects reside - An array which contains the IDs of the objects to link - The last object in the array will be the root object of the linkset TODO: Is this true? + + - - - Delink/Unlink multiple prims from a linkset - - A reference to the object where the objects reside - An array which contains the IDs of the objects to delink + + - - - Change the rotation of an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The new rotation of the object + + - - - Set the name of an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - A string containing the new name of the object + + - - - Set the name of multiple objects - - A reference to the object where the objects reside - An array which contains the IDs of the objects to change the name of - An array which contains the new names of the objects + + - - - Set the description of an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - A string containing the new description of the object + + - - - Set the descriptions of multiple objects - - A reference to the object where the objects reside - An array which contains the IDs of the objects to change the description of - An array which contains the new descriptions of the objects + + - + - Attach an object to this avatar + Struct representing a group notice - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The point on the avatar the object will be attached - The rotation of the attached object - - - Drop an attached object from this avatar - - A reference to the - object where the objects reside. This will always be the simulator the avatar is currently in - - The object's ID which is local to the simulator the object is in + + - - - Detach an object from yourself - - A reference to the - object where the objects reside - - This will always be the simulator the avatar is currently in - - An array which contains the IDs of the objects to detach + + - - - Change the position of an object, Will change position of entire linkset - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The new position of the object + + - - - Change the position of an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The new position of the object - if true, will change position of (this) child prim only, not entire linkset + + - + - Change the Scale (size) of an object + - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The new scale of the object - If true, will change scale of this prim only, not entire linkset - True to resize prims uniformly + - + - Change the Rotation of an object that is either a child or a whole linkset + Struct representing a group notice list entry - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The new scale of the object - If true, will change rotation of this prim only, not entire linkset - - - Send a Multiple Object Update packet to change the size, scale or rotation of a primitive - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The new rotation, size, or position of the target object - The flags from the Enum + + Notice ID - - - Deed an object (prim) to a group, Object must be shared with group which - can be accomplished with SetPermissions() - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The of the group to deed the object to + + Creation timestamp of notice - - - Deed multiple objects (prims) to a group, Objects must be shared with group which - can be accomplished with SetPermissions() - - A reference to the object where the object resides - An array which contains the IDs of the objects to deed - The of the group to deed the object to + + Agent name who created notice - - - Set the permissions on multiple objects - - A reference to the object where the objects reside - An array which contains the IDs of the objects to set the permissions on - The new Who mask to set - Which permission to modify - The new state of permission + + Notice subject - - - Request additional properties for an object - - A reference to the object where the object resides - + + Is there an attachment? - - - Request additional properties for an object - - A reference to the object where the object resides - Absolute UUID of the object - Whether to require server acknowledgement of this request + + Attachment Type - + - Set the ownership of a list of objects to the specified group + Struct representing a member of a group chat session and their settings - A reference to the object where the objects reside - An array which contains the IDs of the objects to set the group id on - The Groups ID - - - Update current URL of the previously set prim media - - UUID of the prim - Set current URL to this - Prim face number - Simulator in which prim is located + + The of the Avatar - - - Set object media - - UUID of the prim - Array the length of prims number of faces. Null on face indexes where there is - no media, on faces which contain the media - Simulatior in which prim is located + + True if user has voice chat enabled - - - Retrieve information about object media - - UUID of the primitive - Simulator where prim is located - Call this callback when done + + True of Avatar has moderator abilities - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + True if a moderator has muted this avatars chat - + + True if a moderator has muted this avatars voice + + - A terse object update, used when a transformation matrix or - velocity/acceleration for an object changes but nothing else - (scale/position/rotation/acceleration/velocity) + Role update flags - The sender - The EventArgs object containing the packet data - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + - - - - - - - + + - - - Setup construction data for a basic primitive shape - - Primitive shape to construct - Construction data that can be plugged into a + + Can send invitations to groups default role - - - - - - - - + + Can eject members from group - - - - - - + + Can toggle 'Open Enrollment' and change 'Signup fee' - - - Set the Shape data of an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - Data describing the prim shape + + Member is visible in the public member list - - - Set the Material data of an object - - A reference to the object where the object resides - The objects ID which is local to the simulator the object is in - The new material of the object + + Can create new roles - - - - - - - - + + Can delete existing roles - - - - - - - - - + + Can change Role names, titles and descriptions - - - - - - - - + + Can assign other members to assigners role - - Raised when the simulator sends us data containing - A , Foliage or Attachment - - + + Can assign other members to any role - - Raised when the simulator sends us data containing - additional information - - + + Can remove members from roles - - Raised when the simulator sends us data containing - Primitive.ObjectProperties for an object we are currently tracking + + Can assign and remove abilities in roles - - Raised when the simulator sends us data containing - additional and details - + + Can change group Charter, Insignia, 'Publish on the web' and which + members are publicly visible in group member listings - - Raised when the simulator sends us data containing - updated information for an + + Can buy land or deed land to group - - Raised when the simulator sends us data containing - and movement changes + + Can abandon group owned land to Governor Linden on mainland, or Estate owner for + private estates - - Raised when the simulator sends us data containing - updates to an Objects DataBlock + + Can set land for-sale information on group owned parcels - - Raised when the simulator informs us an - or is no longer within view + + Can subdivide and join parcels - - Raised when the simulator informs us when a group of - or is no longer within view + + Can change music and media settings - - Raised when the simulator sends us data containing - updated sit information for our + + Can toggle 'Edit Terrain' option in Land settings - - Raised when the simulator sends us data containing - purchase price information for a + + Can toggle various About Land > Options settings - - Raised when the simulator sends us data containing - additional information - - + + Can toggle "Show in Find Places" and set search category - - - Callback for getting object media data via CAP - - Indicates if the operation was succesfull - Object media version string - Array indexed on prim face of media entry data + + Can change parcel name, description, and 'Publish on web' settings - - Provides data for the event - The event occurs when the simulator sends - an containing a Primitive, Foliage or Attachment data - Note 1: The event will not be raised when the object is an Avatar - Note 2: It is possible for the to be - raised twice for the same object if for example the primitive moved to a new simulator, then returned to the current simulator or - if an Avatar crosses the border into a new simulator and returns to the current simulator - - - The following code example uses the , , and - properties to display new Primitives and Attachments on the window. - - // Subscribe to the event that gives us prim and foliage information - Client.Objects.ObjectUpdate += Objects_ObjectUpdate; - - - private void Objects_ObjectUpdate(object sender, PrimEventArgs e) - { - Console.WriteLine("Primitive {0} {1} in {2} is an attachment {3}", e.Prim.ID, e.Prim.LocalID, e.Simulator.Name, e.IsAttachment); - } - - - - - + + Can set the landing point and teleport routing on group land - - - Construct a new instance of the PrimEventArgs class - - The simulator the object originated from - The Primitive - The simulator time dilation - The prim was not in the dictionary before this update - true if the primitive represents an attachment to an agent + + Can always terraform land, even if parcel settings have it turned off - - Get the simulator the originated from + + Can always fly while over group owned land - - Get the details + + Can always rez objects on group owned land - - true if the did not exist in the dictionary before this update (always true if object tracking has been disabled) + + Can always create landmarks for group owned parcels - - true if the is attached to an + + Can set home location on any group owned parcel - - Get the simulator Time Dilation + + Allowed to hold events on group-owned land - - Provides data for the event - The event occurs when the simulator sends - an containing Avatar data - Note 1: The event will not be raised when the object is an Avatar - Note 2: It is possible for the to be - raised twice for the same avatar if for example the avatar moved to a new simulator, then returned to the current simulator - - - The following code example uses the property to make a request for the top picks - using the method in the class to display the names - of our own agents picks listings on the window. - - // subscribe to the AvatarUpdate event to get our information - Client.Objects.AvatarUpdate += Objects_AvatarUpdate; - Client.Avatars.AvatarPicksReply += Avatars_AvatarPicksReply; - - private void Objects_AvatarUpdate(object sender, AvatarUpdateEventArgs e) - { - // we only want our own data - if (e.Avatar.LocalID == Client.Self.LocalID) - { - // Unsubscribe from the avatar update event to prevent a loop - // where we continually request the picks every time we get an update for ourselves - Client.Objects.AvatarUpdate -= Objects_AvatarUpdate; - // make the top picks request through AvatarManager - Client.Avatars.RequestAvatarPicks(e.Avatar.ID); - } - } - - private void Avatars_AvatarPicksReply(object sender, AvatarPicksReplyEventArgs e) - { - // we'll unsubscribe from the AvatarPicksReply event since we now have the data - // we were looking for - Client.Avatars.AvatarPicksReply -= Avatars_AvatarPicksReply; - // loop through the dictionary and extract the names of the top picks from our profile - foreach (var pickName in e.Picks.Values) - { - Console.WriteLine(pickName); - } - } - - - - + + Can modify public access settings for group owned parcels + + + Can manager parcel ban lists on group owned land + + + Can manage pass list sales information + + + Can eject and freeze other avatars on group owned land + + + Can return objects set to group + + + Can return non-group owned/set objects + + + Can return group owned objects + + + Can landscape using Linden plants + + + Can deed objects to group - - - Construct a new instance of the AvatarUpdateEventArgs class - - The simulator the packet originated from - The data - The simulator time dilation - The avatar was not in the dictionary before this update + + Can move group owned objects - - Get the simulator the object originated from + + Can set group owned objects for-sale - - Get the data + + Pay group liabilities and receive group dividends - - Get the simulator time dilation + + Can send group notices - - true if the did not exist in the dictionary before this update (always true if avatar tracking has been disabled) + + Can receive group notices - - Provides additional primitive data for the event - The event occurs when the simulator sends - an containing additional details for a Primitive, Foliage data or Attachment data - The event is also raised when a request is - made. - - - The following code example uses the , and - - properties to display new attachments and send a request for additional properties containing the name of the - attachment then display it on the window. - - // Subscribe to the event that provides additional primitive details - Client.Objects.ObjectProperties += Objects_ObjectProperties; - - // handle the properties data that arrives - private void Objects_ObjectProperties(object sender, ObjectPropertiesEventArgs e) - { - Console.WriteLine("Primitive Properties: {0} Name is {1}", e.Properties.ObjectID, e.Properties.Name); - } - - + + Can create group proposals - + + Can vote on group proposals + + + Can join group chat sessions + + + Can use voice chat in Group Chat sessions + + + Can moderate group chat sessions + + + Has admin rights to any experiences owned by this group + + + Can sign scripts for experiences owned by this group + + + Allows access to ban / un-ban agents from a group + + - Construct a new instance of the ObjectPropertiesEventArgs class + Ban actions available for group members - The simulator the object is located - The primitive Properties - - - Get the simulator the object is located - - Get the primitive properties + + Ban agent from joining a group - - Provides additional primitive data for the event - The event occurs when the simulator sends - an containing additional details for a Primitive or Foliage data that is currently - being tracked in the dictionary - The event is also raised when a request is - made and is enabled - + + Remove restriction on agent jointing a group - + - Construct a new instance of the ObjectPropertiesUpdatedEvenrArgs class - - The simulator the object is located - The Primitive - The primitive Properties + Handles all network traffic related to reading and writing group + information + - - Get the primitive details + + The event subscribers. null if no subcribers - - Provides additional primitive data, permissions and sale info for the event - The event occurs when the simulator sends - an containing additional details for a Primitive, Foliage data or Attachment. This includes - Permissions, Sale info, and other basic details on an object - The event is also raised when a request is - made, the viewer equivalent is hovering the mouse cursor over an object - + + Raises the CurrentGroups event + A CurrentGroupsEventArgs object containing the + data sent from the simulator - - Get the simulator the object is located + + Thread sync lock object - - + + Raised when the simulator sends us data containing + our current group membership - - + + The event subscribers. null if no subcribers - - Provides primitive data containing updated location, velocity, rotation, textures for the event - The event occurs when the simulator sends updated location, velocity, rotation, etc - + + Raises the GroupNamesReply event + A GroupNamesEventArgs object containing the + data response from the simulator - - Get the simulator the object is located + + Thread sync lock object - - Get the primitive details + + Raised when the simulator responds to a RequestGroupName + or RequestGroupNames request - - + + The event subscribers. null if no subcribers - - + + Raises the GroupProfile event + An GroupProfileEventArgs object containing the + data returned from the simulator - - - - + + Thread sync lock object - - Get the simulator the object is located + + Raised when the simulator responds to a request - - Get the primitive details + + The event subscribers. null if no subcribers - - + + Raises the GroupMembers event + A GroupMembersEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + Raised when the simulator responds to a request - - + + The event subscribers. null if no subcribers - - Provides notification when an Avatar, Object or Attachment is DeRezzed or moves out of the avatars view for the - event + + Raises the GroupRolesDataReply event + A GroupRolesDataReplyEventArgs object containing the + data returned from the simulator - - Get the simulator the object is located + + Thread sync lock object - - The LocalID of the object + + Raised when the simulator responds to a request - - Provides notification when an Avatar, Object or Attachment is DeRezzed or moves out of the avatars view for the - event + + The event subscribers. null if no subcribers - - Get the simulator the object is located + + Raises the GroupRoleMembersReply event + A GroupRolesRoleMembersReplyEventArgs object containing the + data returned from the simulator - - The LocalID of the object + + Thread sync lock object - - - Provides updates sit position data - + + Raised when the simulator responds to a request - - Get the simulator the object is located + + The event subscribers. null if no subcribers - - + + Raises the GroupTitlesReply event + A GroupTitlesReplyEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + Raised when the simulator responds to a request - - - - + + The event subscribers. null if no subcribers - - Get the simulator the object is located + + Raises the GroupAccountSummary event + A GroupAccountSummaryReplyEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + Raised when a response to a RequestGroupAccountSummary is returned + by the simulator - - + + The event subscribers. null if no subcribers - - - Indicates if the operation was successful - + + Raises the GroupCreated event + An GroupCreatedEventArgs object containing the + data returned from the simulator - - - Media version string - + + Thread sync lock object - - - Array of media entries indexed by face number - + + Raised when a request to create a group is successful - - - Set when simulator sends us infomation on primitive's physical properties - + + The event subscribers. null if no subcribers - - Simulator where the message originated + + Raises the GroupJoined event + A GroupOperationEventArgs object containing the + result of the operation returned from the simulator - - Updated physical properties + + Thread sync lock object - - - Constructor - - Simulator where the message originated - Updated physical properties + + Raised when a request to join a group either + fails or succeeds - - Size of the byte array used to store raw packet data + + The event subscribers. null if no subcribers - - Raw packet data buffer + + Raises the GroupLeft event + A GroupOperationEventArgs object containing the + result of the operation returned from the simulator - - Length of the data to transmit + + Thread sync lock object - - EndPoint of the remote host + + Raised when a request to leave a group either + fails or succeeds - - - Create an allocated UDP packet buffer for receiving a packet - + + The event subscribers. null if no subcribers - - - Create an allocated UDP packet buffer for sending a packet - - EndPoint of the remote host + + Raises the GroupDropped event + An GroupDroppedEventArgs object containing the + the group your agent left - - - Create an allocated UDP packet buffer for sending a packet - - EndPoint of the remote host - Size of the buffer to allocate for packet data + + Thread sync lock object - - - Object pool for packet buffers. This is used to allocate memory for all - incoming and outgoing packets, and zerocoding buffers for those packets - + + Raised when A group is removed from the group server - - - Creates a new instance of the ObjectPoolBase class. Initialize MUST be called - after using this constructor. - + + The event subscribers. null if no subcribers - - - Creates a new instance of the ObjectPool Base class. - - The object pool is composed of segments, which - are allocated whenever the size of the pool is exceeded. The number of items - in a segment should be large enough that allocating a new segmeng is a rare - thing. For example, on a server that will have 10k people logged in at once, - the receive buffer object pool should have segment sizes of at least 1000 - byte arrays per segment. - - The minimun number of segments that may exist. - Perform a full GC.Collect whenever a segment is allocated, and then again after allocation to compact the heap. - The frequency which segments are checked to see if they're eligible for cleanup. + + Raises the GroupMemberEjected event + An GroupMemberEjectedEventArgs object containing the + data returned from the simulator - - - Forces the segment cleanup algorithm to be run. This method is intended - primarly for use from the Unit Test libraries. - + + Thread sync lock object - - - Responsible for allocate 1 instance of an object that will be stored in a segment. - - An instance of whatever objec the pool is pooling. + + Raised when a request to eject a member from a group either + fails or succeeds - - - Checks in an instance of T owned by the object pool. This method is only intended to be called - by the WrappedObject class. - - The segment from which the instance is checked out. - The instance of T to check back into the segment. + + The event subscribers. null if no subcribers - - - Checks an instance of T from the pool. If the pool is not sufficient to - allow the checkout, a new segment is created. - - A WrappedObject around the instance of T. To check - the instance back into the segment, be sureto dispose the WrappedObject - when finished. + + Raises the GroupNoticesListReply event + An GroupNoticesListReplyEventArgs object containing the + data returned from the simulator - - - The total number of segments created. Intended to be used by the Unit Tests. - + + Thread sync lock object - - - The number of items that are in a segment. Items in a segment - are all allocated at the same time, and are hopefully close to - each other in the managed heap. - + + Raised when the simulator sends us group notices + - - - The minimum number of segments. When segments are reclaimed, - this number of segments will always be left alone. These - segments are allocated at startup. - + + The event subscribers. null if no subcribers - - - The age a segment must be before it's eligible for cleanup. - This is used to prevent thrash, and typical values are in - the 5 minute range. - + + Raises the GroupInvitation event + An GroupInvitationEventArgs object containing the + data returned from the simulator - - - The frequence which the cleanup thread runs. This is typically - expected to be in the 5 minute range. - + + Thread sync lock object - - - Initialize the object pool in client mode - - Server to connect to - - + + Raised when another agent invites our avatar to join a group - - - Initialize the object pool in server mode - - - + + The event subscribers. null if no subcribers + + + Raises the BannedAgents event + An BannedAgentsEventArgs object containing the + data returned from the simulator + + + Thread sync lock object + + + Raised when another agent invites our avatar to join a group + + + A reference to the current instance + + + Currently-active group members requests + + + Currently-active group roles requests + + + Currently-active group role-member requests + + + Dictionary keeping group members while request is in progress + + + Dictionary keeping mebmer/role mapping while request is in progress + + + Dictionary keeping GroupRole information while request is in progress - - - Returns a packet buffer with EndPoint set if the buffer is in - client mode, or with EndPoint set to null in server mode - - Initialized UDPPacketBuffer object + + Caches group name lookups - + - Default constructor + Construct a new instance of the GroupManager class + A reference to the current instance - + - Check a packet buffer out of the pool + Request a current list of groups the avatar is a member of. - A packet buffer object + CAPS Event Queue must be running for this to work since the results + come across CAPS. - + - Checks the instance back into the object pool + Lookup name of group based on groupID + groupID of group to lookup name for. - + - Returns an instance of the class that has been checked out of the Object Pool. + Request lookup of multiple group names + List of group IDs to request. - - - - + + Lookup group profile data such as name, enrollment, founder, logo, etc + Subscribe to OnGroupProfile event to receive the results. + group ID (UUID) - - - - + + Request a list of group members. + Subscribe to OnGroupMembers event to receive the results. + group ID (UUID) + UUID of the request, use to index into cache - - - - + + Request group roles + Subscribe to OnGroupRoles event to receive the results. + group ID (UUID) + UUID of the request, use to index into cache - - - - + + Request members (members,role) role mapping for a group. + Subscribe to OnGroupRolesMembers event to receive the results. + group ID (UUID) + UUID of the request, use to index into cache - - - - - - + + Request a groups Titles + Subscribe to OnGroupTitles event to receive the results. + group ID (UUID) + UUID of the request, use to index into cache - - - The ObservableDictionary class is used for storing key/value pairs. It has methods for firing - events to subscribers when items are added, removed, or changed. - - Key - Value + + Begin to get the group account summary + Subscribe to the OnGroupAccountSummary event to receive the results. + group ID (UUID) + How long of an interval + Which interval (0 for current, 1 for last) - - - A dictionary of callbacks to fire when specified action occurs - + + Invites a user to a group + The group to invite to + A list of roles to invite a person to + Key of person to invite - - - Register a callback to be fired when an action occurs - - The action - The callback to fire + + Set a group as the current active group + group ID (UUID) - - - Unregister a callback - - The action - The callback to fire + + Change the role that determines your active title + Group ID to use + Role ID to change to - + + Set this avatar's tier contribution + Group ID to change tier in + amount of tier to donate + + - + Save wheather agent wants to accept group notices and list this group in their profile - - + Group + Accept notices from this group + List this group in the profile - - Internal dictionary that this class wraps around. Do not - modify or enumerate the contents of this dictionary without locking + + Request to join a group + Subscribe to OnGroupJoined event for confirmation. + group ID (UUID) to join. - + - Initializes a new instance of the Class - with the specified key/value, has the default initial capacity. + Request to create a new group. If the group is successfully + created, L$100 will automatically be deducted - - - // initialize a new ObservableDictionary named testDict with a string as the key and an int as the value. - public ObservableDictionary<string, int> testDict = new ObservableDictionary<string, int>(); - - + Subscribe to OnGroupCreated event to receive confirmation. + Group struct containing the new group info - - - Initializes a new instance of the Class - with the specified key/value, With its initial capacity specified. - - Initial size of dictionary - - - // initialize a new ObservableDictionary named testDict with a string as the key and an int as the value, - // initially allocated room for 10 entries. - public ObservableDictionary<string, int> testDict = new ObservableDictionary<string, int>(10); - - + + Update a group's profile and other information + Groups ID (UUID) to update. + Group struct to update. - - - Try to get entry from the with specified key - - Key to use for lookup - Value returned - if specified key exists, if not found - - - // find your avatar using the Simulator.ObjectsAvatars ObservableDictionary: - Avatar av; - if (Client.Network.CurrentSim.ObjectsAvatars.TryGetValue(Client.Self.AgentID, out av)) - Console.WriteLine("Found Avatar {0}", av.Name); - - - + + Eject a user from a group + Group ID to eject the user from + Avatar's key to eject - - - Finds the specified match. - - The match. - Matched value - - - // use a delegate to find a prim in the ObjectsPrimitives ObservableDictionary - // with the ID 95683496 - uint findID = 95683496; - Primitive findPrim = sim.ObjectsPrimitives.Find( - delegate(Primitive prim) { return prim.ID == findID; }); - - + + Update role information + Modified role to be updated - - Find All items in an - return matching items. - a containing found items. - - Find All prims within 20 meters and store them in a List - - int radius = 20; - List<Primitive> prims = Client.Network.CurrentSim.ObjectsPrimitives.FindAll( - delegate(Primitive prim) { - Vector3 pos = prim.Position; - return ((prim.ParentID == 0) && (pos != Vector3.Zero) && (Vector3.Distance(pos, location) < radius)); - } - ); - - + + Create a new group role + Group ID to update + Role to create - - Find All items in an - return matching keys. - a containing found keys. - - Find All keys which also exist in another dictionary - - List<UUID> matches = myDict.FindAll( - delegate(UUID id) { - return myOtherDict.ContainsKey(id); - } - ); - - + + Delete a group role + Group ID to update + Role to delete - - Check if Key exists in Dictionary - Key to check for - if found, otherwise + + Remove an avatar from a role + Group ID to update + Role ID to be removed from + Avatar's Key to remove - - Check if Value exists in Dictionary - Value to check for - if found, otherwise + + Assign an avatar to a role + Group ID to update + Role ID to assign to + Avatar's ID to assign to role - - - Adds the specified key to the dictionary, dictionary locking is not performed, - - - The key - The value + + Request the group notices list + Group ID to fetch notices for - - - Removes the specified key, dictionary locking is not performed - - The key. - if successful, otherwise + + Request a group notice by key + ID of group notice - - - Clear the contents of the dictionary - + + Send out a group notice + Group ID to update + GroupNotice structure containing notice data - - - Enumerator for iterating dictionary entries - - + + Start a group proposal (vote) + The Group ID to send proposal to + GroupProposal structure containing the proposal - - - Gets the number of Key/Value pairs contained in the - + + Request to leave a group + Subscribe to OnGroupLeft event to receive confirmation + The group to leave - + - Indexer for the dictionary + Gets the URI of the cpability for handling group bans - The key - The value + Group ID + null, if the feature is not supported, or URI of the capability - + - Add a custom decoder callback + Request a list of residents banned from joining a group - The key of the field to decode - The custom decode handler + UUID of the group - + - Remove a custom decoder callback + Request a list of residents banned from joining a group - The key of the field to decode - The custom decode handler + UUID of the group + Callback on request completition - + - Creates a formatted string containing the values of a Packet + Request that group of agents be banned or unbanned from the group - The Packet - A formatted string of values of the nested items in the Packet object + Group ID + Ban/Unban action + Array of agents UUIDs to ban - + - Decode an IMessage object into a beautifully formatted string + Request that group of agents be banned or unbanned from the group - The IMessage object - Recursion level (used for indenting) - A formatted string containing the names and values of the source object + Group ID + Ban/Unban action + Array of agents UUIDs to ban + Callback - - - A custom decoder callback - - The key of the object - the data to decode - A string represending the fieldData + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Provides helper methods for parallelizing loops - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Executes a for loop in which iterations may run in parallel - - The loop will be started at this index - The loop will be terminated before this index is reached - Method body to run for each iteration of the loop + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Executes a for loop in which iterations may run in parallel - - The number of concurrent execution threads to run - The loop will be started at this index - The loop will be terminated before this index is reached - Method body to run for each iteration of the loop + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Executes a foreach loop in which iterations may run in parallel - - Object type that the collection wraps - An enumerable collection to iterate over - Method body to run for each object in the collection + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Executes a foreach loop in which iterations may run in parallel - - Object type that the collection wraps - The number of concurrent execution threads to run - An enumerable collection to iterate over - Method body to run for each object in the collection + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Executes a series of tasks in parallel - - A series of method bodies to execute + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Executes a series of tasks in parallel - - The number of concurrent execution threads to run - A series of method bodies to execute + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Type of return to use when returning objects from a parcel - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Return objects owned by parcel owner + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Return objects set to group + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Return objects not owned by parcel owner or set to group + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Return a specific list of objects on parcel + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Return objects that are marked for-sale + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - + + Contains the current groups your agent is a member of + + + Get the current groups your agent is a member of + + + Construct a new instance of the CurrentGroupsEventArgs class + The current groups your agent is a member of + + + A Dictionary of group names, where the Key is the groups ID and the value is the groups name + + + Get the Group Names dictionary + + + Construct a new instance of the GroupNamesEventArgs class + The Group names dictionary + + + Represents the members of a group + + + Get the ID as returned by the request to correlate + this result set and the request + + + Get the ID of the group + + + Get the dictionary of members + + - Blacklist/Whitelist flags used in parcels Access List + Construct a new instance of the GroupMembersReplyEventArgs class + The ID of the request + The ID of the group + The membership list of the group - - Agent is denied access + + Represents the roles associated with a group - - Agent is granted access + + Get the ID as returned by the request to correlate + this result set and the request - - - The result of a request for parcel properties - + + Get the ID of the group - - No matches were found for the request + + Get the dictionary containing the roles - - Request matched a single parcel + + Construct a new instance of the GroupRolesDataReplyEventArgs class + The ID as returned by the request to correlate + this result set and the request + The ID of the group + The dictionary containing the roles - - Request matched multiple parcels + + Represents the Role to Member mappings for a group - - - Flags used in the ParcelAccessListRequest packet to specify whether - we want the access list (whitelist), ban list (blacklist), or both - + + Get the ID as returned by the request to correlate + this result set and the request - - Request the access list + + Get the ID of the group - - Request the ban list + + Get the member to roles map - - Request both White and Black lists + + Construct a new instance of the GroupRolesMembersReplyEventArgs class + The ID as returned by the request to correlate + this result set and the request + The ID of the group + The member to roles map - - - Sequence ID in ParcelPropertiesReply packets (sent when avatar - tries to cross a parcel border) - + + Represents the titles for a group - - Parcel is currently selected + + Get the ID as returned by the request to correlate + this result set and the request - - Parcel restricted to a group the avatar is not a - member of + + Get the ID of the group - - Avatar is banned from the parcel + + Get the titles - - Parcel is restricted to an access list that the - avatar is not on + + Construct a new instance of the GroupTitlesReplyEventArgs class + The ID as returned by the request to correlate + this result set and the request + The ID of the group + The titles - - Response to hovering over a parcel + + Represents the summary data for a group - - - The tool to use when modifying terrain levels - + + Get the ID of the group - - Level the terrain + + Get the summary data - - Raise the terrain + + Construct a new instance of the GroupAccountSummaryReplyEventArgs class + The ID of the group + The summary data - - Lower the terrain + + A response to a group create request - - Smooth the terrain + + Get the ID of the group - - Add random noise to the terrain + + true of the group was created successfully - - Revert terrain to simulator default + + A string containing the message - - - The tool size to use when changing terrain levels - + + Construct a new instance of the GroupCreatedReplyEventArgs class + The ID of the group + the success or faulure of the request + A string containing additional information - - Small + + Represents a response to a request - - Medium + + Get the ID of the group - - Large + + true of the request was successful - - - Reasons agent is denied access to a parcel on the simulator - + + Construct a new instance of the GroupOperationEventArgs class + The ID of the group + true of the request was successful - - Agent is not denied, access is granted + + Represents your agent leaving a group - - Agent is not a member of the group set for the parcel, or which owns the parcel + + Get the ID of the group - - Agent is not on the parcels specific allow list + + Construct a new instance of the GroupDroppedEventArgs class + The ID of the group - - Agent is on the parcels ban list + + Represents a list of active group notices - - Unknown + + Get the ID of the group - - Agent is not age verified and parcel settings deny access to non age verified avatars + + Get the notices list - - - Parcel overlay type. This is used primarily for highlighting and - coloring which is why it is a single integer instead of a set of - flags - - These values seem to be poorly thought out. The first three - bits represent a single value, not flags. For example Auction (0x05) is - not a combination of OwnedByOther (0x01) and ForSale(0x04). However, - the BorderWest and BorderSouth values are bit flags that get attached - to the value stored in the first three bits. Bits four, five, and six - are unused + + Construct a new instance of the GroupNoticesListReplyEventArgs class + The ID of the group + The list containing active notices - - Public land + + Represents the profile of a group - - Land is owned by another avatar + + Get the group profile - - Land is owned by a group + + Construct a new instance of the GroupProfileEventArgs class + The group profile - - Land is owned by the current avatar + + + Provides notification of a group invitation request sent by another Avatar + + The invitation is raised when another avatar makes an offer for our avatar + to join a group. - - Land is for sale + + The ID of the Avatar sending the group invitation - - Land is being auctioned + + The name of the Avatar sending the group invitation - - Land is private + + A message containing the request information which includes + the name of the group, the groups charter and the fee to join details - - To the west of this area is a parcel border + + The Simulator - - To the south of this area is a parcel border + + Set to true to accept invitation, false to decline - + - Various parcel properties + Result of the request for list of agents banned from a group - - No flags set + + Indicates if list of banned agents for a group was successfully retrieved - - Allow avatars to fly (a client-side only restriction) + + Indicates if list of banned agents for a group was successfully retrieved - - Allow foreign scripts to run + + Array containing a list of UUIDs of the agents banned from a group - - This parcel is for sale + + + Static helper functions and global variables + - - Allow avatars to create a landmark on this parcel + + This header flag signals that ACKs are appended to the packet - - Allows all avatars to edit the terrain on this parcel + + This header flag signals that this packet has been sent before - - Avatars have health and can take damage on this parcel. - If set, avatars can be killed and sent home here + + This header flags signals that an ACK is expected for this packet - - Foreign avatars can create objects here + + This header flag signals that the message is compressed using zerocoding - - All objects on this parcel can be purchased + + + Passed to Logger.Log() to identify the severity of a log entry + - - Access is restricted to a group + + No logging information will be output - - Access is restricted to a whitelist + + Non-noisy useful information, may be helpful in + debugging a problem - - Ban blacklist is enabled + + A non-critical error occurred. A warning will not + prevent the rest of the library from operating as usual, + although it may be indicative of an underlying issue - - Unknown + + A critical error has occurred. Generally this will + be followed by the network layer shutting down, although the + stability of the library after an error is uncertain - - List this parcel in the search directory + + Used for internal testing, this logging level can + generate very noisy (long and/or repetitive) messages. Don't + pass this to the Log() function, use DebugLog() instead. + - - Allow personally owned parcels to be deeded to group + + + + + + - - If Deeded, owner contributes required tier to group parcel is deeded to + + + + + + + - - Restrict sounds originating on this parcel to the - parcel boundaries + + + + + + - - Objects on this parcel are sold when the land is - purchsaed + + + + + + + - - Allow this parcel to be published on the web + + + Given an X/Y location in absolute (grid-relative) terms, a region + handle is returned along with the local X/Y location in that region + + The absolute X location, a number such as + 255360.35 + The absolute Y location, a number such as + 255360.35 + The sim-local X position of the global X + position, a value from 0.0 to 256.0 + The sim-local Y position of the global Y + position, a value from 0.0 to 256.0 + A 64-bit region handle that can be used to teleport to - - The information for this parcel is mature content + + + Converts a floating point number to a terse string format used for + transmitting numbers in wearable asset files + + Floating point number to convert to a string + A terse string representation of the input number - - The media URL is an HTML page + + + Convert a variable length field (byte array) to a string, with a + field name prepended to each line of the output + + If the byte array has unprintable characters in it, a + hex dump will be written instead + The StringBuilder object to write to + The byte array to convert to a string + A field name to prepend to each line of output - - The media URL is a raw HTML string + + + Decode a zerocoded byte array, used to decompress packets marked + with the zerocoded flag + + Any time a zero is encountered, the next byte is a count + of how many zeroes to expand. One zero is encoded with 0x00 0x01, + two zeroes is 0x00 0x02, three zeroes is 0x00 0x03, etc. The + first four bytes are copied directly to the output buffer. + + The byte array to decode + The length of the byte array to decode. This + would be the length of the packet up to (but not including) any + appended ACKs + The output byte array to decode to + The length of the output buffer - - Restrict foreign object pushes + + + Encode a byte array with zerocoding. Used to compress packets marked + with the zerocoded flag. Any zeroes in the array are compressed down + to a single zero byte followed by a count of how many zeroes to expand + out. A single zero becomes 0x00 0x01, two zeroes becomes 0x00 0x02, + three zeroes becomes 0x00 0x03, etc. The first four bytes are copied + directly to the output buffer. + + The byte array to encode + The length of the byte array to encode + The output byte array to encode to + The length of the output buffer - - Ban all non identified/transacted avatars + + + Calculates the CRC (cyclic redundancy check) needed to upload inventory. + + Creation date + Sale type + Inventory type + Type + Asset ID + Group ID + Sale price + Owner ID + Creator ID + Item ID + Folder ID + Everyone mask (permissions) + Flags + Next owner mask (permissions) + Group mask (permissions) + Owner mask (permissions) + The calculated CRC - - Allow group-owned scripts to run + + + Attempts to load a file embedded in the assembly + + The filename of the resource to load + A Stream for the requested file, or null if the resource + was not successfully loaded - - Allow object creation by group members or group - objects + + + Attempts to load a file either embedded in the assembly or found in + a given search path + + The filename of the resource to load + An optional path that will be searched if + the asset is not found embedded in the assembly + A Stream for the requested file, or null if the resource + was not successfully loaded - - Allow all objects to enter this parcel + + + Converts a list of primitives to an object that can be serialized + with the LLSD system + + Primitives to convert to a serializable object + An object that can be serialized with LLSD - - Only allow group and owner objects to enter this parcel + + + Deserializes OSD in to a list of primitives + + Structure holding the serialized primitive list, + must be of the SDMap type + A list of deserialized primitives - - Voice Enabled on this parcel + + + Converts a struct or class object containing fields only into a key value separated string + + The struct object + A string containing the struct fields as the keys, and the field value as the value separated + + + // Add the following code to any struct or class containing only fields to override the ToString() + // method to display the values of the passed object + + /// Print the struct data as a string + ///A string containing the field name, and field value + public override string ToString() + { + return Helpers.StructToString(this); + } + + - - Use Estate Voice channel for Voice on this parcel + + + The InternalDictionary class is used through the library for storing key/value pairs. + It is intended to be a replacement for the generic Dictionary class and should + be used in its place. It contains several methods for allowing access to the data from + outside the library that are read only and thread safe. + + + Key + Value - - Deny Age Unverified Users + + Internal dictionary that this class wraps around. Do not + modify or enumerate the contents of this dictionary without locking + on this member - + - Parcel ownership status + Gets the number of Key/Value pairs contained in the - - Placeholder - - - Parcel is leased (owned) by an avatar or group - - - Parcel is in process of being leased (purchased) by an avatar or group - - - Parcel has been abandoned back to Governor Linden - - + - Category parcel is listed in under search + Initializes a new instance of the Class + with the specified key/value, has the default initial capacity. + + + // initialize a new InternalDictionary named testDict with a string as the key and an int as the value. + public InternalDictionary<string, int> testDict = new InternalDictionary<string, int>(); + + - - No assigned category - - - Linden Infohub or public area - - - Adult themed area - - - Arts and Culture - - - Business + + + Initializes a new instance of the Class + with the specified key/value, has its initial valies copied from the specified + + + + to copy initial values from + + + // initialize a new InternalDictionary named testAvName with a UUID as the key and an string as the value. + // populates with copied values from example KeyNameCache Dictionary. + + // create source dictionary + Dictionary<UUID, string> KeyNameCache = new Dictionary<UUID, string>(); + KeyNameCache.Add("8300f94a-7970-7810-cf2c-fc9aa6cdda24", "Jack Avatar"); + KeyNameCache.Add("27ba1e40-13f7-0708-3e98-5819d780bd62", "Jill Avatar"); + + // Initialize new dictionary. + public InternalDictionary<UUID, string> testAvName = new InternalDictionary<UUID, string>(KeyNameCache); + + - - Educational + + + Initializes a new instance of the Class + with the specified key/value, With its initial capacity specified. + + Initial size of dictionary + + + // initialize a new InternalDictionary named testDict with a string as the key and an int as the value, + // initially allocated room for 10 entries. + public InternalDictionary<string, int> testDict = new InternalDictionary<string, int>(10); + + - - Gaming + + + Try to get entry from with specified key + + Key to use for lookup + Value returned + if specified key exists, if not found + + + // find your avatar using the Simulator.ObjectsAvatars InternalDictionary: + Avatar av; + if (Client.Network.CurrentSim.ObjectsAvatars.TryGetValue(Client.Self.AgentID, out av)) + Console.WriteLine("Found Avatar {0}", av.Name); + + + - - Hangout or Club + + + Finds the specified match. + + The match. + Matched value + + + // use a delegate to find a prim in the ObjectsPrimitives InternalDictionary + // with the ID 95683496 + uint findID = 95683496; + Primitive findPrim = sim.ObjectsPrimitives.Find( + delegate(Primitive prim) { return prim.ID == findID; }); + + - - Newcomer friendly + + Find All items in an + return matching items. + a containing found items. + + Find All prims within 20 meters and store them in a List + + int radius = 20; + List<Primitive> prims = Client.Network.CurrentSim.ObjectsPrimitives.FindAll( + delegate(Primitive prim) { + Vector3 pos = prim.Position; + return ((prim.ParentID == 0) && (pos != Vector3.Zero) && (Vector3.Distance(pos, location) < radius)); + } + ); + + - - Parks and Nature + + Find All items in an + return matching keys. + a containing found keys. + + Find All keys which also exist in another dictionary + + List<UUID> matches = myDict.FindAll( + delegate(UUID id) { + return myOtherDict.ContainsKey(id); + } + ); + + - - Residential + + Perform an on each entry in an + to perform + + + // Iterates over the ObjectsPrimitives InternalDictionary and prints out some information. + Client.Network.CurrentSim.ObjectsPrimitives.ForEach( + delegate(Primitive prim) + { + if (prim.Text != null) + { + Console.WriteLine("NAME={0} ID = {1} TEXT = '{2}'", + prim.PropertiesFamily.Name, prim.ID, prim.Text); + } + }); + + - - Shopping + + Perform an on each key of an + to perform - - Not Used? + + + Perform an on each KeyValuePair of an + + to perform - - Other + + Check if Key exists in Dictionary + Key to check for + if found, otherwise - - Not an actual category, only used for queries + + Check if Value exists in Dictionary + Value to check for + if found, otherwise - + - Type of teleport landing for a parcel + Adds the specified key to the dictionary, dictionary locking is not performed, + + The key + The value - - Unset, simulator default - - - Specific landing point set for this parcel + + + Removes the specified key, dictionary locking is not performed + + The key. + if successful, otherwise - - No landing point set, direct teleports enabled for - this parcel + + + Indexer for the dictionary + + The key + The value - + - Parcel Media Command used in ParcelMediaCommandMessage + Exception class to identify inventory exceptions - - Stop the media stream and go back to the first frame + + + Responsible for maintaining inventory structure. Inventory constructs nodes + and manages node children as is necessary to maintain a coherant hirarchy. + Other classes should not manipulate or create InventoryNodes explicitly. When + A node's parent changes (when a folder is moved, for example) simply pass + Inventory the updated InventoryFolder and it will make the appropriate changes + to its internal representation. + - - Pause the media stream (stop playing but stay on current frame) + + The event subscribers, null of no subscribers - - Start the current media stream playing and stop when the end is reached + + Raises the InventoryObjectUpdated Event + A InventoryObjectUpdatedEventArgs object containing + the data sent from the simulator - - Start the current media stream playing, - loop to the beginning when the end is reached and continue to play + + Thread sync lock object - - Specifies the texture to replace with video - If passing the key of a texture, it must be explicitly typecast as a key, - not just passed within double quotes. + + Raised when the simulator sends us data containing + ... - - Specifies the movie URL (254 characters max) + + The event subscribers, null of no subscribers - - Specifies the time index at which to begin playing + + Raises the InventoryObjectRemoved Event + A InventoryObjectRemovedEventArgs object containing + the data sent from the simulator - - Specifies a single agent to apply the media command to + + Thread sync lock object - - Unloads the stream. While the stop command sets the texture to the first frame of the movie, - unload resets it to the real texture that the movie was replacing. + + Raised when the simulator sends us data containing + ... - - Turn on/off the auto align feature, similar to the auto align checkbox in the parcel media properties - (NOT to be confused with the "align" function in the textures view of the editor!) Takes TRUE or FALSE as parameter. + + The event subscribers, null of no subscribers - - Allows a Web page or image to be placed on a prim (1.19.1 RC0 and later only). - Use "text/html" for HTML. + + Raises the InventoryObjectAdded Event + A InventoryObjectAddedEventArgs object containing + the data sent from the simulator - - Resizes a Web page to fit on x, y pixels (1.19.1 RC0 and later only). - This might still not be working + + Thread sync lock object - - Sets a description for the media being displayed (1.19.1 RC0 and later only). + + Raised when the simulator sends us data containing + ... - + - Some information about a parcel of land returned from a DirectoryManager search + The root folder of this avatars inventory - - Global Key of record - - - Parcel Owners + + + The default shared library folder + - - Name field of parcel, limited to 128 characters + + + The root node of the avatars inventory + - - Description field of parcel, limited to 256 characters + + + The root node of the default shared library + - - Total Square meters of parcel + + + Returns the contents of the specified folder + + A folder's UUID + The contents of the folder corresponding to folder + When folder does not exist in the inventory - - Total area billable as Tier, for group owned land this will be 10% less than ActualArea + + + Updates the state of the InventoryNode and inventory data structure that + is responsible for the InventoryObject. If the item was previously not added to inventory, + it adds the item, and updates structure accordingly. If it was, it updates the + InventoryNode, changing the parent node if item.parentUUID does + not match node.Parent.Data.UUID. + + You can not set the inventory root folder using this method + + The InventoryObject to store - - True of parcel is in Mature simulator + + + Removes the InventoryObject and all related node data from Inventory. + + The InventoryObject to remove. - - Grid global X position of parcel + + + Used to find out if Inventory contains the InventoryObject + specified by uuid. + + The UUID to check. + true if inventory contains uuid, false otherwise - - Grid global Y position of parcel + + + Saves the current inventory structure to a cache file + + Name of the cache file to save to - - Grid global Z position of parcel (not used) + + + Loads in inventory cache file into the inventory structure. Note only valid to call after login has been successful. + + Name of the cache file to load + The number of inventory items sucessfully reconstructed into the inventory node tree - - Name of simulator parcel is located in + + + By using the bracket operator on this class, the program can get the + InventoryObject designated by the specified uuid. If the value for the corresponding + UUID is null, the call is equivelant to a call to RemoveNodeFor(this[uuid]). + If the value is non-null, it is equivelant to a call to UpdateNodeFor(value), + the uuid parameter is ignored. + + The UUID of the InventoryObject to get or set, ignored if set to non-null value. + The InventoryObject corresponding to uuid. - - Texture of parcels display picture + + Sort by name - - Float representing calculated traffic based on time spent on parcel by avatars + + Sort by date - - Sale price of parcel (not used) + + Sort folders by name, regardless of whether items are + sorted by name or date - - Auction ID of parcel + + Place system folders at the top - + - Parcel Media Information + Possible destinations for DeRezObject request - - A byte, if 0x1 viewer should auto scale media to fit object + + - - A boolean, if true the viewer should loop the media + + Copy from in-world to agent inventory - - The Asset UUID of the Texture which when applied to a - primitive will display the media + + Derez to TaskInventory - - A URL which points to any Quicktime supported media type + + - - A description of the media + + Take Object - - An Integer which represents the height of the media + + - - An integer which represents the width of the media + + Delete Object - - A string which contains the mime type of the media + + Put an avatar attachment into agent inventory - + + + + + Return an object back to the owner's inventory + + + Return a deeded object back to the last owner's inventory + + - Parcel of land, a portion of virtual real estate in a simulator + Upper half of the Flags field for inventory items - - The total number of contiguous 4x4 meter blocks your agent owns within this parcel + + Indicates that the NextOwner permission will be set to the + most restrictive set of permissions found in the object set + (including linkset items and object inventory items) on next rez - - The total number of contiguous 4x4 meter blocks contained in this parcel owned by a group or agent other than your own + + Indicates that the object sale information has been + changed - - Deprecated, Value appears to always be 0 + + If set, and a slam bit is set, indicates BaseMask will be overwritten on Rez - - Simulator-local ID of this parcel + + If set, and a slam bit is set, indicates OwnerMask will be overwritten on Rez - - UUID of the owner of this parcel + + If set, and a slam bit is set, indicates GroupMask will be overwritten on Rez - - Whether the land is deeded to a group or not + + If set, and a slam bit is set, indicates EveryoneMask will be overwritten on Rez - - + + If set, and a slam bit is set, indicates NextOwnerMask will be overwritten on Rez - - Date land was claimed + + Indicates whether this object is composed of multiple + items or not - - Appears to always be zero + + Indicates that the asset is only referenced by this + inventory item. If this item is deleted or updated to reference a + new assetID, the asset can be deleted - - This field is no longer used + + + Base Class for Inventory Items + - - Minimum corner of the axis-aligned bounding box for this - parcel + + of item/folder - - Maximum corner of the axis-aligned bounding box for this - parcel + + of parent folder - - Bitmap describing land layout in 4x4m squares across the - entire region + + Name of item/folder - - Total parcel land area + + Item/Folder Owners - - + + + Constructor, takes an itemID as a parameter + + The of the item - - Maximum primitives across the entire simulator owned by the same agent or group that owns this parcel that can be used + + + + + - - Total primitives across the entire simulator calculated by combining the allowed prim counts for each parcel - owned by the agent or group that owns this parcel + + + + + - - Maximum number of primitives this parcel supports + + + Generates a number corresponding to the value of the object to support the use of a hash table, + suitable for use in hashing algorithms and data structures such as a hash table + + A Hashcode of all the combined InventoryBase fields - - Total number of primitives on this parcel + + + Determine whether the specified object is equal to the current object + + InventoryBase object to compare against + true if objects are the same - - For group-owned parcels this indicates the total number of prims deeded to the group, - for parcels owned by an individual this inicates the number of prims owned by the individual + + + Determine whether the specified object is equal to the current object + + InventoryBase object to compare against + true if objects are the same - - Total number of primitives owned by the parcel group on - this parcel, or for parcels owned by an individual with a group set the - total number of prims set to that group. + + + Convert inventory to OSD + + OSD representation - - Total number of prims owned by other avatars that are not set to group, or not the parcel owner + + + An Item in Inventory + - - A bonus multiplier which allows parcel prim counts to go over times this amount, this does not affect - the max prims per simulator. e.g: 117 prim parcel limit x 1.5 bonus = 175 allowed + + The of this item - - Autoreturn value in minutes for others' objects + + The combined of this item - - + + The type of item from - - Sale price of the parcel, only useful if ForSale is set - The SalePrice will remain the same after an ownership - transfer (sale), so it can be used to see the purchase price after - a sale if the new owner has not changed it + + The type of item from the enum - - Parcel Name + + The of the creator of this item - - Parcel Description + + A Description of this item - - URL For Music Stream + + The s this item is set to or owned by - - + + If true, item is owned by a group - - Price for a temporary pass + + The price this item can be purchased for - - How long is pass valid for + + The type of sale from the enum - - + + Combined flags from - - Key of authorized buyer + + Time and date this inventory item was created, stored as + UTC (Coordinated Universal Time) - - Key of parcel snapshot + + Used to update the AssetID in requests sent to the server - - The landing point location + + The of the previous owner of the item - - The landing point LookAt + + + Construct a new InventoryItem object + + The of the item - - The type of landing enforced from the enum + + + Construct a new InventoryItem object of a specific Type + + The type of item from + of the item - - + + + Indicates inventory item is a link + + True if inventory item is a link to another inventory item - - + + + + + - - + + + + + - - Access list of who is whitelisted on this - parcel + + + Generates a number corresponding to the value of the object to support the use of a hash table. + Suitable for use in hashing algorithms and data structures such as a hash table + + A Hashcode of all the combined InventoryItem fields - - Access list of who is blacklisted on this - parcel + + + Compares an object + + The object to compare + true if comparison object matches - - TRUE of region denies access to age unverified users + + + Determine whether the specified object is equal to the current object + + The object to compare against + true if objects are the same - - true to obscure (hide) media url + + + Determine whether the specified object is equal to the current object + + The object to compare against + true if objects are the same - - true to obscure (hide) music url + + + Create InventoryItem from OSD + + OSD Data that makes up InventoryItem + Inventory item created - - A struct containing media details + + + Convert InventoryItem to OSD + + OSD representation of InventoryItem - + - Displays a parcel object in string format + InventoryTexture Class representing a graphical image - string containing key=value pairs of a parcel object + - + - Defalt constructor + Construct an InventoryTexture object - Local ID of this parcel + A which becomes the + objects AssetUUID - + - Update the simulator with any local changes to this Parcel object + Construct an InventoryTexture object from a serialization stream - Simulator to send updates to - Whether we want the simulator to confirm - the update with a reply packet or not - + - Set Autoreturn time + InventorySound Class representing a playable sound - Simulator to send the update to - + - Parcel (subdivided simulator lots) subsystem + Construct an InventorySound object + A which becomes the + objects AssetUUID - - The event subscribers. null if no subcribers + + + Construct an InventorySound object from a serialization stream + - - Raises the ParcelDwellReply event - A ParcelDwellReplyEventArgs object containing the - data returned from the simulator + + + InventoryCallingCard Class, contains information on another avatar + - - Thread sync lock object + + + Construct an InventoryCallingCard object + + A which becomes the + objects AssetUUID - - The event subscribers. null if no subcribers + + + Construct an InventoryCallingCard object from a serialization stream + - - Raises the ParcelInfoReply event - A ParcelInfoReplyEventArgs object containing the - data returned from the simulator + + + InventoryLandmark Class, contains details on a specific location + - - Thread sync lock object + + + Construct an InventoryLandmark object + + A which becomes the + objects AssetUUID - - The event subscribers. null if no subcribers + + + Construct an InventoryLandmark object from a serialization stream + - - Raises the ParcelProperties event - A ParcelPropertiesEventArgs object containing the - data returned from the simulator + + + Landmarks use the InventoryItemFlags struct and will have a flag of 1 set if they have been visited + - - Thread sync lock object + + + InventoryObject Class contains details on a primitive or coalesced set of primitives + - - The event subscribers. null if no subcribers + + + Construct an InventoryObject object + + A which becomes the + objects AssetUUID - - Raises the ParcelAccessListReply event - A ParcelAccessListReplyEventArgs object containing the - data returned from the simulator + + + Construct an InventoryObject object from a serialization stream + - - Thread sync lock object + + + Gets or sets the upper byte of the Flags value + - - The event subscribers. null if no subcribers + + + Gets or sets the object attachment point, the lower byte of the Flags value + - - Raises the ParcelObjectOwnersReply event - A ParcelObjectOwnersReplyEventArgs object containing the - data returned from the simulator + + + InventoryNotecard Class, contains details on an encoded text document + - - Thread sync lock object + + + Construct an InventoryNotecard object + + A which becomes the + objects AssetUUID - - The event subscribers. null if no subcribers + + + Construct an InventoryNotecard object from a serialization stream + - - Raises the SimParcelsDownloaded event - A SimParcelsDownloadedEventArgs object containing the - data returned from the simulator + + + InventoryCategory Class + + TODO: Is this even used for anything? - - Thread sync lock object + + + Construct an InventoryCategory object + + A which becomes the + objects AssetUUID - - The event subscribers. null if no subcribers + + + Construct an InventoryCategory object from a serialization stream + - - Raises the ForceSelectObjectsReply event - A ForceSelectObjectsReplyEventArgs object containing the - data returned from the simulator + + + InventoryLSL Class, represents a Linden Scripting Language object + - - Thread sync lock object + + + Construct an InventoryLSL object + + A which becomes the + objects AssetUUID - - The event subscribers. null if no subcribers + + + Construct an InventoryLSL object from a serialization stream + - - Raises the ParcelMediaUpdateReply event - A ParcelMediaUpdateReplyEventArgs object containing the - data returned from the simulator + + + InventorySnapshot Class, an image taken with the viewer + - - Thread sync lock object + + + Construct an InventorySnapshot object + + A which becomes the + objects AssetUUID - - The event subscribers. null if no subcribers + + + Construct an InventorySnapshot object from a serialization stream + - - Raises the ParcelMediaCommand event - A ParcelMediaCommandEventArgs object containing the - data returned from the simulator + + + InventoryAttachment Class, contains details on an attachable object + - - Thread sync lock object + + + Construct an InventoryAttachment object + + A which becomes the + objects AssetUUID - + - Default constructor + Construct an InventoryAttachment object from a serialization stream - A reference to the GridClient object - + - Request basic information for a single parcel + Get the last AttachmentPoint this object was attached to - Simulator-local ID of the parcel - + - Request properties of a single parcel + InventoryWearable Class, details on a clothing item or body part - Simulator containing the parcel - Simulator-local ID of the parcel - An arbitrary integer that will be returned - with the ParcelProperties reply, useful for distinguishing between - multiple simultaneous requests - + - Request the access list for a single parcel + Construct an InventoryWearable object - Simulator containing the parcel - Simulator-local ID of the parcel - An arbitrary integer that will be returned - with the ParcelAccessList reply, useful for distinguishing between - multiple simultaneous requests - + A which becomes the + objects AssetUUID - + - Request properties of parcels using a bounding box selection + Construct an InventoryWearable object from a serialization stream - Simulator containing the parcel - Northern boundary of the parcel selection - Eastern boundary of the parcel selection - Southern boundary of the parcel selection - Western boundary of the parcel selection - An arbitrary integer that will be returned - with the ParcelProperties reply, useful for distinguishing between - different types of parcel property requests - A boolean that is returned with the - ParcelProperties reply, useful for snapping focus to a single - parcel - + - Request all simulator parcel properties (used for populating the Simulator.Parcels - dictionary) + The , Skin, Shape, Skirt, Etc - Simulator to request parcels from (must be connected) - + - Request all simulator parcel properties (used for populating the Simulator.Parcels - dictionary) + InventoryAnimation Class, A bvh encoded object which animates an avatar - Simulator to request parcels from (must be connected) - If TRUE, will force a full refresh - Number of milliseconds to pause in between each request - + - Request the dwell value for a parcel + Construct an InventoryAnimation object - Simulator containing the parcel - Simulator-local ID of the parcel + A which becomes the + objects AssetUUID - + - Send a request to Purchase a parcel of land + Construct an InventoryAnimation object from a serialization stream - The Simulator the parcel is located in - The parcels region specific local ID - true if this parcel is being purchased by a group - The groups - true to remove tier contribution if purchase is successful - The parcels size - The purchase price of the parcel - - + - Reclaim a parcel of land + InventoryGesture Class, details on a series of animations, sounds, and actions - The simulator the parcel is in - The parcels region specific local ID - + - Deed a parcel to a group + Construct an InventoryGesture object - The simulator the parcel is in - The parcels region specific local ID - The groups + A which becomes the + objects AssetUUID - + - Request prim owners of a parcel of land. + Construct an InventoryGesture object from a serialization stream - Simulator parcel is in - The parcels region specific local ID - + - Return objects from a parcel + A folder contains s and has certain attributes specific + to itself - Simulator parcel is in - The parcels region specific local ID - the type of objects to return, - A list containing object owners s to return - + + The Preferred for a folder. + + + The Version of this folder + + + Number of child items this folder contains. + + - Subdivide (split) a parcel + Constructor - - - - - + UUID of the folder - + - Join two parcels of land creating a single parcel + - - - - - + - + - Get a parcels LocalID + Get Serilization data for this InventoryFolder object - Simulator parcel is in - Vector3 position in simulator (Z not used) - 0 on failure, or parcel LocalID on success. - A call to Parcels.RequestAllSimParcels is required to populate map and - dictionary. - + - Terraform (raise, lower, etc) an area or whole parcel of land + Construct an InventoryFolder object from a serialization stream - Simulator land area is in. - LocalID of parcel, or -1 if using bounding box - From Enum, Raise, Lower, Level, Smooth, Etc. - Size of area to modify - true on successful request sent. - Settings.STORE_LAND_PATCHES must be true, - Parcel information must be downloaded using RequestAllSimParcels() - + - Terraform (raise, lower, etc) an area or whole parcel of land + - Simulator land area is in. - west border of area to modify - south border of area to modify - east border of area to modify - north border of area to modify - From Enum, Raise, Lower, Level, Smooth, Etc. - Size of area to modify - true on successful request sent. - Settings.STORE_LAND_PATCHES must be true, - Parcel information must be downloaded using RequestAllSimParcels() + - + - Terraform (raise, lower, etc) an area or whole parcel of land + - Simulator land area is in. - LocalID of parcel, or -1 if using bounding box - west border of area to modify - south border of area to modify - east border of area to modify - north border of area to modify - From Enum, Raise, Lower, Level, Smooth, Etc. - Size of area to modify - How many meters + or - to lower, 1 = 1 meter - true on successful request sent. - Settings.STORE_LAND_PATCHES must be true, - Parcel information must be downloaded using RequestAllSimParcels() + + - + - Terraform (raise, lower, etc) an area or whole parcel of land + - Simulator land area is in. - LocalID of parcel, or -1 if using bounding box - west border of area to modify - south border of area to modify - east border of area to modify - north border of area to modify - From Enum, Raise, Lower, Level, Smooth, Etc. - Size of area to modify - How many meters + or - to lower, 1 = 1 meter - Height at which the terraform operation is acting at + + - + - Sends a request to the simulator to return a list of objects owned by specific owners + - Simulator local ID of parcel - Owners, Others, Etc - List containing keys of avatars objects to select; - if List is null will return Objects of type selectType - Response data is returned in the event + + - + - Eject and optionally ban a user from a parcel + Create InventoryFolder from OSD - target key of avatar to eject - true to also ban target + OSD Data that makes up InventoryFolder + Inventory folder created - + - Freeze or unfreeze an avatar over your land + Convert InventoryItem to OSD - target key to freeze - true to freeze, false to unfreeze + OSD representation of InventoryItem - + - Abandon a parcel of land + Tools for dealing with agents inventory - Simulator parcel is in - Simulator local ID of parcel - + + Used for converting shadow_id to asset_id + + - Requests the UUID of the parcel in a remote region at a specified location + Callback for inventory item creation finishing - Location of the parcel in the remote region - Remote region handle - Remote region UUID - If successful UUID of the remote parcel, UUID.Zero otherwise + Whether the request to create an inventory + item succeeded or not + Inventory item being created. If success is + false this will be null - + - Retrieves information on resources used by the parcel + Callback for an inventory item being create from an uploaded asset - UUID of the parcel - Should per object resource usage be requested - Callback invoked when the request is complete - - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - Raises the event + true if inventory item creation was successful + + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - Raises the event + + + + + - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - Raises the event + + The event subscribers, null of no subscribers - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - Raises the event + + Raises the ItemReceived Event + A ItemReceivedEventArgs object containing + the data sent from the simulator - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - Raises the event + + Thread sync lock object - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Raised when the simulator sends us data containing + ... - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data - Raises the event + + The event subscribers, null of no subscribers - - Raised when the simulator responds to a request + + Raises the FolderUpdated Event + A FolderUpdatedEventArgs object containing + the data sent from the simulator - - Raised when the simulator responds to a request + + Thread sync lock object - - Raised when the simulator responds to a request + + Raised when the simulator sends us data containing + ... - - Raised when the simulator responds to a request + + The event subscribers, null of no subscribers - - Raised when the simulator responds to a request + + Raises the InventoryObjectOffered Event + A InventoryObjectOfferedEventArgs object containing + the data sent from the simulator - - Raised when the simulator responds to a request + + Thread sync lock object - - Raised when the simulator responds to a request + + Raised when the simulator sends us data containing + an inventory object sent by another avatar or primitive - - Raised when the simulator responds to a Parcel Update request + + The event subscribers, null of no subscribers - - Raised when the parcel your agent is located sends a ParcelMediaCommand + + Raises the TaskItemReceived Event + A TaskItemReceivedEventArgs object containing + the data sent from the simulator - - - Parcel Accesslist - + + Thread sync lock object - - Agents + + Raised when the simulator sends us data containing + ... - - + + The event subscribers, null of no subscribers - - Flags for specific entry in white/black lists + + Raises the FindObjectByPath Event + A FindObjectByPathEventArgs object containing + the data sent from the simulator - - - Owners of primitives on parcel - + + Thread sync lock object - - Prim Owners + + Raised when the simulator sends us data containing + ... - - True of owner is group + + The event subscribers, null of no subscribers - - Total count of prims owned by OwnerID + + Raises the TaskInventoryReply Event + A TaskInventoryReplyEventArgs object containing + the data sent from the simulator - - true of OwnerID is currently online and is not a group + + Thread sync lock object - - The date of the most recent prim left by OwnerID + + Raised when the simulator sends us data containing + ... - + - Called once parcel resource usage information has been collected + Reply received when uploading an inventory asset - Indicates if operation was successfull - Parcel resource usage information + Has upload been successful + Error message if upload failed + Inventory asset UUID + New asset UUID - - Contains a parcels dwell data returned from the simulator in response to an + + The event subscribers, null of no subscribers - + + Raises the SaveAssetToInventory Event + A SaveAssetToInventoryEventArgs object containing + the data sent from the simulator + + + Thread sync lock object + + + Raised when the simulator sends us data containing + ... + + - Construct a new instance of the ParcelDwellReplyEventArgs class + Delegate that is invoked when script upload is completed - The global ID of the parcel - The simulator specific ID of the parcel - The calculated dwell for the parcel + Has upload succeded (note, there still might be compile errors) + Upload status message + Is compilation successful + If compilation failed, list of error messages, null on compilation success + Script inventory UUID + Script's new asset UUID - - Get the global ID of the parcel + + The event subscribers, null of no subscribers - - Get the simulator specific ID of the parcel + + Raises the ScriptRunningReply Event + A ScriptRunningReplyEventArgs object containing + the data sent from the simulator - - Get the calculated dwell + + Thread sync lock object - - Contains basic parcel information data returned from the - simulator in response to an request + + Raised when the simulator sends us data containing + ... - + + Partial mapping of FolderTypes to folder names + + - Construct a new instance of the ParcelInfoReplyEventArgs class + Get this agents Inventory data - The object containing basic parcel info - - - Get the object containing basic parcel info - - - Contains basic parcel information data returned from the simulator in response to an request - + - Construct a new instance of the ParcelPropertiesEventArgs class + Default constructor - The object containing the details - The object containing the details - The result of the request - The number of primitieves your agent is - currently selecting and or sitting on in this parcel - The user assigned ID used to correlate a request with - these results - TODO: - - - Get the simulator the parcel is located in + Reference to the GridClient object - - Get the object containing the details - If Result is NoData, this object will not contain valid data + + + Fetch an inventory item from the dataserver + + The items + The item Owners + a integer representing the number of milliseconds to wait for results + An object on success, or null if no item was found + Items will also be sent to the event - - Get the result of the request + + + Request A single inventory item + + The items + The item Owners + - - Get the number of primitieves your agent is - currently selecting and or sitting on in this parcel + + + Request inventory items + + Inventory items to request + Owners of the inventory items + - - Get the user assigned ID used to correlate a request with - these results + + + Request inventory items via Capabilities + + Inventory items to request + Owners of the inventory items + - - TODO: + + + Get contents of a folder + + The of the folder to search + The of the folders owner + true to retrieve folders + true to retrieve items + sort order to return results in + a integer representing the number of milliseconds to wait for results + A list of inventory items matching search criteria within folder + + InventoryFolder.DescendentCount will only be accurate if both folders and items are + requested - - Contains blacklist and whitelist data returned from the simulator in response to an request + + + Request the contents of an inventory folder + + The folder to search + The folder owners + true to return s contained in folder + true to return s containd in folder + the sort order to return items in + - + - Construct a new instance of the ParcelAccessListReplyEventArgs class + Request the contents of an inventory folder using HTTP capabilities - The simulator the parcel is located in - The user assigned ID used to correlate a request with - these results - The simulator specific ID of the parcel - TODO: - The list containing the white/blacklisted agents for the parcel - - - Get the simulator the parcel is located in + The folder to search + The folder owners + true to return s contained in folder + true to return s containd in folder + the sort order to return items in + - - Get the user assigned ID used to correlate a request with - these results + + + Returns the UUID of the folder (category) that defaults to + containing 'type'. The folder is not necessarily only for that + type + + This will return the root folder if one does not exist + + The UUID of the desired folder if found, the UUID of the RootFolder + if not found, or UUID.Zero on failure - - Get the simulator specific ID of the parcel + + + Find an object in inventory using a specific path to search + + The folder to begin the search in + The object owners + A string path to search + milliseconds to wait for a reply + Found items or if + timeout occurs or item is not found - - TODO: + + + Find inventory items by path + + The folder to begin the search in + The object owners + A string path to search, folders/objects separated by a '/' + Results are sent to the event - - Get the list containing the white/blacklisted agents for the parcel + + + Search inventory Store object for an item or folder + + The folder to begin the search in + An array which creates a path to search + Number of levels below baseFolder to conduct searches + if True, will stop searching after first match is found + A list of inventory items found - - Contains blacklist and whitelist data returned from the - simulator in response to an request + + + Move an inventory item or folder to a new location + + The item or folder to move + The to move item or folder to - + - Construct a new instance of the ParcelObjectOwnersReplyEventArgs class + Move an inventory item or folder to a new location and change its name - The simulator the parcel is located in - The list containing prim ownership counts + The item or folder to move + The to move item or folder to + The name to change the item or folder to - - Get the simulator the parcel is located in + + + Move and rename a folder + + The source folders + The destination folders + The name to change the folder to - - Get the list containing prim ownership counts + + + Update folder properties + + of the folder to update + Sets folder's parent to + Folder name + Folder type - - Contains the data returned when all parcel data has been retrieved from a simulator + + + Move a folder + + The source folders + The destination folders - + - Construct a new instance of the SimParcelsDownloadedEventArgs class + Move multiple folders, the keys in the Dictionary parameter, + to a new parents, the value of that folder's key. - The simulator the parcel data was retrieved from - The dictionary containing the parcel data - The multidimensional array containing a x,y grid mapped - to each 64x64 parcel's LocalID. + A Dictionary containing the + of the source as the key, and the + of the destination as the value - - Get the simulator the parcel data was retrieved from + + + Move an inventory item to a new folder + + The of the source item to move + The of the destination folder - - A dictionary containing the parcel data where the key correlates to the ParcelMap entry + + + Move and rename an inventory item + + The of the source item to move + The of the destination folder + The name to change the folder to - - Get the multidimensional array containing a x,y grid mapped - to each 64x64 parcel's LocalID. + + + Move multiple inventory items to new locations + + A Dictionary containing the + of the source item as the key, and the + of the destination folder as the value - - Contains the data returned when a request + + + Remove descendants of a folder + + The of the folder - + - Construct a new instance of the ForceSelectObjectsReplyEventArgs class + Remove a single item from inventory - The simulator the parcel data was retrieved from - The list of primitive IDs - true if the list is clean and contains the information - only for a given request + The of the inventory item to remove - - Get the simulator the parcel data was retrieved from + + + Remove a folder from inventory + + The of the folder to remove - - Get the list of primitive IDs + + + Remove multiple items or folders from inventory + + A List containing the s of items to remove + A List containing the s of the folders to remove - - true if the list is clean and contains the information - only for a given request + + + Empty the Lost and Found folder + - - Contains data when the media data for a parcel the avatar is on changes + + + Empty the Trash folder + - + - Construct a new instance of the ParcelMediaUpdateReplyEventArgs class + - the simulator the parcel media data was updated in - The updated media information + + + + + Proper use is to upload the inventory's asset first, then provide the Asset's TransactionID here. + + + - - Get the simulator the parcel media data was updated in + + + + + + + + + Proper use is to upload the inventory's asset first, then provide the Asset's TransactionID here. + + + + - - Get the updated media information + + + Creates a new inventory folder + + ID of the folder to put this folder in + Name of the folder to create + The UUID of the newly created folder - - Contains the media command for a parcel the agent is currently on + + + Creates a new inventory folder + + ID of the folder to put this folder in + Name of the folder to create + Sets this folder as the default folder + for new assets of the specified type. Use FolderType.None + to create a normal folder, otherwise it will likely create a + duplicate of an existing folder type + The UUID of the newly created folder + If you specify a preferred type of AsseType.Folder + it will create a new root folder which may likely cause all sorts + of strange problems - + - Construct a new instance of the ParcelMediaCommandEventArgs class + Create an inventory item and upload asset data - The simulator the parcel media command was issued in - - - The media command that was sent - + Asset data + Inventory item name + Inventory item description + Asset type + Inventory type + Put newly created inventory in this folder + Delegate that will receive feedback on success or failure - - Get the simulator the parcel media command was issued in + + + Create an inventory item and upload asset data + + Asset data + Inventory item name + Inventory item description + Asset type + Inventory type + Put newly created inventory in this folder + Permission of the newly created item + (EveryoneMask, GroupMask, and NextOwnerMask of Permissions struct are supported) + Delegate that will receive feedback on success or failure - - + + + Creates inventory link to another inventory item or folder + + Put newly created link in folder with this UUID + Inventory item or folder + Method to call upon creation of the link - - + + + Creates inventory link to another inventory item + + Put newly created link in folder with this UUID + Original inventory item + Method to call upon creation of the link - - Get the media command that was sent + + + Creates inventory link to another inventory folder + + Put newly created link in folder with this UUID + Original inventory folder + Method to call upon creation of the link - - + + + Creates inventory link to another inventory item or folder + + Put newly created link in folder with this UUID + Original item's UUID + Name + Description + Asset Type + Inventory Type + Transaction UUID + Method to call upon creation of the link - + + + + + - + + + + + + - - - - - - - - - - - - - - + + + + + + + + + - - + + + Request a copy of an asset embedded within a notecard + + Usually UUID.Zero for copying an asset from a notecard + UUID of the notecard to request an asset from + Target folder for asset to go to in your inventory + UUID of the embedded asset + callback to run when item is copied to inventory - + + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - + + + + + + + - - + + + Save changes to notecard embedded in object contents + + Encoded notecard asset data + Notecard UUID + Object's UUID + Called upon finish of the upload with status information - - + + + Upload new gesture asset for an inventory gesture item + + Encoded gesture asset + Gesture inventory UUID + Callback whick will be called when upload is complete - - + + + Update an existing script in an agents Inventory + + A byte[] array containing the encoded scripts contents + the itemID of the script + if true, sets the script content to run on the mono interpreter + - - + + + Update an existing script in an task Inventory + + A byte[] array containing the encoded scripts contents + the itemID of the script + UUID of the prim containting the script + if true, sets the script content to run on the mono interpreter + if true, sets the script to running + - - + + + Rez an object from inventory + + Simulator to place object in + Rotation of the object when rezzed + Vector of where to place object + InventoryItem object containing item details - - + + + Rez an object from inventory + + Simulator to place object in + Rotation of the object when rezzed + Vector of where to place object + InventoryItem object containing item details + UUID of group to own the object - - + + + Rez an object from inventory + + Simulator to place object in + Rotation of the object when rezzed + Vector of where to place object + InventoryItem object containing item details + UUID of group to own the object + User defined queryID to correlate replies + If set to true, the CreateSelected flag + will be set on the rezzed object - - + + + Rez an object from inventory + + Simulator to place object in + TaskID object when rezzed + Rotation of the object when rezzed + Vector of where to place object + InventoryItem object containing item details + UUID of group to own the object + User defined queryID to correlate replies + If set to true, the CreateSelected flag + will be set on the rezzed object - - + + + DeRez an object from the simulator to the agents Objects folder in the agents Inventory + + The simulator Local ID of the object + If objectLocalID is a child primitive in a linkset, the entire linkset will be derezzed - + - + DeRez an object from the simulator and return to inventory + The simulator Local ID of the object + The type of destination from the enum + The destination inventory folders -or- + if DeRezzing object to a tasks Inventory, the Tasks + The transaction ID for this request which + can be used to correlate this request with other packets + If objectLocalID is a child primitive in a linkset, the entire linkset will be derezzed - - - - - - - - - - - - - + - + Rez an item from inventory to its previous simulator location - + + + - + - + Give an inventory item to another avatar + The of the item to give + The name of the item + The type of the item from the enum + The of the recipient + true to generate a beameffect during transfer - - - - - - - - - - - + + + Give an inventory Folder with contents to another avatar + + The of the Folder to give + The name of the folder + The type of the item from the enum + The of the recipient + true to generate a beameffect during transfer - + - + Copy or move an from agent inventory to a task (primitive) inventory - + The target object + The item to copy or move from inventory + For items with copy permissions a copy of the item is placed in the tasks inventory, + for no-copy items the object is moved to the tasks inventory - + - + Retrieve a listing of the items contained in a task (Primitive) + The tasks + The tasks simulator local ID + milliseconds to wait for reply from simulator + A list containing the inventory items inside the task or null + if a timeout occurs + This request blocks until the response from the simulator arrives + or timeoutMS is exceeded - - - - - - - - - - - - - - - - - - - + - + Request the contents of a tasks (primitives) inventory from the + current simulator + The LocalID of the object + - - - - - - - - - - - - - - - - + - + Request the contents of a tasks (primitives) inventory - - + The simulator Local ID of the object + A reference to the simulator object that contains the object + - + - + Move an item from a tasks (Primitive) inventory to the specified folder in the avatars inventory - - + LocalID of the object in the simulator + UUID of the task item to move + The ID of the destination folder in this agents inventory + Simulator Object + Raises the event - + - + Remove an item from an objects (Prim) Inventory - - + LocalID of the object in the simulator + UUID of the task item to remove + Simulator Object + You can confirm the removal by comparing the tasks inventory serial before and after the + request with the request combined with + the event - - + + + Copy an InventoryScript item from the Agents Inventory into a primitives task inventory + + An unsigned integer representing a primitive being simulated + An which represents a script object from the agents inventory + true to set the scripts running state to enabled + A Unique Transaction ID + + The following example shows the basic steps necessary to copy a script from the agents inventory into a tasks inventory + and assumes the script exists in the agents inventory. + + uint primID = 95899503; // Fake prim ID + UUID scriptID = UUID.Parse("92a7fe8a-e949-dd39-a8d8-1681d8673232"); // Fake Script UUID in Inventory - - - - + Client.Inventory.FolderContents(Client.Inventory.FindFolderForType(AssetType.LSLText), Client.Self.AgentID, + false, true, InventorySortOrder.ByName, 10000); + + Client.Inventory.RezScript(primID, (InventoryItem)Client.Inventory.Store[scriptID]); + + - + - + Request the running status of a script contained in a task (primitive) inventory + The ID of the primitive containing the script + The ID of the script + The event can be used to obtain the results of the + request + - + - + Send a request to set the running state of a script contained in a task (primitive) inventory - - + The ID of the primitive containing the script + The ID of the script + true to set the script running, false to stop a running script + To verify the change you can use the method combined + with the event - + - + Create a CRC from an InventoryItem - - + The source InventoryItem + A uint representing the source InventoryItem as a CRC - + - + Reverses a cheesy XORing with a fixed UUID to convert a shadow_id to an asset_id - + Obfuscated shadow_id value + Deobfuscated asset_id value - + - Class for controlling various system settings. + Does a cheesy XORing with a fixed UUID to convert an asset_id to a shadow_id - Some values are readonly because they affect things that - happen when the GridClient object is initialized, so changing them at - runtime won't do any good. Non-readonly values may affect things that - happen at login or dynamically - - - Main grid login server - - - Beta grid login server + asset_id value to obfuscate + Obfuscated shadow_id value - + - InventoryManager requests inventory information on login, - GridClient initializes an Inventory store for main inventory. + Wrapper for creating a new object + The type of item from the enum + The of the newly created object + An object with the type and id passed - + - InventoryManager requests library information on login, - GridClient initializes an Inventory store for the library. + Parse the results of a RequestTaskInventory() response + A string which contains the data from the task reply + A List containing the items contained within the tasks inventory - - Number of milliseconds between sending pings to each sim - - - Number of milliseconds between sending camera updates - - - Number of milliseconds between updating the current - positions of moving, non-accelerating and non-colliding objects - - - Millisecond interval between ticks, where all ACKs are - sent out and the age of unACKed packets is checked - - - The initial size of the packet inbox, where packets are - stored before processing - - - Maximum size of packet that we want to send over the wire - - - The maximum value of a packet sequence number before it - rolls over back to one - - - The relative directory where external resources are kept - - - Login server to connect to - - - IP Address the client will bind to + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Use XML-RPC Login or LLSD Login, default is XML-RPC Login + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - + - Maximum number of HTTP connections to open to a particular endpoint. + UpdateCreateInventoryItem packets are received when a new inventory item + is created. This may occur when an object that's rezzed in world is + taken into inventory, when an item is created using the CreateInventoryItem + packet, or when an object is purchased - - An endpoint is defined as a commbination of network address and port. This is used for Caps. - This is a static variable which applies to all instances. - + The sender + The EventArgs object containing the packet data - - - Use Caps for fetching inventory where available - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Number of milliseconds before an asset transfer will time - out + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Number of milliseconds before a teleport attempt will time - out + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Number of milliseconds before NetworkManager.Logout() will - time out + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Number of milliseconds before a CAPS call will time out - Setting this too low will cause web requests time out and - possibly retry repeatedly + + Set to true to accept offer, false to decline it - - Number of milliseconds for xml-rpc to timeout + + The folder to accept the inventory into, if null default folder for will be used - - Milliseconds before a packet is assumed lost and resent + + + Callback when an inventory object is accepted and received from a + task inventory. This is the callback in which you actually get + the ItemID, as in ObjectOfferedCallback it is null when received + from a task. + - - Milliseconds without receiving a packet before the - connection to a simulator is assumed lost + + - - Milliseconds to wait for a simulator info request through - the grid interface + + User data - - The maximum size of the sequence number archive, used to - check for resent and/or duplicate packets + + - - Maximum number of queued ACKs to be sent before SendAcks() - is forced + + - - Network stats queue length (seconds) + + - + - Primitives will be reused when falling in/out of interest list (and shared between clients) - prims returning to interest list do not need re-requested - Helps also in not re-requesting prim.Properties for code that checks for a Properties == null per client + For inventory folder nodes specifies weather the folder needs to be + refreshed from the server - + - Pool parcel data between clients (saves on requesting multiple times when all clients may need it) + - + - How long to preserve cached data when no client is connected to a simulator - The reason for setting it to something like 2 minutes is in case a client - is running back and forth between region edges or a sim is comming and going + + - - Enable/disable storing terrain heightmaps in the - TerrainManager - - - Enable/disable sending periodic camera updates - - - Enable/disable automatically setting agent appearance at - login and after sim crossing - - - Enable/disable automatically setting the bandwidth throttle - after connecting to each simulator - The default throttle uses the equivalent of the maximum - bandwidth setting in the official client. If you do not set a - throttle your connection will by default be throttled well below - the minimum values and you may experience connection problems - - - Enable/disable the sending of pings to monitor lag and - packet loss + + + De-serialization constructor for the InventoryNode Class + - - Should we connect to multiple sims? This will allow - viewing in to neighboring simulators and sim crossings - (Experimental) + + + Serialization handler for the InventoryNode Class + - - If true, all object update packets will be decoded in to - native objects. If false, only updates for our own agent will be - decoded. Registering an event handler will force objects for that - type to always be decoded. If this is disabled the object tracking - will have missing or partial prim and avatar information + + + De-serialization handler for the InventoryNode Class + - - If true, when a cached object check is received from the - server the full object info will automatically be requested + + + + + - - Whether to establish connections to HTTP capabilities - servers for simulators + + + Singleton logging class for the entire library + - - Whether to decode sim stats + + + Callback used for client apps to receive log messages from + the library + + Data being logged + The severity of the log entry from - - The capabilities servers are currently designed to - periodically return a 502 error which signals for the client to - re-establish a connection. Set this to true to log those 502 errors + + Triggered whenever a message is logged. If this is left + null, log messages will go to the console - - If true, any reference received for a folder or item - the library is not aware of will automatically be fetched + + log4net logging engine - - If true, and SEND_AGENT_UPDATES is true, - AgentUpdate packets will continuously be sent out to give the bot - smoother movement and autopiloting + + + Default constructor + - - If true, currently visible avatars will be stored - in dictionaries inside Simulator.ObjectAvatars. - If false, a new Avatar or Primitive object will be created - each time an object update packet is received + + + Send a log message to the logging engine + + The log message + The severity of the log entry - - If true, currently visible avatars will be stored - in dictionaries inside Simulator.ObjectPrimitives. - If false, a new Avatar or Primitive object will be created - each time an object update packet is received + + + Send a log message to the logging engine + + The log message + The severity of the log entry + Instance of the client - - If true, position and velocity will periodically be - interpolated (extrapolated, technically) for objects and - avatars that are being tracked by the library. This is - necessary to increase the accuracy of speed and position - estimates for simulated objects + + + Send a log message to the logging engine + + The log message + The severity of the log entry + Exception that was raised - + - If true, utilization statistics will be tracked. There is a minor penalty - in CPU time for enabling this option. + Send a log message to the logging engine + The log message + The severity of the log entry + Instance of the client + Exception that was raised - - If true, parcel details will be stored in the - Simulator.Parcels dictionary as they are received - - + - If true, an incoming parcel properties reply will automatically send - a request for the parcel access list + If the library is compiled with DEBUG defined, an event will be + fired if an OnLogMessage handler is registered and the + message will be sent to the logging engine + The message to log at the DEBUG level to the + current logging engine - + - if true, an incoming parcel properties reply will automatically send - a request for the traffic count. + If the library is compiled with DEBUG defined and + GridClient.Settings.DEBUG is true, an event will be + fired if an OnLogMessage handler is registered and the + message will be sent to the logging engine + The message to log at the DEBUG level to the + current logging engine + Instance of the client - + - If true, images, and other assets downloaded from the server - will be cached in a local directory + - - Path to store cached texture data + + - - Maximum size cached files are allowed to take on disk (bytes) + + - - Default color used for viewer particle effects + + - - Maximum number of times to resend a failed packet + + - - Throttle outgoing packet rate + + - - UUID of a texture used by some viewers to indentify type of client used + + - + + + + - Download textures using GetTexture capability when available + Status of the last application run. + Used for error reporting to the grid login service for statistical purposes. - - The maximum number of concurrent texture downloads allowed - Increasing this number will not necessarily increase texture retrieval times due to - simulator throttles + + Application exited normally - - - The Refresh timer inteval is used to set the delay between checks for stalled texture downloads - - This is a static variable which applies to all instances + + Application froze - - - Textures taking longer than this value will be flagged as timed out and removed from the pipeline - + + Application detected error and exited abnormally - + + Other crash + + + Application froze during logout + + + Application crashed during logout + + - Get or set the minimum log level to output to the console by default - - If the library is not compiled with DEBUG defined and this level is set to DEBUG - You will get no output on the console. This behavior can be overriden by creating - a logger configuration file for log4net + Login Request Parameters - - Attach avatar names to log messages + + The URL of the Login Server - - Log packet retransmission info + + The number of milliseconds to wait before a login is considered + failed due to timeout - - Log disk cache misses and other info + + The request method + login_to_simulator is currently the only supported method - - Constructor - Reference to a GridClient object + + The Agents First name - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + The Agents Last name - - Cost of uploading an asset - Read-only since this value is dynamically fetched at login + + A md5 hashed password + plaintext password will be automatically hashed - - - Simulator (region) properties - + + The agents starting location once logged in + Either "last", "home", or a string encoded URI + containing the simulator name and x/y/z coordinates e.g: uri:hooper&128&152&17 - - No flags set + + A string containing the client software channel information + Second Life Release - - Agents can take damage and be killed + + The client software version information + The official viewer uses: Second Life Release n.n.n.n + where n is replaced with the current version of the viewer - - Landmarks can be created here + + A string containing the platform information the agent is running on - - Home position can be set in this sim + + A string containing version number for OS the agent is running on - - Home position is reset when an agent teleports away + + A string hash of the network cards Mac Address - - Sun does not move + + Unknown or deprecated - - No object, land, etc. taxes + + A string hash of the first disk drives ID used to identify this clients uniqueness - - Disable heightmap alterations (agents can still plant - foliage) + + A string containing the viewers Software, this is not directly sent to the login server but + instead is used to generate the Version string - - Land cannot be released, sold, or purchased + + A string representing the software creator. This is not directly sent to the login server but + is used by the library to generate the Version information - - All content is wiped nightly + + If true, this agent agrees to the Terms of Service of the grid its connecting to - - Unknown: Related to the availability of an overview world map tile.(Think mainland images when zoomed out.) + + Unknown - - Unknown: Related to region debug flags. Possibly to skip processing of agent interaction with world. + + Status of the last application run sent to the grid login server for statistical purposes - - Region does not update agent prim interest lists. Internal debugging option. + + An array of string sent to the login server to enable various options - - No collision detection for non-agent objects + + A randomly generated ID to distinguish between login attempts. This value is only used + internally in the library and is never sent over the wire - - No scripts are ran + + + Default constuctor, initializes sane default values + - - All physics processing is turned off + + + Instantiates new LoginParams object and fills in the values + + Instance of GridClient to read settings from + Login first name + Login last name + Password + Login channnel (application name) + Client version, should be application name + version number - - Region can be seen from other regions on world map. (Legacy world map option?) + + + Instantiates new LoginParams object and fills in the values + + Instance of GridClient to read settings from + Login first name + Login last name + Password + Login channnel (application name) + Client version, should be application name + version number + URI of the login server - - Region can be seen from mainland on world map. (Legacy world map option?) + + + The decoded data returned from the login server after a successful login + - - Agents not explicitly on the access list can visit the region. + + true, false, indeterminate - - Traffic calculations are not run across entire region, overrides parcel settings. + + Login message of the day - - Flight is disabled (not currently enforced by the sim) + + M or PG, also agent_region_access and agent_access_max - - Allow direct (p2p) teleporting + + + Parse LLSD Login Reply Data + + An + contaning the login response data + XML-RPC logins do not require this as XML-RPC.NET + automatically populates the struct properly using attributes - - Estate owner has temporarily disabled scripting + + + Login Routines + + + NetworkManager is responsible for managing the network layer of + OpenMetaverse. It tracks all the server connections, serializes + outgoing traffic and deserializes incoming traffic, and provides + instances of delegates for network-related events. + - - Restricts the usage of the LSL llPushObject function, applies to whole region. + + The event subscribers, null of no subscribers - - Deny agents with no payment info on file + + Raises the LoginProgress Event + A LoginProgressEventArgs object containing + the data sent from the simulator - - Deny agents with payment info on file + + Thread sync lock object - - Deny agents who have made a monetary transaction + + Raised when the simulator sends us data containing + ... - - Parcels within the region may be joined or divided by anyone, not just estate owners/managers. + + + + + + + + + - - Abuse reports sent from within this region are sent to the estate owner defined email. + + Called when a reply is received from the login server, the + login sequence will block until this event returns - - Region is Voice Enabled + + Seed CAPS URL returned from the login server - - Removes the ability from parcel owners to set their parcels to show in search. + + Current state of logging in - - Deny agents who have not been age verified from entering the region. + + Upon login failure, contains a short string key for the + type of login error that occurred - - - Region protocol flags - + + The raw XML-RPC reply from the login server, exactly as it + was received (minus the HTTP header) - - Nothing special + + During login this contains a descriptive version of + LoginStatusCode. After a successful login this will contain the + message of the day, and after a failed login a descriptive error + message will be returned - - Region supports Server side Appearance + + Maximum number of groups an agent can belong to, -1 for unlimited - - Viewer supports Server side Appearance + + Server side baking service URL - - - Access level for a simulator - + + Parsed login response data - - Unknown or invalid access level + + A list of packets obtained during the login process which + networkmanager will log but not process - - Trial accounts allowed + + + Generate sane default values for a login request + + Account first name + Account last name + Account password + Client application name (channel) + Client application name + version + A populated struct containing + sane defaults - - PG rating + + + Simplified login that takes the most common and required fields + + Account first name + Account last name + Account password + Client application name (channel) + Client application name + version + Whether the login was successful or not. On failure the + LoginErrorKey string will contain the error code and LoginMessage + will contain a description of the error - - Mature rating + + + Simplified login that takes the most common fields along with a + starting location URI, and can accept an MD5 string instead of a + plaintext password + + Account first name + Account last name + Account password or MD5 hash of the password + such as $1$1682a1e45e9f957dcdf0bb56eb43319c + Client application name (channel) + Starting location URI that can be built with + StartLocation() + Client application name + version + Whether the login was successful or not. On failure the + LoginErrorKey string will contain the error code and LoginMessage + will contain a description of the error - - Adult rating + + + Login that takes a struct of all the values that will be passed to + the login server + + The values that will be passed to the login + server, all fields must be set even if they are String.Empty + Whether the login was successful or not. On failure the + LoginErrorKey string will contain the error code and LoginMessage + will contain a description of the error - - Simulator is offline + + + Build a start location URI for passing to the Login function + + Name of the simulator to start in + X coordinate to start at + Y coordinate to start at + Z coordinate to start at + String with a URI that can be used to login to a specified + location - - Simulator does not exist + + + LoginParams and the initial login XmlRpcRequest were made on a remote machine. + This method now initializes libomv with the results. + - + - + Handles response from XML-RPC login replies - + - + Handles response from XML-RPC login replies with already parsed LoginResponseData - + - Initialize the UDP packet handler in server mode + Handle response from LLSD login replies - Port to listening for incoming UDP packets on + + + - + - Initialize the UDP packet handler in client mode + Get current OS - Remote UDP server to connect to + Either "Win" or "Linux" - + - + Gets the current OS version number + The platform version. - + - + Get clients default Mac Address + A string containing the first found Mac Address - + - + Explains why a simulator or the grid disconnected from us - - A public reference to the client that this Simulator object - is attached to + + The client requested the logout or simulator disconnect - - A Unique Cache identifier for this simulator + + The server notified us that it is disconnecting - - The capabilities for this simulator + + Either a socket was closed or network traffic timed out - - + + The last active simulator shut down - - The current version of software this simulator is running + + + Holds a simulator reference and a decoded packet, these structs are put in + the packet inbox for event handling + - - + + Reference to the simulator that this packet came from + + + Packet that needs to be processed + + + + Holds a simulator reference and a serialized packet, these structs are put in + the packet outbox for sending + + + + Reference to the simulator this packet is destined for + + + Packet that needs to be sent - - A 64x64 grid of parcel coloring values. The values stored - in this array are of the type + + Sequence number of the wrapped packet - - + + Number of times this packet has been resent - - + + Environment.TickCount when this packet was last sent over the wire - - + + Type of the packet - - + + The event subscribers, null of no subscribers - - + + Raises the PacketSent Event + A PacketSentEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + Raised when the simulator sends us data containing + ... - - + + The event subscribers, null of no subscribers - - + + Raises the LoggedOut Event + A LoggedOutEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + Raised when the simulator sends us data containing + ... - - + + The event subscribers, null of no subscribers - - + + Raises the SimConnecting Event + A SimConnectingEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + Raised when the simulator sends us data containing + ... - - + + The event subscribers, null of no subscribers - - + + Raises the SimConnected Event + A SimConnectedEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + Raised when the simulator sends us data containing + ... - - true if your agent has Estate Manager rights on this region + + The event subscribers, null of no subscribers - - + + Raises the SimDisconnected Event + A SimDisconnectedEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + Raised when the simulator sends us data containing + ... - - Statistics information for this simulator and the - connection to the simulator, calculated by the simulator itself - and the library + + The event subscribers, null of no subscribers - - The regions Unique ID + + Raises the Disconnected Event + A DisconnectedEventArgs object containing + the data sent from the simulator - - The physical data center the simulator is located - Known values are: - - Dallas - Chandler - SF - - + + Thread sync lock object - - The CPU Class of the simulator - Most full mainland/estate sims appear to be 5, - Homesteads and Openspace appear to be 501 + + Raised when the simulator sends us data containing + ... - - The number of regions sharing the same CPU as this one - "Full Sims" appear to be 1, Homesteads appear to be 4 + + The event subscribers, null of no subscribers - - The billing product name - Known values are: - - Mainland / Full Region (Sku: 023) - Estate / Full Region (Sku: 024) - Estate / Openspace (Sku: 027) - Estate / Homestead (Sku: 029) - Mainland / Homestead (Sku: 129) (Linden Owned) - Mainland / Linden Homes (Sku: 131) - - + + Raises the SimChanged Event + A SimChangedEventArgs object containing + the data sent from the simulator - - The billing product SKU - Known values are: - - 023 Mainland / Full Region - 024 Estate / Full Region - 027 Estate / Openspace - 029 Estate / Homestead - 129 Mainland / Homestead (Linden Owned) - 131 Linden Homes / Full Region - - + + Thread sync lock object - - - Flags indicating which protocols this region supports - + + Raised when the simulator sends us data containing + ... - - The current sequence number for packets sent to this - simulator. Must be Interlocked before modifying. Only - useful for applications manipulating sequence numbers + + The event subscribers, null of no subscribers - - - A thread-safe dictionary containing avatars in a simulator - + + Raises the EventQueueRunning Event + A EventQueueRunningEventArgs object containing + the data sent from the simulator - - - A thread-safe dictionary containing primitives in a simulator - + + Thread sync lock object - - - Checks simulator parcel map to make sure it has downloaded all data successfully - - true if map is full (contains no 0's) + + Raised when the simulator sends us data containing + ... - - - Is it safe to send agent updates to this sim - AgentMovementComplete message received - + + Unique identifier associated with our connections to + simulators - - Used internally to track sim disconnections + + The simulator that the logged in avatar is currently + occupying - - Event that is triggered when the simulator successfully - establishes a connection + + Shows whether the network layer is logged in to the + grid or not - - Whether this sim is currently connected or not. Hooked up - to the property Connected + + Number of packets in the incoming queue - - Coarse locations of avatars in this simulator + + Number of packets in the outgoing queue - - AvatarPositions key representing TrackAgent target + + All of the simulators we are currently connected to - - Sequence numbers of packets we've received - (for duplicate checking) + + Handlers for incoming capability events - - Packets we sent out that need ACKs from the simulator + + Handlers for incoming packets - - Sequence number for pause/resume + + Incoming packets that are awaiting handling - - Indicates if UDP connection to the sim is fully established + + Outgoing packets that are awaiting handling - + - + Default constructor Reference to the GridClient object - IPEndPoint of the simulator - handle of the simulator - + - Called when this Simulator object is being destroyed + Register an event handler for a packet. This is a low level event + interface and should only be used if you are doing something not + supported in the library + Packet type to trigger events for + Callback to fire when a packet of this type + is received - + - Attempt to connect to this simulator + Register an event handler for a packet. This is a low level event + interface and should only be used if you are doing something not + supported in the library - Whether to move our agent in to this sim or not - True if the connection succeeded or connection status is - unknown, false if there was a failure + Packet type to trigger events for + Callback to fire when a packet of this type + is received + True if the callback should be ran + asynchronously. Only set this to false (synchronous for callbacks + that will always complete quickly) + If any callback for a packet type is marked as + asynchronous, all callbacks for that packet type will be fired + asynchronously - + - Initiates connection to the simulator + Unregister an event handler for a packet. This is a low level event + interface and should only be used if you are doing something not + supported in the library - Should we block until ack for this packet is recieved + Packet type this callback is registered with + Callback to stop firing events for - + - Disconnect from this simulator + Register a CAPS event handler. This is a low level event interface + and should only be used if you are doing something not supported in + the library + Name of the CAPS event to register a handler for + Callback to fire when a CAPS event is received - + - Instructs the simulator to stop sending update (and possibly other) packets + Unregister a CAPS event handler. This is a low level event interface + and should only be used if you are doing something not supported in + the library + Name of the CAPS event this callback is + registered with + Callback to stop firing events for - + - Instructs the simulator to resume sending update packets (unpause) + Send a packet to the simulator the avatar is currently occupying + Packet to send - + - Retrieve the terrain height at a given coordinate + Send a packet to a specified simulator - Sim X coordinate, valid range is from 0 to 255 - Sim Y coordinate, valid range is from 0 to 255 - The terrain height at the given point if the - lookup was successful, otherwise 0.0f - True if the lookup was successful, otherwise false + Packet to send + Simulator to send the packet to - + - Sends a packet + Connect to a simulator - Packet to be sent + IP address to connect to + Port to connect to + Handle for this simulator, to identify its + location in the grid + Whether to set CurrentSim to this new + connection, use this if the avatar is moving in to this simulator + URL of the capabilities server to use for + this sim connection + A Simulator object on success, otherwise null - + - + Connect to a simulator + IP address and port to connect to + Handle for this simulator, to identify its + location in the grid + Whether to set CurrentSim to this new + connection, use this if the avatar is moving in to this simulator + URL of the capabilities server to use for + this sim connection + A Simulator object on success, otherwise null - + - Returns Simulator Name as a String + Begins the non-blocking logout. Makes sure that the LoggedOut event is + called even if the server does not send a logout reply, and Shutdown() + is properly called. - - + - + Initiate a blocking logout request. This will return when the logout + handshake has completed or when Settings.LOGOUT_TIMEOUT + has expired and the network layer is manually shut down - - + - + Initiate the logout process. The Shutdown() function + needs to be manually called. - - - + - Sends out pending acknowledgements + Close a connection to the given simulator - Number of ACKs sent + + - + - Resend unacknowledged packets + Shutdown will disconnect all the sims except for the current sim + first, and then kill the connection to CurrentSim. This should only + be called if the logout process times out on RequestLogout + Type of shutdown - + - Provides access to an internal thread-safe dictionary containing parcel - information found in this simulator + Shutdown will disconnect all the sims except for the current sim + first, and then kill the connection to CurrentSim. This should only + be called if the logout process times out on RequestLogout + Type of shutdown + Shutdown message - + - Provides access to an internal thread-safe multidimensional array containing a x,y grid mapped - to each 64x64 parcel's LocalID. + Searches through the list of currently connected simulators to find + one attached to the given IPEndPoint + IPEndPoint of the Simulator to search for + A Simulator reference on success, otherwise null - - The IP address and port of the server - - - Whether there is a working connection to the simulator or - not - - - Coarse locations of avatars in this simulator - - - AvatarPositions key representing TrackAgent target - - - Indicates if UDP connection to the sim is fully established - - + - Simulator Statistics + Fire an event when an event queue connects for capabilities + Simulator the event queue is attached to - - Total number of packets sent by this simulator to this agent - - - Total number of packets received by this simulator to this agent - - - Total number of bytes sent by this simulator to this agent - - - Total number of bytes received by this simulator to this agent + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Time in seconds agent has been connected to simulator + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Total number of packets that have been resent + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Total number of resent packets recieved + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Total number of pings sent to this simulator by this agent + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - Total number of ping replies sent to this agent by this simulator + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - - Incoming bytes per second - - It would be nice to have this claculated on the fly, but - this is far, far easier + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - + - Outgoing bytes per second + A Name Value pair with additional settings, used in the protocol + primarily to transmit avatar names and active group in object packets - It would be nice to have this claculated on the fly, but - this is far, far easier - - - Time last ping was sent - - ID of last Ping sent - - - - - - - - - Current time dilation of this simulator + + Type of the value - - Current Frames per second of simulator + + Unknown - - Current Physics frames per second of simulator + + String value - + - + - + - + - - + + Deprecated - - + + String value, but designated as an asset - + - - + + + + - - Total number of objects Simulator is simulating + + - - Total number of Active (Scripted) objects running + + - - Number of agents currently in this simulator + + - - Number of agents in neighbor simulators + + - - Number of Active scripts running in this simulator + + + + - + - + - + - - Number of downloads pending - - - Number of uploads pending - - + - + - - Number of local uploads pending + + - - Unacknowledged bytes in queue + + - - - Simulator handle - + + - - - Number of GridClients using this datapool - + + - - - Time that the last client disconnected from the simulator - + + - + - The cache of prims used and unused in this simulator + Constructor that takes all the fields as parameters + + + + + - + - Shared parcel info only when POOL_PARCEL_DATA == true + Constructor that takes a single line from a NameValue field + - + - - The event subscribers, null of no subscribers - - - Raises the AttachedSound Event - A AttachedSoundEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the AttachedSoundGainChange Event - A AttachedSoundGainChangeEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the SoundTrigger Event - A SoundTriggerEventArgs object containing - the data sent from the simulator - - - Thread sync lock object - - - The event subscribers, null of no subscribers - - - Raises the PreloadSound Event - A PreloadSoundEventArgs object containing - the data sent from the simulator - - - Thread sync lock object + + No report - - - Construct a new instance of the SoundManager class, used for playing and receiving - sound assets - - A reference to the current GridClient instance + + Unknown report type - - - Plays a sound in the current region at full volume from avatar position - - UUID of the sound to be played + + Bug report - - - Plays a sound in the current region at full volume - - UUID of the sound to be played. - position for the sound to be played at. Normally the avatar. + + Complaint report - - - Plays a sound in the current region - - UUID of the sound to be played. - position for the sound to be played at. Normally the avatar. - volume of the sound, from 0.0 to 1.0 + + Customer service report - + - Plays a sound in the specified sim + Bitflag field for ObjectUpdateCompressed data blocks, describing + which options are present for each object - UUID of the sound to be played. - UUID of the sound to be played. - position for the sound to be played at. Normally the avatar. - volume of the sound, from 0.0 to 1.0 - - - Play a sound asset - - UUID of the sound to be played. - handle id for the sim to be played in. - position for the sound to be played at. Normally the avatar. - volume of the sound, from 0.0 to 1.0 + + Unknown - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Whether the object has a TreeSpecies - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Whether the object has floating text ala llSetText - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Whether the object has an active particle system - - Process an incoming packet and raise the appropriate events - The sender - The EventArgs object containing the packet data + + Whether the object has sound attached to it - - Raised when the simulator sends us data containing - sound + + Whether the object is attached to a root object or not - - Raised when the simulator sends us data containing - ... + + Whether the object has texture animation settings - - Raised when the simulator sends us data containing - ... + + Whether the object has an angular velocity - - Raised when the simulator sends us data containing - ... + + Whether the object has a name value pairs string - - Provides data for the event - The event occurs when the simulator sends - the sound data which emits from an agents attachment - - The following code example shows the process to subscribe to the event - and a stub to handle the data passed from the simulator - - // Subscribe to the AttachedSound event - Client.Sound.AttachedSound += Sound_AttachedSound; - - // process the data raised in the event here - private void Sound_AttachedSound(object sender, AttachedSoundEventArgs e) - { - // ... Process AttachedSoundEventArgs here ... - } - - + + Whether the object has a Media URL set - + - Construct a new instance of the SoundTriggerEventArgs class + Specific Flags for MultipleObjectUpdate requests - Simulator where the event originated - The sound asset id - The ID of the owner - The ID of the object - The volume level - The - - - Simulator where the event originated - - Get the sound asset id + + None - - Get the ID of the owner + + Change position of prims - - Get the ID of the Object + + Change rotation of prims - - Get the volume level + + Change size of prims - - Get the + + Perform operation on link set - - Provides data for the event - The event occurs when an attached sound - changes its volume level + + Scale prims uniformly, same as selecing ctrl+shift in the + viewer. Used in conjunction with Scale - + - Construct a new instance of the AttachedSoundGainChangedEventArgs class + Special values in PayPriceReply. If the price is not one of these + literal value of the price should be use - Simulator where the event originated - The ID of the Object - The new volume level - - - Simulator where the event originated - - Get the ID of the Object - - - Get the volume level - - - Provides data for the event - The event occurs when the simulator forwards - a request made by yourself or another agent to play either an asset sound or a built in sound - - Requests to play sounds where the is not one of the built-in - will require sending a request to download the sound asset before it can be played - - - The following code example uses the , - and - properties to display some information on a sound request on the window. - - // subscribe to the event - Client.Sound.SoundTrigger += Sound_SoundTrigger; - - // play the pre-defined BELL_TING sound - Client.Sound.SendSoundTrigger(Sounds.BELL_TING); - - // handle the response data - private void Sound_SoundTrigger(object sender, SoundTriggerEventArgs e) - { - Console.WriteLine("{0} played the sound {1} at volume {2}", - e.OwnerID, e.SoundID, e.Gain); - } - - - - + - Construct a new instance of the SoundTriggerEventArgs class + Indicates that this pay option should be hidden - Simulator where the event originated - The sound asset id - The ID of the owner - The ID of the object - The ID of the objects parent - The volume level - The regionhandle - The source position - - - Simulator where the event originated - - - Get the sound asset id - - - Get the ID of the owner - - - Get the ID of the Object - - - Get the ID of the objects parent - - - Get the volume level - - Get the regionhandle - - - Get the source position - - - Provides data for the event - The event occurs when the simulator sends - the appearance data for an avatar - - The following code example uses the and - properties to display the selected shape of an avatar on the window. - - // subscribe to the event - Client.Avatars.AvatarAppearance += Avatars_AvatarAppearance; - - // handle the data when the event is raised - void Avatars_AvatarAppearance(object sender, AvatarAppearanceEventArgs e) - { - Console.WriteLine("The Agent {0} is using a {1} shape.", e.AvatarID, (e.VisualParams[31] > 0) : "male" ? "female") - } - - - - + - Construct a new instance of the PreloadSoundEventArgs class + Indicates that this pay option should have the default value - Simulator where the event originated - The sound asset id - The ID of the owner - The ID of the object - - - Simulator where the event originated - - - Get the sound asset id - - - Get the ID of the owner - - - Get the ID of the Object - + - pre-defined built in sounds + Contains the variables sent in an object update packet for objects. + Used to track position and movement of prims and avatars - + - + - + - + - + - + - + - + - - coins - - - cash register bell - - + - + - - rubber + + + Handles all network traffic related to prims and avatar positions and + movement. + - - plastic + + The event subscribers, null of no subscribers + + + Thread sync lock object + + + Raised when the simulator sends us data containing + A , Foliage or Attachment + + + + + The event subscribers, null of no subscribers + + + Raises the ObjectProperties Event + A ObjectPropertiesEventArgs object containing + the data sent from the simulator + + + Thread sync lock object + + + Raised when the simulator sends us data containing + additional information + + + + + The event subscribers, null of no subscribers + + + Raises the ObjectPropertiesUpdated Event + A ObjectPropertiesUpdatedEventArgs object containing + the data sent from the simulator + + + Thread sync lock object + + + Raised when the simulator sends us data containing + Primitive.ObjectProperties for an object we are currently tracking - - flesh + + The event subscribers, null of no subscribers - - wood splintering? + + Raises the ObjectPropertiesFamily Event + A ObjectPropertiesFamilyEventArgs object containing + the data sent from the simulator - - glass break + + Thread sync lock object - - metal clunk + + Raised when the simulator sends us data containing + additional and details + - - whoosh + + The event subscribers, null of no subscribers - - shake + + Raises the AvatarUpdate Event + A AvatarUpdateEventArgs object containing + the data sent from the simulator - - + + + Raises the ParticleUpdate Event + + A ParticleUpdateEventArgs object containing + the data sent from the simulator - - ding + + Thread sync lock object - - + + Raised when the simulator sends us data containing + updated information for an - - + + The event subscribers, null of no subscribers - - + + Thread sync lock object - - + + Raised when the simulator sends us data containing + and movement changes - - + + The event subscribers, null of no subscribers - - + + Raises the ObjectDataBlockUpdate Event + A ObjectDataBlockUpdateEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + Raised when the simulator sends us data containing + updates to an Objects DataBlock - - + + The event subscribers, null of no subscribers - - + + Raises the KillObject Event + A KillObjectEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + Raised when the simulator informs us an + or is no longer within view - - + + The event subscribers, null of no subscribers - - + + Raises the KillObjects Event + A KillObjectsEventArgs object containing + the data sent from the simulator - - - A dictionary containing all pre-defined sounds - - A dictionary containing the pre-defined sounds, - where the key is the sounds ID, and the value is a string - containing a name to identify the purpose of the sound + + Thread sync lock object - - X position of this patch + + Raised when the simulator informs us when a group of + or is no longer within view - - Y position of this patch + + The event subscribers, null of no subscribers - - A 16x16 array of floats holding decompressed layer data + + Raises the AvatarSitChanged Event + A AvatarSitChangedEventArgs object containing + the data sent from the simulator - - - Creates a LayerData packet for compressed land data given a full - simulator heightmap and an array of indices of patches to compress - - A 256 * 256 array of floating point values - specifying the height at each meter in the simulator - Array of indexes in the 16x16 grid of patches - for this simulator. For example if 1 and 17 are specified, patches - x=1,y=0 and x=1,y=1 are sent - + + Thread sync lock object - - - Add a patch of terrain to a BitPacker - - BitPacker to write the patch to - Heightmap of the simulator, must be a 256 * - 256 float array - X offset of the patch to create, valid values are - from 0 to 15 - Y offset of the patch to create, valid values are - from 0 to 15 + + Raised when the simulator sends us data containing + updated sit information for our - - The event subscribers. null if no subcribers + + The event subscribers, null of no subscribers - - Raises the LandPatchReceived event - A LandPatchReceivedEventArgs object containing the - data returned from the simulator + + Raises the PayPriceReply Event + A PayPriceReplyEventArgs object containing + the data sent from the simulator - + Thread sync lock object - + + Raised when the simulator sends us data containing + purchase price information for a + + - Default constructor + Callback for getting object media data via CAP - + Indicates if the operation was succesfull + Object media version string + Array indexed on prim face of media entry data - - Raised when the simulator responds sends + + The event subscribers, null of no subscribers - - Simulator from that sent tha data + + Raises the PhysicsProperties Event + A PhysicsPropertiesEventArgs object containing + the data sent from the simulator - - Sim coordinate of the patch + + Thread sync lock object - - Sim coordinate of the patch + + Raised when the simulator sends us data containing + additional information + + - - Size of tha patch + + Reference to the GridClient object - - Heightmap for the patch + + Does periodic dead reckoning calculation to convert + velocity and acceleration to new positions for objects - + - The current status of a texture request as it moves through the pipeline or final result of a texture request. + Construct a new instance of the ObjectManager class + A reference to the instance - - The initial state given to a request. Requests in this state - are waiting for an available slot in the pipeline - - - A request that has been added to the pipeline and the request packet - has been sent to the simulator - - - A request that has received one or more packets back from the simulator - - - A request that has received all packets back from the simulator + + + Request information for a single object from a + you are currently connected to + + The the object is located + The Local ID of the object - - A request that has taken longer than - to download OR the initial packet containing the packet information was never received + + + Request information for multiple objects contained in + the same simulator + + The the objects are located + An array containing the Local IDs of the objects - - The texture request was aborted by request of the agent + + + Attempt to purchase an original object, a copy, or the contents of + an object + + The the object is located + The Local ID of the object + Whether the original, a copy, or the object + contents are on sale. This is used for verification, if the this + sale type is not valid for the object the purchase will fail + Price of the object. This is used for + verification, if it does not match the actual price the purchase + will fail + Group ID that will be associated with the new + purchase + Inventory folder UUID where the object or objects + purchased should be placed + + + BuyObject(Client.Network.CurrentSim, 500, SaleType.Copy, + 100, UUID.Zero, Client.Self.InventoryRootFolderUUID); + + - - The simulator replied to the request that it was not able to find the requested texture + + + Request prices that should be displayed in pay dialog. This will triggger the simulator + to send us back a PayPriceReply which can be handled by OnPayPriceReply event + + The the object is located + The ID of the object + The result is raised in the event - + - A callback fired to indicate the status or final state of the requested texture. For progressive - downloads this will fire each time new asset data is returned from the simulator. + Select a single object. This will cause the to send us + an which will raise the event - The indicating either Progress for textures not fully downloaded, - or the final result of the request after it has been processed through the TexturePipeline - The object containing the Assets ID, raw data - and other information. For progressive rendering the will contain - the data from the beginning of the file. For failed, aborted and timed out requests it will contain - an empty byte array. + The the object is located + The Local ID of the object + - + - Texture request download handler, allows a configurable number of download slots which manage multiple - concurrent texture downloads from the + Select a single object. This will cause the to send us + an which will raise the event - This class makes full use of the internal - system for full texture downloads. + The the object is located + The Local ID of the object + if true, a call to is + made immediately following the request + - - A dictionary containing all pending and in-process transfer requests where the Key is both the RequestID - and also the Asset Texture ID, and the value is an object containing the current state of the request and also - the asset data as it is being re-assembled + + + Select multiple objects. This will cause the to send us + an which will raise the event + + The the objects are located + An array containing the Local IDs of the objects + Should objects be deselected immediately after selection + - - Holds the reference to the client object + + + Select multiple objects. This will cause the to send us + an which will raise the event + + The the objects are located + An array containing the Local IDs of the objects + - - Maximum concurrent texture requests allowed at a time + + + Update the properties of an object + + The the object is located + The Local ID of the object + true to turn the objects physical property on + true to turn the objects temporary property on + true to turn the objects phantom property on + true to turn the objects cast shadows property on - - An array of objects used to manage worker request threads + + + Update the properties of an object + + The the object is located + The Local ID of the object + true to turn the objects physical property on + true to turn the objects temporary property on + true to turn the objects phantom property on + true to turn the objects cast shadows property on + Type of the represetnation prim will have in the physics engine + Density - normal value 1000 + Friction - normal value 0.6 + Restitution - standard value 0.5 + Gravity multiplier - standar value 1.0 - - An array of worker slots which shows the availablity status of the slot + + + Sets the sale properties of a single object + + The the object is located + The Local ID of the object + One of the options from the enum + The price of the object - - The primary thread which manages the requests. + + + Sets the sale properties of multiple objects + + The the objects are located + An array containing the Local IDs of the objects + One of the options from the enum + The price of the object - - true if the TexturePipeline is currently running + + + Deselect a single object + + The the object is located + The Local ID of the object - - A synchronization object used by the primary thread + + + Deselect multiple objects. + + The the objects are located + An array containing the Local IDs of the objects - - A refresh timer used to increase the priority of stalled requests + + + Perform a click action on an object + + The the object is located + The Local ID of the object - + - Default constructor, Instantiates a new copy of the TexturePipeline class + Perform a click action (Grab) on a single object - Reference to the instantiated object + The the object is located + The Local ID of the object + The texture coordinates to touch + The surface coordinates to touch + The face of the position to touch + The region coordinates of the position to touch + The surface normal of the position to touch (A normal is a vector perpindicular to the surface) + The surface binormal of the position to touch (A binormal is a vector tangen to the surface + pointing along the U direction of the tangent space - + - Initialize callbacks required for the TexturePipeline to operate + Create (rez) a new prim object in a simulator + A reference to the object to place the object in + Data describing the prim object to rez + Group ID that this prim will be set to, or UUID.Zero if you + do not want the object to be associated with a specific group + An approximation of the position at which to rez the prim + Scale vector to size this prim + Rotation quaternion to rotate this prim + Due to the way client prim rezzing is done on the server, + the requested position for an object is only close to where the prim + actually ends up. If you desire exact placement you'll need to + follow up by moving the object after it has been created. This + function will not set textures, light and flexible data, or other + extended primitive properties - + - Shutdown the TexturePipeline and cleanup any callbacks or transfers + Create (rez) a new prim object in a simulator + + A reference to the object to place the object in + Data describing the prim object to rez + Group ID that this prim will be set to, or UUID.Zero if you + do not want the object to be associated with a specific group + An approximation of the position at which to rez the prim + Scale vector to size this prim + Rotation quaternion to rotate this prim + Specify the + Due to the way client prim rezzing is done on the server, + the requested position for an object is only close to where the prim + actually ends up. If you desire exact placement you'll need to + follow up by moving the object after it has been created. This + function will not set textures, light and flexible data, or other + extended primitive properties + + + + Rez a Linden tree + A reference to the object where the object resides + The size of the tree + The rotation of the tree + The position of the tree + The Type of tree + The of the group to set the tree to, + or UUID.Zero if no group is to be set + true to use the "new" Linden trees, false to use the old - + - Request a texture asset from the simulator using the system to - manage the requests and re-assemble the image from the packets received from the simulator + Rez grass and ground cover - The of the texture asset to download - The of the texture asset. - Use for most textures, or for baked layer texture assets - A float indicating the requested priority for the transfer. Higher priority values tell the simulator - to prioritize the request before lower valued requests. An image already being transferred using the can have - its priority changed by resending the request with the new priority value - Number of quality layers to discard. - This controls the end marker of the data sent - The packet number to begin the request at. A value of 0 begins the request - from the start of the asset texture - The callback to fire when the image is retrieved. The callback - will contain the result of the request and the texture asset data - If true, the callback will be fired for each chunk of the downloaded image. - The callback asset parameter will contain all previously received chunks of the texture asset starting - from the beginning of the request + A reference to the object where the object resides + The size of the grass + The rotation of the grass + The position of the grass + The type of grass from the enum + The of the group to set the tree to, + or UUID.Zero if no group is to be set - + - Sends the actual request packet to the simulator + Set the textures to apply to the faces of an object - The image to download - Type of the image to download, either a baked - avatar texture or a normal texture - Priority level of the download. Default is - 1,013,000.0f - Number of quality layers to discard. - This controls the end marker of the data sent - Packet number to start the download at. - This controls the start marker of the data sent - Sending a priority of 0 and a discardlevel of -1 aborts - download + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The texture data to apply - + - Cancel a pending or in process texture request + Set the textures to apply to the faces of an object - The texture assets unique ID + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The texture data to apply + A media URL (not used) - + - Master Download Thread, Queues up downloads in the threadpool + Set the Light data on an object + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + A object containing the data to set - + - The worker thread that sends the request and handles timeouts + Set the flexible data on an object - A object containing the request details + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + A object containing the data to set - + - Handle responses from the simulator that tell us a texture we have requested is unable to be located - or no longer exists. This will remove the request from the pipeline and free up a slot if one is in use + Set the sculptie texture and data on an object - The sender - The EventArgs object containing the packet data + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + A object containing the data to set - + - Handles the remaining Image data that did not fit in the initial ImageData packet + Unset additional primitive parameters on an object - The sender - The EventArgs object containing the packet data + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The extra parameters to set - + - Handle the initial ImageDataPacket sent from the simulator + Link multiple prims into a linkset - The sender - The EventArgs object containing the packet data - - - Current number of pending and in-process transfers + A reference to the object where the objects reside + An array which contains the IDs of the objects to link + The last object in the array will be the root object of the linkset TODO: Is this true? - + - A request task containing information and status of a request as it is processed through the + Delink/Unlink multiple prims from a linkset + A reference to the object where the objects reside + An array which contains the IDs of the objects to delink - - The current which identifies the current status of the request - - - The Unique Request ID, This is also the Asset ID of the texture being requested - - - The slot this request is occupying in the threadpoolSlots array - - - The ImageType of the request. - - - The callback to fire when the request is complete, will include - the and the - object containing the result data - - - If true, indicates the callback will be fired whenever new data is returned from the simulator. - This is used to progressively render textures as portions of the texture are received. - - - An object that maintains the data of an request thats in-process. - - + - + Change the rotation of an object + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The new rotation of the object - + - An instance of DelegateWrapper which calls InvokeWrappedDelegate, - which in turn calls the DynamicInvoke method of the wrapped - delegate + Set the name of an object + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + A string containing the new name of the object - + - Callback used to call EndInvoke on the asynchronously - invoked DelegateWrapper + Set the name of multiple objects + A reference to the object where the objects reside + An array which contains the IDs of the objects to change the name of + An array which contains the new names of the objects - + - Executes the specified delegate with the specified arguments - asynchronously on a thread pool thread + Set the description of an object - - + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + A string containing the new description of the object - + - Invokes the wrapped delegate synchronously + Set the descriptions of multiple objects - - + A reference to the object where the objects reside + An array which contains the IDs of the objects to change the description of + An array which contains the new descriptions of the objects - + - Calls EndInvoke on the wrapper and Close on the resulting WaitHandle - to prevent resource leaks + Attach an object to this avatar - + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The point on the avatar the object will be attached + The rotation of the attached object - + - Delegate to wrap another delegate and its arguments + Drop an attached object from this avatar - - + A reference to the + object where the objects reside. This will always be the simulator the avatar is currently in + + The object's ID which is local to the simulator the object is in - + - + Detach an object from yourself + A reference to the + object where the objects reside + + This will always be the simulator the avatar is currently in + + An array which contains the IDs of the objects to detach - - - - - - - - - - + - Thrown when a packet could not be successfully deserialized + Change the position of an object, Will change position of entire linkset + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The new position of the object - + - Default constructor + Change the position of an object + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The new position of the object + if true, will change position of (this) child prim only, not entire linkset - + - Constructor that takes an additional error message + Change the Scale (size) of an object - An error message to attach to this exception + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The new scale of the object + If true, will change scale of this prim only, not entire linkset + True to resize prims uniformly - + - The header of a message template packet. Holds packet flags, sequence - number, packet ID, and any ACKs that will be appended at the end of - the packet + Change the Rotation of an object that is either a child or a whole linkset + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The new scale of the object + If true, will change rotation of this prim only, not entire linkset - + - Convert the AckList to a byte array, used for packet serializing + Send a Multiple Object Update packet to change the size, scale or rotation of a primitive - Reference to the target byte array - Beginning position to start writing to in the byte - array, will be updated with the ending position of the ACK list + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The new rotation, size, or position of the target object + The flags from the Enum - + - + Deed an object (prim) to a group, Object must be shared with group which + can be accomplished with SetPermissions() - - - - + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The of the group to deed the object to - + - + Deed multiple objects (prims) to a group, Objects must be shared with group which + can be accomplished with SetPermissions() - - - + A reference to the object where the object resides + An array which contains the IDs of the objects to deed + The of the group to deed the object to - + - A block of data in a packet. Packets are composed of one or more blocks, - each block containing one or more fields + Set the permissions on multiple objects + A reference to the object where the objects reside + An array which contains the IDs of the objects to set the permissions on + The new Who mask to set + Which permission to modify + The new state of permission - + - Create a block from a byte array + Request additional properties for an object - Byte array containing the serialized block - Starting position of the block in the byte array. - This will point to the data after the end of the block when the - call returns + A reference to the object where the object resides + - + - Serialize this block into a byte array + Request additional properties for an object - Byte array to serialize this block into - Starting position in the byte array to serialize to. - This will point to the position directly after the end of the - serialized block when the call returns - - - Current length of the data in this packet - - - A generic value, not an actual packet type - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + A reference to the object where the object resides + Absolute UUID of the object + Whether to require server acknowledgement of this request - - + + + Set the ownership of a list of objects to the specified group + + A reference to the object where the objects reside + An array which contains the IDs of the objects to set the group id on + The Groups ID - - + + + Update current URL of the previously set prim media + + UUID of the prim + Set current URL to this + Prim face number + Simulator in which prim is located - - + + + Set object media + + UUID of the prim + Array the length of prims number of faces. Null on face indexes where there is + no media, on faces which contain the media + Simulatior in which prim is located - - + + + Retrieve information about object media + + UUID of the primitive + Simulator where prim is located + Call this callback when done - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + + A terse object update, used when a transformation matrix or + velocity/acceleration for an object changes but nothing else + (scale/position/rotation/acceleration/velocity) + + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + + + + + + - - + + + Setup construction data for a basic primitive shape + + Primitive shape to construct + Construction data that can be plugged into a - - + + + + + + + + - - + + + + + + - - + + + Set the Shape data of an object + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + Data describing the prim shape - - + + + Set the Material data of an object + + A reference to the object where the object resides + The objects ID which is local to the simulator the object is in + The new material of the object - - + + + + + + + + - - + + + + + + + + + - - + + + + + + + + - - + + Provides data for the event + The event occurs when the simulator sends + an containing a Primitive, Foliage or Attachment data + Note 1: The event will not be raised when the object is an Avatar + Note 2: It is possible for the to be + raised twice for the same object if for example the primitive moved to a new simulator, then returned to the current simulator or + if an Avatar crosses the border into a new simulator and returns to the current simulator + + + The following code example uses the , , and + properties to display new Primitives and Attachments on the window. + + // Subscribe to the event that gives us prim and foliage information + Client.Objects.ObjectUpdate += Objects_ObjectUpdate; + + + private void Objects_ObjectUpdate(object sender, PrimEventArgs e) + { + Console.WriteLine("Primitive {0} {1} in {2} is an attachment {3}", e.Prim.ID, e.Prim.LocalID, e.Simulator.Name, e.IsAttachment); + } + + + + + - - + + Get the simulator the originated from - - + + Get the details - - + + true if the did not exist in the dictionary before this update (always true if object tracking has been disabled) - - + + true if the is attached to an - - + + Get the simulator Time Dilation - - + + + Construct a new instance of the PrimEventArgs class + + The simulator the object originated from + The Primitive + The simulator time dilation + The prim was not in the dictionary before this update + true if the primitive represents an attachment to an agent - - + + Provides data for the event + The event occurs when the simulator sends + an containing Avatar data + Note 1: The event will not be raised when the object is an Avatar + Note 2: It is possible for the to be + raised twice for the same avatar if for example the avatar moved to a new simulator, then returned to the current simulator + + + The following code example uses the property to make a request for the top picks + using the method in the class to display the names + of our own agents picks listings on the window. + + // subscribe to the AvatarUpdate event to get our information + Client.Objects.AvatarUpdate += Objects_AvatarUpdate; + Client.Avatars.AvatarPicksReply += Avatars_AvatarPicksReply; + + private void Objects_AvatarUpdate(object sender, AvatarUpdateEventArgs e) + { + // we only want our own data + if (e.Avatar.LocalID == Client.Self.LocalID) + { + // Unsubscribe from the avatar update event to prevent a loop + // where we continually request the picks every time we get an update for ourselves + Client.Objects.AvatarUpdate -= Objects_AvatarUpdate; + // make the top picks request through AvatarManager + Client.Avatars.RequestAvatarPicks(e.Avatar.ID); + } + } + + private void Avatars_AvatarPicksReply(object sender, AvatarPicksReplyEventArgs e) + { + // we'll unsubscribe from the AvatarPicksReply event since we now have the data + // we were looking for + Client.Avatars.AvatarPicksReply -= Avatars_AvatarPicksReply; + // loop through the dictionary and extract the names of the top picks from our profile + foreach (var pickName in e.Picks.Values) + { + Console.WriteLine(pickName); + } + } + + + + - - + + Get the simulator the object originated from - - + + Get the data - - + + Get the simulator time dilation - - + + true if the did not exist in the dictionary before this update (always true if avatar tracking has been disabled) - - + + + Construct a new instance of the AvatarUpdateEventArgs class + + The simulator the packet originated from + The data + The simulator time dilation + The avatar was not in the dictionary before this update - - + + Get the simulator the object originated from - - + + Get the data - - + + Get source - - + + + Construct a new instance of the ParticleUpdateEventArgs class + + The simulator the packet originated from + The ParticleSystem data + The Primitive source - - + + Provides additional primitive data for the event + The event occurs when the simulator sends + an containing additional details for a Primitive, Foliage data or Attachment data + The event is also raised when a request is + made. + + + The following code example uses the , and + + properties to display new attachments and send a request for additional properties containing the name of the + attachment then display it on the window. + + // Subscribe to the event that provides additional primitive details + Client.Objects.ObjectProperties += Objects_ObjectProperties; + + // handle the properties data that arrives + private void Objects_ObjectProperties(object sender, ObjectPropertiesEventArgs e) + { + Console.WriteLine("Primitive Properties: {0} Name is {1}", e.Properties.ObjectID, e.Properties.Name); + } + + - - + + Get the simulator the object is located - - + + Get the primitive properties - - + + + Construct a new instance of the ObjectPropertiesEventArgs class + + The simulator the object is located + The primitive Properties - - + + Provides additional primitive data for the event + The event occurs when the simulator sends + an containing additional details for a Primitive or Foliage data that is currently + being tracked in the dictionary + The event is also raised when a request is + made and is enabled + - - + + Get the primitive details - - + + + Construct a new instance of the ObjectPropertiesUpdatedEvenrArgs class + + The simulator the object is located + The Primitive + The primitive Properties - - + + Provides additional primitive data, permissions and sale info for the event + The event occurs when the simulator sends + an containing additional details for a Primitive, Foliage data or Attachment. This includes + Permissions, Sale info, and other basic details on an object + The event is also raised when a request is + made, the viewer equivalent is hovering the mouse cursor over an object + - - + + Get the simulator the object is located - - + + - - + + - - + + Provides primitive data containing updated location, velocity, rotation, textures for the event + The event occurs when the simulator sends updated location, velocity, rotation, etc + - - + + Get the simulator the object is located - - + + Get the primitive details - - + + - - + + - - + + + + - - + + Get the simulator the object is located - - + + Get the primitive details - - + + - - + + - - + + - - + + - - + + Provides notification when an Avatar, Object or Attachment is DeRezzed or moves out of the avatars view for the + event - - + + Get the simulator the object is located - - + + The LocalID of the object - - + + Provides notification when an Avatar, Object or Attachment is DeRezzed or moves out of the avatars view for the + event - - + + Get the simulator the object is located - - + + The LocalID of the object - - + + + Provides updates sit position data + - - + + Get the simulator the object is located - - + + - - + + - - + + - - + + + + - - + + Get the simulator the object is located - - + + - - + + - - + + - - + + + Indicates if the operation was successful + - - + + + Media version string + - - + + + Array of media entries indexed by face number + - - + + + Set when simulator sends us infomation on primitive's physical properties + - - + + Simulator where the message originated - - + + Updated physical properties - - + + + Constructor + + Simulator where the message originated + Updated physical properties - - + + Size of the byte array used to store raw packet data - - + + Raw packet data buffer - - + + Length of the data to transmit - - + + EndPoint of the remote host - - + + + Create an allocated UDP packet buffer for receiving a packet + - - + + + Create an allocated UDP packet buffer for sending a packet + + EndPoint of the remote host - - + + + Create an allocated UDP packet buffer for sending a packet + + EndPoint of the remote host + Size of the buffer to allocate for packet data - - + + + Object pool for packet buffers. This is used to allocate memory for all + incoming and outgoing packets, and zerocoding buffers for those packets + - - + + + Initialize the object pool in client mode + + Server to connect to + + - - + + + Initialize the object pool in server mode + + + - - + + + Returns a packet buffer with EndPoint set if the buffer is in + client mode, or with EndPoint set to null in server mode + + Initialized UDPPacketBuffer object - - + + + Default constructor + - - + + + Check a packet buffer out of the pool + + A packet buffer object - - + + + Returns an instance of the class that has been checked out of the Object Pool. + - - + + + Checks the instance back into the object pool + - - + + + Creates a new instance of the ObjectPoolBase class. Initialize MUST be called + after using this constructor. + - - + + + Creates a new instance of the ObjectPool Base class. + + The object pool is composed of segments, which + are allocated whenever the size of the pool is exceeded. The number of items + in a segment should be large enough that allocating a new segmeng is a rare + thing. For example, on a server that will have 10k people logged in at once, + the receive buffer object pool should have segment sizes of at least 1000 + byte arrays per segment. + + The minimun number of segments that may exist. + Perform a full GC.Collect whenever a segment is allocated, and then again after allocation to compact the heap. + The frequency which segments are checked to see if they're eligible for cleanup. - - + + + Forces the segment cleanup algorithm to be run. This method is intended + primarly for use from the Unit Test libraries. + - - + + + Responsible for allocate 1 instance of an object that will be stored in a segment. + + An instance of whatever objec the pool is pooling. - - + + + Checks in an instance of T owned by the object pool. This method is only intended to be called + by the WrappedObject class. + + The segment from which the instance is checked out. + The instance of T to check back into the segment. - - + + + Checks an instance of T from the pool. If the pool is not sufficient to + allow the checkout, a new segment is created. + + A WrappedObject around the instance of T. To check + the instance back into the segment, be sureto dispose the WrappedObject + when finished. - - + + + The total number of segments created. Intended to be used by the Unit Tests. + - - + + + The number of items that are in a segment. Items in a segment + are all allocated at the same time, and are hopefully close to + each other in the managed heap. + - - + + + The minimum number of segments. When segments are reclaimed, + this number of segments will always be left alone. These + segments are allocated at startup. + - - + + + The age a segment must be before it's eligible for cleanup. + This is used to prevent thrash, and typical values are in + the 5 minute range. + - - + + + The frequence which the cleanup thread runs. This is typically + expected to be in the 5 minute range. + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + + + - - + + + The ObservableDictionary class is used for storing key/value pairs. It has methods for firing + events to subscribers when items are added, removed, or changed. + + Key + Value - - + + + A dictionary of callbacks to fire when specified action occurs + - - + + + Register a callback to be fired when an action occurs + + The action + The callback to fire - - + + + Unregister a callback + + The action + The callback to fire - - + + + + + + - - + + Internal dictionary that this class wraps around. Do not + modify or enumerate the contents of this dictionary without locking - - + + + Gets the number of Key/Value pairs contained in the + - - + + + Initializes a new instance of the Class + with the specified key/value, has the default initial capacity. + + + + // initialize a new ObservableDictionary named testDict with a string as the key and an int as the value. + public ObservableDictionary<string, int> testDict = new ObservableDictionary<string, int>(); + + - - + + + Initializes a new instance of the Class + with the specified key/value, With its initial capacity specified. + + Initial size of dictionary + + + // initialize a new ObservableDictionary named testDict with a string as the key and an int as the value, + // initially allocated room for 10 entries. + public ObservableDictionary<string, int> testDict = new ObservableDictionary<string, int>(10); + + - - + + + Try to get entry from the with specified key + + Key to use for lookup + Value returned + if specified key exists, if not found + + + // find your avatar using the Simulator.ObjectsAvatars ObservableDictionary: + Avatar av; + if (Client.Network.CurrentSim.ObjectsAvatars.TryGetValue(Client.Self.AgentID, out av)) + Console.WriteLine("Found Avatar {0}", av.Name); + + + - - + + + Finds the specified match. + + The match. + Matched value + + + // use a delegate to find a prim in the ObjectsPrimitives ObservableDictionary + // with the ID 95683496 + uint findID = 95683496; + Primitive findPrim = sim.ObjectsPrimitives.Find( + delegate(Primitive prim) { return prim.ID == findID; }); + + - - + + Find All items in an + return matching items. + a containing found items. + + Find All prims within 20 meters and store them in a List + + int radius = 20; + List<Primitive> prims = Client.Network.CurrentSim.ObjectsPrimitives.FindAll( + delegate(Primitive prim) { + Vector3 pos = prim.Position; + return ((prim.ParentID == 0) && (pos != Vector3.Zero) && (Vector3.Distance(pos, location) < radius)); + } + ); + + - - + + Find All items in an + return matching keys. + a containing found keys. + + Find All keys which also exist in another dictionary + + List<UUID> matches = myDict.FindAll( + delegate(UUID id) { + return myOtherDict.ContainsKey(id); + } + ); + + - - + + Check if Key exists in Dictionary + Key to check for + if found, otherwise - - + + Check if Value exists in Dictionary + Value to check for + if found, otherwise - - + + + Adds the specified key to the dictionary, dictionary locking is not performed, + + + The key + The value - - + + + Removes the specified key, dictionary locking is not performed + + The key. + if successful, otherwise - - + + + Indexer for the dictionary + + The key + The value - - + + + Clear the contents of the dictionary + - - + + + Enumerator for iterating dictionary entries + + - - + + + Provides helper methods for parallelizing loops + - - + + + Executes a for loop in which iterations may run in parallel + + The loop will be started at this index + The loop will be terminated before this index is reached + Method body to run for each iteration of the loop - - + + + Executes a for loop in which iterations may run in parallel + + The number of concurrent execution threads to run + The loop will be started at this index + The loop will be terminated before this index is reached + Method body to run for each iteration of the loop - - + + + Executes a foreach loop in which iterations may run in parallel + + Object type that the collection wraps + An enumerable collection to iterate over + Method body to run for each object in the collection - - + + + Executes a foreach loop in which iterations may run in parallel + + Object type that the collection wraps + The number of concurrent execution threads to run + An enumerable collection to iterate over + Method body to run for each object in the collection - - + + + Executes a series of tasks in parallel + + A series of method bodies to execute - - + + + Executes a series of tasks in parallel + + The number of concurrent execution threads to run + A series of method bodies to execute - - + + + Type of return to use when returning objects from a parcel + - - + + - - + + Return objects owned by parcel owner - - + + Return objects set to group - - + + Return objects not owned by parcel owner or set to group - - + + Return a specific list of objects on parcel - - + + Return objects that are marked for-sale - - + + + Blacklist/Whitelist flags used in parcels Access List + - - + + Agent is denied access - - + + Agent is granted access - - + + + The result of a request for parcel properties + - - + + No matches were found for the request - - + + Request matched a single parcel - - + + Request matched multiple parcels - - + + + Flags used in the ParcelAccessListRequest packet to specify whether + we want the access list (whitelist), ban list (blacklist), or both + - - + + Request the access list - - + + Request the ban list - - + + Request both White and Black lists - - + + + Sequence ID in ParcelPropertiesReply packets (sent when avatar + tries to cross a parcel border) + - - + + Parcel is currently selected - - + + Parcel restricted to a group the avatar is not a + member of - - + + Avatar is banned from the parcel - - + + Parcel is restricted to an access list that the + avatar is not on - - + + Response to hovering over a parcel - - + + + The tool to use when modifying terrain levels + - - + + Level the terrain - - + + Raise the terrain - - + + Lower the terrain - - + + Smooth the terrain - - + + Add random noise to the terrain - - + + Revert terrain to simulator default - - + + + The tool size to use when changing terrain levels + - - + + Small - - + + Medium - - + + Large - - + + + Reasons agent is denied access to a parcel on the simulator + - - + + Agent is not denied, access is granted - - + + Agent is not a member of the group set for the parcel, or which owns the parcel - - + + Agent is not on the parcels specific allow list - - + + Agent is on the parcels ban list - - + + Unknown - - + + Agent is not age verified and parcel settings deny access to non age verified avatars - - + + + Parcel overlay type. This is used primarily for highlighting and + coloring which is why it is a single integer instead of a set of + flags + + These values seem to be poorly thought out. The first three + bits represent a single value, not flags. For example Auction (0x05) is + not a combination of OwnedByOther (0x01) and ForSale(0x04). However, + the BorderWest and BorderSouth values are bit flags that get attached + to the value stored in the first three bits. Bits four, five, and six + are unused - - + + Public land - - + + Land is owned by another avatar - - + + Land is owned by a group - - + + Land is owned by the current avatar - - + + Land is for sale - - + + Land is being auctioned - - + + Land is private - - + + To the west of this area is a parcel border - - + + To the south of this area is a parcel border - - + + + Various parcel properties + - - + + No flags set - - + + Allow avatars to fly (a client-side only restriction) - - + + Allow foreign scripts to run - - + + This parcel is for sale - - + + Allow avatars to create a landmark on this parcel - - + + Allows all avatars to edit the terrain on this parcel - - + + Avatars have health and can take damage on this parcel. + If set, avatars can be killed and sent home here - - + + Foreign avatars can create objects here - - + + All objects on this parcel can be purchased - - + + Access is restricted to a group - - + + Access is restricted to a whitelist - - + + Ban blacklist is enabled - - + + Unknown - - + + List this parcel in the search directory - - + + Allow personally owned parcels to be deeded to group - - + + If Deeded, owner contributes required tier to group parcel is deeded to - - + + Restrict sounds originating on this parcel to the + parcel boundaries - - + + Objects on this parcel are sold when the land is + purchsaed - - + + Allow this parcel to be published on the web - - + + The information for this parcel is mature content - - + + The media URL is an HTML page - - + + The media URL is a raw HTML string - - + + Restrict foreign object pushes - - + + Ban all non identified/transacted avatars - - + + Allow group-owned scripts to run - - + + Allow object creation by group members or group + objects - - + + Allow all objects to enter this parcel - - + + Only allow group and owner objects to enter this parcel - - + + Voice Enabled on this parcel - - + + Use Estate Voice channel for Voice on this parcel - - + + Deny Age Unverified Users - - + + + Parcel ownership status + - - + + Placeholder - - + + Parcel is leased (owned) by an avatar or group - - + + Parcel is in process of being leased (purchased) by an avatar or group - - + + Parcel has been abandoned back to Governor Linden - - + + + Category parcel is listed in under search + - - + + No assigned category - - + + Linden Infohub or public area - - + + Adult themed area - - + + Arts and Culture - - + + Business - - + + Educational - - + + Gaming - - + + Hangout or Club - - + + Newcomer friendly - - + + Parks and Nature - - + + Residential - - + + Shopping - - + + Not Used? - - + + Other - - + + Not an actual category, only used for queries - - + + + Type of teleport landing for a parcel + - - + + Unset, simulator default - - + + Specific landing point set for this parcel - - + + No landing point set, direct teleports enabled for + this parcel - - + + + Parcel Media Command used in ParcelMediaCommandMessage + - - + + Stop the media stream and go back to the first frame - - + + Pause the media stream (stop playing but stay on current frame) - - + + Start the current media stream playing and stop when the end is reached - - + + Start the current media stream playing, + loop to the beginning when the end is reached and continue to play - - + + Specifies the texture to replace with video + If passing the key of a texture, it must be explicitly typecast as a key, + not just passed within double quotes. - - + + Specifies the movie URL (254 characters max) - - + + Specifies the time index at which to begin playing - - + + Specifies a single agent to apply the media command to - - + + Unloads the stream. While the stop command sets the texture to the first frame of the movie, + unload resets it to the real texture that the movie was replacing. - - + + Turn on/off the auto align feature, similar to the auto align checkbox in the parcel media properties + (NOT to be confused with the "align" function in the textures view of the editor!) Takes TRUE or FALSE as parameter. - - + + Allows a Web page or image to be placed on a prim (1.19.1 RC0 and later only). + Use "text/html" for HTML. - - + + Resizes a Web page to fit on x, y pixels (1.19.1 RC0 and later only). + This might still not be working - - + + Sets a description for the media being displayed (1.19.1 RC0 and later only). - - + + + Some information about a parcel of land returned from a DirectoryManager search + - - + + Global Key of record - - + + Parcel Owners - - + + Name field of parcel, limited to 128 characters - - + + Description field of parcel, limited to 256 characters - - + + Total Square meters of parcel - - + + Total area billable as Tier, for group owned land this will be 10% less than ActualArea - - + + True of parcel is in Mature simulator - - + + Grid global X position of parcel - - + + Grid global Y position of parcel - - + + Grid global Z position of parcel (not used) - - + + Name of simulator parcel is located in - - + + Texture of parcels display picture - - + + Float representing calculated traffic based on time spent on parcel by avatars - - + + Sale price of parcel (not used) - - + + Auction ID of parcel - - + + + Parcel Media Information + - - + + A byte, if 0x1 viewer should auto scale media to fit object - - + + A boolean, if true the viewer should loop the media - - + + The Asset UUID of the Texture which when applied to a + primitive will display the media - - + + A URL which points to any Quicktime supported media type - - + + A description of the media - - + + An Integer which represents the height of the media - - + + An integer which represents the width of the media - - + + A string which contains the mime type of the media - - + + + Parcel of land, a portion of virtual real estate in a simulator + - - + + The total number of contiguous 4x4 meter blocks your agent owns within this parcel - - + + The total number of contiguous 4x4 meter blocks contained in this parcel owned by a group or agent other than your own - - + + Deprecated, Value appears to always be 0 - - + + Simulator-local ID of this parcel - - + + UUID of the owner of this parcel - - + + Whether the land is deeded to a group or not - - + + - - + + Date land was claimed - - + + Appears to always be zero - - + + This field is no longer used - - + + Minimum corner of the axis-aligned bounding box for this + parcel - - + + Maximum corner of the axis-aligned bounding box for this + parcel - - + + Bitmap describing land layout in 4x4m squares across the + entire region - - + + Total parcel land area - - + + - - + + Maximum primitives across the entire simulator owned by the same agent or group that owns this parcel that can be used - - + + Total primitives across the entire simulator calculated by combining the allowed prim counts for each parcel + owned by the agent or group that owns this parcel - - + + Maximum number of primitives this parcel supports - - + + Total number of primitives on this parcel - - + + For group-owned parcels this indicates the total number of prims deeded to the group, + for parcels owned by an individual this inicates the number of prims owned by the individual - - + + Total number of primitives owned by the parcel group on + this parcel, or for parcels owned by an individual with a group set the + total number of prims set to that group. - - + + Total number of prims owned by other avatars that are not set to group, or not the parcel owner - - + + A bonus multiplier which allows parcel prim counts to go over times this amount, this does not affect + the max prims per simulator. e.g: 117 prim parcel limit x 1.5 bonus = 175 allowed - - + + Autoreturn value in minutes for others' objects - - + + - - + + Sale price of the parcel, only useful if ForSale is set + The SalePrice will remain the same after an ownership + transfer (sale), so it can be used to see the purchase price after + a sale if the new owner has not changed it - - + + Parcel Name - - + + Parcel Description - - + + URL For Music Stream - - + + - - + + Price for a temporary pass - - + + How long is pass valid for - - + + - - + + Key of authorized buyer - - + + Key of parcel snapshot - - + + The landing point location - - + + The landing point LookAt - - + + The type of landing enforced from the enum - - + + - - + + - - + + - - + + Access list of who is whitelisted on this + parcel - - + + Access list of who is blacklisted on this + parcel - - + + TRUE of region denies access to age unverified users - - + + true to obscure (hide) media url - - + + true to obscure (hide) music url - - + + A struct containing media details - - + + + Displays a parcel object in string format + + string containing key=value pairs of a parcel object - - + + + Defalt constructor + + Local ID of this parcel - - + + + Update the simulator with any local changes to this Parcel object + + Simulator to send updates to + Whether we want the simulator to confirm + the update with a reply packet or not - - + + + Set Autoreturn time + + Simulator to send the update to - - + + + Parcel (subdivided simulator lots) subsystem + - - + + + Parcel Accesslist + - - + + Agents - - + + - - + + Flags for specific entry in white/black lists - - + + + Owners of primitives on parcel + - - + + Prim Owners - - + + True of owner is group - - + + Total count of prims owned by OwnerID - - + + true of OwnerID is currently online and is not a group - - + + The date of the most recent prim left by OwnerID - - + + + Called once parcel resource usage information has been collected + + Indicates if operation was successfull + Parcel resource usage information - - + + The event subscribers. null if no subcribers - - + + Raises the ParcelDwellReply event + A ParcelDwellReplyEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + Raised when the simulator responds to a request - - + + The event subscribers. null if no subcribers - - + + Raises the ParcelInfoReply event + A ParcelInfoReplyEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + Raised when the simulator responds to a request - - + + The event subscribers. null if no subcribers - - + + Raises the ParcelProperties event + A ParcelPropertiesEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + Raised when the simulator responds to a request - - + + The event subscribers. null if no subcribers - - + + Raises the ParcelAccessListReply event + A ParcelAccessListReplyEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + Raised when the simulator responds to a request - - + + The event subscribers. null if no subcribers - - + + Raises the ParcelObjectOwnersReply event + A ParcelObjectOwnersReplyEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + Raised when the simulator responds to a request - - + + The event subscribers. null if no subcribers - - + + Raises the SimParcelsDownloaded event + A SimParcelsDownloadedEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + Raised when the simulator responds to a request - - + + The event subscribers. null if no subcribers - - + + Raises the ForceSelectObjectsReply event + A ForceSelectObjectsReplyEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + Raised when the simulator responds to a request - - + + The event subscribers. null if no subcribers - - + + Raises the ParcelMediaUpdateReply event + A ParcelMediaUpdateReplyEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + Raised when the simulator responds to a Parcel Update request - - + + The event subscribers. null if no subcribers - - + + Raises the ParcelMediaCommand event + A ParcelMediaCommandEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + Raised when the parcel your agent is located sends a ParcelMediaCommand - - + + + Default constructor + + A reference to the GridClient object - - + + + Request basic information for a single parcel + + Simulator-local ID of the parcel - - + + + Request properties of a single parcel + + Simulator containing the parcel + Simulator-local ID of the parcel + An arbitrary integer that will be returned + with the ParcelProperties reply, useful for distinguishing between + multiple simultaneous requests - - + + + Request the access list for a single parcel + + Simulator containing the parcel + Simulator-local ID of the parcel + An arbitrary integer that will be returned + with the ParcelAccessList reply, useful for distinguishing between + multiple simultaneous requests + - - + + + Request properties of parcels using a bounding box selection + + Simulator containing the parcel + Northern boundary of the parcel selection + Eastern boundary of the parcel selection + Southern boundary of the parcel selection + Western boundary of the parcel selection + An arbitrary integer that will be returned + with the ParcelProperties reply, useful for distinguishing between + different types of parcel property requests + A boolean that is returned with the + ParcelProperties reply, useful for snapping focus to a single + parcel - - + + + Request all simulator parcel properties (used for populating the Simulator.Parcels + dictionary) + + Simulator to request parcels from (must be connected) - - + + + Request all simulator parcel properties (used for populating the Simulator.Parcels + dictionary) + + Simulator to request parcels from (must be connected) + If TRUE, will force a full refresh + Number of milliseconds to pause in between each request - - + + + Request the dwell value for a parcel + + Simulator containing the parcel + Simulator-local ID of the parcel - - + + + Send a request to Purchase a parcel of land + + The Simulator the parcel is located in + The parcels region specific local ID + true if this parcel is being purchased by a group + The groups + true to remove tier contribution if purchase is successful + The parcels size + The purchase price of the parcel + - - + + + Reclaim a parcel of land + + The simulator the parcel is in + The parcels region specific local ID - - + + + Deed a parcel to a group + + The simulator the parcel is in + The parcels region specific local ID + The groups - - + + + Request prim owners of a parcel of land. + + Simulator parcel is in + The parcels region specific local ID - - + + + Return objects from a parcel + + Simulator parcel is in + The parcels region specific local ID + the type of objects to return, + A list containing object owners s to return - - + + + Subdivide (split) a parcel + + + + + + - - + + + Join two parcels of land creating a single parcel + + + + + + - - + + + Get a parcels LocalID + + Simulator parcel is in + Vector3 position in simulator (Z not used) + 0 on failure, or parcel LocalID on success. + A call to Parcels.RequestAllSimParcels is required to populate map and + dictionary. - - + + + Terraform (raise, lower, etc) an area or whole parcel of land + + Simulator land area is in. + LocalID of parcel, or -1 if using bounding box + From Enum, Raise, Lower, Level, Smooth, Etc. + Size of area to modify + true on successful request sent. + Settings.STORE_LAND_PATCHES must be true, + Parcel information must be downloaded using RequestAllSimParcels() - - + + + Terraform (raise, lower, etc) an area or whole parcel of land + + Simulator land area is in. + west border of area to modify + south border of area to modify + east border of area to modify + north border of area to modify + From Enum, Raise, Lower, Level, Smooth, Etc. + Size of area to modify + true on successful request sent. + Settings.STORE_LAND_PATCHES must be true, + Parcel information must be downloaded using RequestAllSimParcels() - - + + + Terraform (raise, lower, etc) an area or whole parcel of land + + Simulator land area is in. + LocalID of parcel, or -1 if using bounding box + west border of area to modify + south border of area to modify + east border of area to modify + north border of area to modify + From Enum, Raise, Lower, Level, Smooth, Etc. + Size of area to modify + How many meters + or - to lower, 1 = 1 meter + true on successful request sent. + Settings.STORE_LAND_PATCHES must be true, + Parcel information must be downloaded using RequestAllSimParcels() - - + + + Terraform (raise, lower, etc) an area or whole parcel of land + + Simulator land area is in. + LocalID of parcel, or -1 if using bounding box + west border of area to modify + south border of area to modify + east border of area to modify + north border of area to modify + From Enum, Raise, Lower, Level, Smooth, Etc. + Size of area to modify + How many meters + or - to lower, 1 = 1 meter + Height at which the terraform operation is acting at - - + + + Sends a request to the simulator to return a list of objects owned by specific owners + + Simulator local ID of parcel + Owners, Others, Etc + List containing keys of avatars objects to select; + if List is null will return Objects of type selectType + Response data is returned in the event - - + + + Eject and optionally ban a user from a parcel + + target key of avatar to eject + true to also ban target - - + + + Freeze or unfreeze an avatar over your land + + target key to freeze + true to freeze, false to unfreeze - - + + + Abandon a parcel of land + + Simulator parcel is in + Simulator local ID of parcel - - + + + Requests the UUID of the parcel in a remote region at a specified location + + Location of the parcel in the remote region + Remote region handle + Remote region UUID + If successful UUID of the remote parcel, UUID.Zero otherwise - - + + + Retrieves information on resources used by the parcel + + UUID of the parcel + Should per object resource usage be requested + Callback invoked when the request is complete - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + Raises the event - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + Raises the event - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + Raises the event - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + Raises the event - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + Raises the event - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data + Raises the event - - + + Contains a parcels dwell data returned from the simulator in response to an - - + + Get the global ID of the parcel - - + + Get the simulator specific ID of the parcel - - + + Get the calculated dwell - - + + + Construct a new instance of the ParcelDwellReplyEventArgs class + + The global ID of the parcel + The simulator specific ID of the parcel + The calculated dwell for the parcel - - + + Contains basic parcel information data returned from the + simulator in response to an request - - + + Get the object containing basic parcel info - - + + + Construct a new instance of the ParcelInfoReplyEventArgs class + + The object containing basic parcel info - - + + Contains basic parcel information data returned from the simulator in response to an request - - + + Get the simulator the parcel is located in - - + + Get the object containing the details + If Result is NoData, this object will not contain valid data - - + + Get the result of the request - - + + Get the number of primitieves your agent is + currently selecting and or sitting on in this parcel - - + + Get the user assigned ID used to correlate a request with + these results - - + + TODO: - - + + + Construct a new instance of the ParcelPropertiesEventArgs class + + The object containing the details + The object containing the details + The result of the request + The number of primitieves your agent is + currently selecting and or sitting on in this parcel + The user assigned ID used to correlate a request with + these results + TODO: - - + + Contains blacklist and whitelist data returned from the simulator in response to an request - - + + Get the simulator the parcel is located in - - + + Get the user assigned ID used to correlate a request with + these results - - + + Get the simulator specific ID of the parcel - - + + TODO: - - + + Get the list containing the white/blacklisted agents for the parcel - - + + + Construct a new instance of the ParcelAccessListReplyEventArgs class + + The simulator the parcel is located in + The user assigned ID used to correlate a request with + these results + The simulator specific ID of the parcel + TODO: + The list containing the white/blacklisted agents for the parcel - - + + Contains blacklist and whitelist data returned from the + simulator in response to an request - - + + Get the simulator the parcel is located in - - + + Get the list containing prim ownership counts - - + + + Construct a new instance of the ParcelObjectOwnersReplyEventArgs class + + The simulator the parcel is located in + The list containing prim ownership counts - - + + Contains the data returned when all parcel data has been retrieved from a simulator - - + + Get the simulator the parcel data was retrieved from - - + + A dictionary containing the parcel data where the key correlates to the ParcelMap entry - - + + Get the multidimensional array containing a x,y grid mapped + to each 64x64 parcel's LocalID. - - + + + Construct a new instance of the SimParcelsDownloadedEventArgs class + + The simulator the parcel data was retrieved from + The dictionary containing the parcel data + The multidimensional array containing a x,y grid mapped + to each 64x64 parcel's LocalID. - - + + Contains the data returned when a request - - + + Get the simulator the parcel data was retrieved from - - + + Get the list of primitive IDs - - + + true if the list is clean and contains the information + only for a given request - - + + + Construct a new instance of the ForceSelectObjectsReplyEventArgs class + + The simulator the parcel data was retrieved from + The list of primitive IDs + true if the list is clean and contains the information + only for a given request - - + + Contains data when the media data for a parcel the avatar is on changes - - + + Get the simulator the parcel media data was updated in - - + + Get the updated media information - - + + + Construct a new instance of the ParcelMediaUpdateReplyEventArgs class + + the simulator the parcel media data was updated in + The updated media information - - + + Contains the media command for a parcel the agent is currently on - - + + Get the simulator the parcel media command was issued in - - + + - - + + - - + + Get the media command that was sent - - + + - - + + + Construct a new instance of the ParcelMediaCommandEventArgs class + + The simulator the parcel media command was issued in + + + The media command that was sent + - - + + + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + + + + + - - + + + + - - + + - - + + - - + + - - + + - - + + + + + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + - - + + + + + + - - + + + + + + - - + + + + + + + - - + + + + - - + + + + + + - - + + + + + + - - + + + + + - - + + + Class for controlling various system settings. + + Some values are readonly because they affect things that + happen when the GridClient object is initialized, so changing them at + runtime won't do any good. Non-readonly values may affect things that + happen at login or dynamically - - + + Main grid login server - - + + Beta grid login server - - + + The relative directory where external resources are kept - - + + Login server to connect to - - + + IP Address the client will bind to - - + + Use XML-RPC Login or LLSD Login, default is XML-RPC Login - - + + + Maximum number of HTTP connections to open to a particular endpoint. + + + An endpoint is defined as a commbination of network address and port. This is used for Caps. + This is a static variable which applies to all instances. + - - + + + InventoryManager requests inventory information on login, + GridClient initializes an Inventory store for main inventory. + - - + + + InventoryManager requests library information on login, + GridClient initializes an Inventory store for the library. + - - + + + Use Caps for fetching inventory where available + - - + + Number of milliseconds before an asset transfer will time + out - - + + Number of milliseconds before a teleport attempt will time + out - - + + Number of milliseconds before NetworkManager.Logout() will + time out - - + + Number of milliseconds before a CAPS call will time out + Setting this too low will cause web requests time out and + possibly retry repeatedly - - + + Number of milliseconds for xml-rpc to timeout - - + + Milliseconds before a packet is assumed lost and resent - - + + Milliseconds without receiving a packet before the + connection to a simulator is assumed lost - - + + Milliseconds to wait for a simulator info request through + the grid interface - - + + Number of milliseconds between sending pings to each sim - - + + Number of milliseconds between sending camera updates - - + + Number of milliseconds between updating the current + positions of moving, non-accelerating and non-colliding objects - - + + Millisecond interval between ticks, where all ACKs are + sent out and the age of unACKed packets is checked - - + + The initial size of the packet inbox, where packets are + stored before processing - - + + Maximum size of packet that we want to send over the wire - - + + The maximum value of a packet sequence number before it + rolls over back to one - - + + The maximum size of the sequence number archive, used to + check for resent and/or duplicate packets - - + + Maximum number of queued ACKs to be sent before SendAcks() + is forced - - + + Network stats queue length (seconds) - - + + + Primitives will be reused when falling in/out of interest list (and shared between clients) + prims returning to interest list do not need re-requested + Helps also in not re-requesting prim.Properties for code that checks for a Properties == null per client + - - + + + Pool parcel data between clients (saves on requesting multiple times when all clients may need it) + - - + + + How long to preserve cached data when no client is connected to a simulator + The reason for setting it to something like 2 minutes is in case a client + is running back and forth between region edges or a sim is comming and going + + + + Enable/disable storing terrain heightmaps in the + TerrainManager - - + + Enable/disable sending periodic camera updates - - + + Enable/disable automatically setting agent appearance at + login and after sim crossing - - + + Enable/disable automatically setting the bandwidth throttle + after connecting to each simulator + The default throttle uses the equivalent of the maximum + bandwidth setting in the official client. If you do not set a + throttle your connection will by default be throttled well below + the minimum values and you may experience connection problems - - + + Enable/disable the sending of pings to monitor lag and + packet loss - - + + Should we connect to multiple sims? This will allow + viewing in to neighboring simulators and sim crossings + (Experimental) - - + + If true, all object update packets will be decoded in to + native objects. If false, only updates for our own agent will be + decoded. Registering an event handler will force objects for that + type to always be decoded. If this is disabled the object tracking + will have missing or partial prim and avatar information - - + + If true, when a cached object check is received from the + server the full object info will automatically be requested - - + + Whether to establish connections to HTTP capabilities + servers for simulators - - + + Whether to decode sim stats - - + + The capabilities servers are currently designed to + periodically return a 502 error which signals for the client to + re-establish a connection. Set this to true to log those 502 errors - - + + If true, any reference received for a folder or item + the library is not aware of will automatically be fetched - - + + If true, and SEND_AGENT_UPDATES is true, + AgentUpdate packets will continuously be sent out to give the bot + smoother movement and autopiloting - - + + If true, currently visible avatars will be stored + in dictionaries inside Simulator.ObjectAvatars. + If false, a new Avatar or Primitive object will be created + each time an object update packet is received - - + + If true, currently visible avatars will be stored + in dictionaries inside Simulator.ObjectPrimitives. + If false, a new Avatar or Primitive object will be created + each time an object update packet is received - - + + If true, position and velocity will periodically be + interpolated (extrapolated, technically) for objects and + avatars that are being tracked by the library. This is + necessary to increase the accuracy of speed and position + estimates for simulated objects - - + + + If true, utilization statistics will be tracked. There is a minor penalty + in CPU time for enabling this option. + - - + + If true, parcel details will be stored in the + Simulator.Parcels dictionary as they are received - - + + + If true, an incoming parcel properties reply will automatically send + a request for the parcel access list + - - + + + if true, an incoming parcel properties reply will automatically send + a request for the traffic count. + - - + + + If true, images, and other assets downloaded from the server + will be cached in a local directory + - - + + Path to store cached texture data - - + + Maximum size cached files are allowed to take on disk (bytes) - - + + Default color used for viewer particle effects - - + + Cost of uploading an asset + Read-only since this value is dynamically fetched at login - - + + Maximum number of times to resend a failed packet - - + + Throttle outgoing packet rate - - + + UUID of a texture used by some viewers to indentify type of client used - - + + + Download textures using GetTexture capability when available + - - + + The maximum number of concurrent texture downloads allowed + Increasing this number will not necessarily increase texture retrieval times due to + simulator throttles - - + + + The Refresh timer inteval is used to set the delay between checks for stalled texture downloads + + This is a static variable which applies to all instances - - + + + Textures taking longer than this value will be flagged as timed out and removed from the pipeline + - - + + + Get or set the minimum log level to output to the console by default + + If the library is not compiled with DEBUG defined and this level is set to DEBUG + You will get no output on the console. This behavior can be overriden by creating + a logger configuration file for log4net + - - + + Attach avatar names to log messages - - + + Log packet retransmission info - - + + Log disk cache misses and other info - - + + Constructor + Reference to a GridClient object - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + + Simulator (region) properties + - - + + No flags set - - + + Agents can take damage and be killed - - + + Landmarks can be created here - - + + Home position can be set in this sim - - + + Home position is reset when an agent teleports away - - + + Sun does not move - - + + No object, land, etc. taxes - - + + Disable heightmap alterations (agents can still plant + foliage) - - + + Land cannot be released, sold, or purchased - - + + All content is wiped nightly - - + + Unknown: Related to the availability of an overview world map tile.(Think mainland images when zoomed out.) - - + + Unknown: Related to region debug flags. Possibly to skip processing of agent interaction with world. - - + + Region does not update agent prim interest lists. Internal debugging option. - - + + No collision detection for non-agent objects - - + + No scripts are ran - - + + All physics processing is turned off - - + + Region can be seen from other regions on world map. (Legacy world map option?) - - + + Region can be seen from mainland on world map. (Legacy world map option?) - - + + Agents not explicitly on the access list can visit the region. - - + + Traffic calculations are not run across entire region, overrides parcel settings. - - + + Flight is disabled (not currently enforced by the sim) - - + + Allow direct (p2p) teleporting - - + + Estate owner has temporarily disabled scripting - - + + Restricts the usage of the LSL llPushObject function, applies to whole region. - - + + Deny agents with no payment info on file - - + + Deny agents with payment info on file - - + + Deny agents who have made a monetary transaction - - + + Parcels within the region may be joined or divided by anyone, not just estate owners/managers. - - + + Abuse reports sent from within this region are sent to the estate owner defined email. - - + + Region is Voice Enabled - - + + Removes the ability from parcel owners to set their parcels to show in search. - - + + Deny agents who have not been age verified from entering the region. - - + + + Region protocol flags + - - + + Nothing special - - + + Region supports Server side Appearance - - + + Viewer supports Server side Appearance - - + + + Access level for a simulator + - - + + Unknown or invalid access level - - + + Trial accounts allowed - - + + PG rating - - + + Mature rating - - + + Adult rating - - + + Simulator is offline - - + + Simulator does not exist - - + + + + - - + + + Simulator Statistics + - - + + Total number of packets sent by this simulator to this agent - - + + Total number of packets received by this simulator to this agent - - + + Total number of bytes sent by this simulator to this agent - - + + Total number of bytes received by this simulator to this agent - - + + Time in seconds agent has been connected to simulator - - + + Total number of packets that have been resent - - + + Total number of resent packets recieved - - + + Total number of pings sent to this simulator by this agent - - + + Total number of ping replies sent to this agent by this simulator - - + + + Incoming bytes per second + + It would be nice to have this claculated on the fly, but + this is far, far easier - - + + + Outgoing bytes per second + + It would be nice to have this claculated on the fly, but + this is far, far easier - - + + Time last ping was sent - - + + ID of last Ping sent - - + + - - + + - - + + Current time dilation of this simulator - - + + Current Frames per second of simulator - - + + Current Physics frames per second of simulator - - + + - - + + - - + + - - + + - - + + + + + - - + + - - + + - - + + Total number of objects Simulator is simulating - - + + Total number of Active (Scripted) objects running - - + + Number of agents currently in this simulator - - + + Number of agents in neighbor simulators - - + + Number of Active scripts running in this simulator - - + + - - + + - - + + - - + + Number of downloads pending - - + + Number of uploads pending - - + + - - + + - - + + Number of local uploads pending - - + + Unacknowledged bytes in queue - - + + A public reference to the client that this Simulator object + is attached to - - + + A Unique Cache identifier for this simulator - - + + The capabilities for this simulator - - + + - - + + The current version of software this simulator is running - - + + - - + + A 64x64 grid of parcel coloring values. The values stored + in this array are of the type - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + true if your agent has Estate Manager rights on this region - - + + - - + + - - + + - - + + Statistics information for this simulator and the + connection to the simulator, calculated by the simulator itself + and the library - - + + The regions Unique ID - - + + The physical data center the simulator is located + Known values are: + + Dallas + Chandler + SF + + - - + + The CPU Class of the simulator + Most full mainland/estate sims appear to be 5, + Homesteads and Openspace appear to be 501 - - + + The number of regions sharing the same CPU as this one + "Full Sims" appear to be 1, Homesteads appear to be 4 - - + + The billing product name + Known values are: + + Mainland / Full Region (Sku: 023) + Estate / Full Region (Sku: 024) + Estate / Openspace (Sku: 027) + Estate / Homestead (Sku: 029) + Mainland / Homestead (Sku: 129) (Linden Owned) + Mainland / Linden Homes (Sku: 131) + + - - + + The billing product SKU + Known values are: + + 023 Mainland / Full Region + 024 Estate / Full Region + 027 Estate / Openspace + 029 Estate / Homestead + 129 Mainland / Homestead (Linden Owned) + 131 Linden Homes / Full Region + + - - + + + Flags indicating which protocols this region supports + - - + + The current sequence number for packets sent to this + simulator. Must be Interlocked before modifying. Only + useful for applications manipulating sequence numbers - - + + + A thread-safe dictionary containing avatars in a simulator + - - + + + A thread-safe dictionary containing primitives in a simulator + - - + + + Provides access to an internal thread-safe dictionary containing parcel + information found in this simulator + - - + + + Provides access to an internal thread-safe multidimensional array containing a x,y grid mapped + to each 64x64 parcel's LocalID. + - - + + + Checks simulator parcel map to make sure it has downloaded all data successfully + + true if map is full (contains no 0's) - - + + + Is it safe to send agent updates to this sim + AgentMovementComplete message received + - - + + The IP address and port of the server - - + + Whether there is a working connection to the simulator or + not - - + + Coarse locations of avatars in this simulator - - + + AvatarPositions key representing TrackAgent target - - + + Indicates if UDP connection to the sim is fully established - - + + Used internally to track sim disconnections - - + + Event that is triggered when the simulator successfully + establishes a connection - - + + Whether this sim is currently connected or not. Hooked up + to the property Connected - - + + Coarse locations of avatars in this simulator - - + + AvatarPositions key representing TrackAgent target - - + + Sequence numbers of packets we've received + (for duplicate checking) - - + + Packets we sent out that need ACKs from the simulator - - + + Sequence number for pause/resume - - + + Indicates if UDP connection to the sim is fully established - - + + + + + Reference to the GridClient object + IPEndPoint of the simulator + handle of the simulator - - + + + Called when this Simulator object is being destroyed + - - + + + Attempt to connect to this simulator + + Whether to move our agent in to this sim or not + True if the connection succeeded or connection status is + unknown, false if there was a failure - - + + + Initiates connection to the simulator + + Should we block until ack for this packet is recieved - - + + + Disconnect from this simulator + - - + + + Instructs the simulator to stop sending update (and possibly other) packets + - - + + + Instructs the simulator to resume sending update packets (unpause) + - - + + + Retrieve the terrain height at a given coordinate + + Sim X coordinate, valid range is from 0 to 255 + Sim Y coordinate, valid range is from 0 to 255 + The terrain height at the given point if the + lookup was successful, otherwise 0.0f + True if the lookup was successful, otherwise false - - + + + Sends a packet + + Packet to be sent - - + + + + - - + + + Returns Simulator Name as a String + + - - + + + + + - - + + + + + + - - + + + Sends out pending acknowledgements + + Number of ACKs sent - - + + + Resend unacknowledged packets + - - + + + Simulator handle + - - + + + Number of GridClients using this datapool + - - + + + Time that the last client disconnected from the simulator + - - + + + The cache of prims used and unused in this simulator + - - + + + Shared parcel info only when POOL_PARCEL_DATA == true + - - + + + + - - + + The event subscribers, null of no subscribers - - + + Raises the AttachedSound Event + A AttachedSoundEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + Raised when the simulator sends us data containing + sound - - + + The event subscribers, null of no subscribers - - + + Raises the AttachedSoundGainChange Event + A AttachedSoundGainChangeEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + Raised when the simulator sends us data containing + ... - - + + The event subscribers, null of no subscribers - - + + Raises the SoundTrigger Event + A SoundTriggerEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + Raised when the simulator sends us data containing + ... - - + + The event subscribers, null of no subscribers - - + + Raises the PreloadSound Event + A PreloadSoundEventArgs object containing + the data sent from the simulator - - + + Thread sync lock object - - + + Raised when the simulator sends us data containing + ... - - + + + Construct a new instance of the SoundManager class, used for playing and receiving + sound assets + + A reference to the current GridClient instance - - + + + Plays a sound in the current region at full volume from avatar position + + UUID of the sound to be played - - + + + Plays a sound in the current region at full volume + + UUID of the sound to be played. + position for the sound to be played at. Normally the avatar. - - + + + Plays a sound in the current region + + UUID of the sound to be played. + position for the sound to be played at. Normally the avatar. + volume of the sound, from 0.0 to 1.0 - - + + + Plays a sound in the specified sim + + UUID of the sound to be played. + UUID of the sound to be played. + position for the sound to be played at. Normally the avatar. + volume of the sound, from 0.0 to 1.0 - - + + + Play a sound asset + + UUID of the sound to be played. + handle id for the sim to be played in. + position for the sound to be played at. Normally the avatar. + volume of the sound, from 0.0 to 1.0 - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Process an incoming packet and raise the appropriate events + The sender + The EventArgs object containing the packet data - - + + Provides data for the event + The event occurs when the simulator sends + the sound data which emits from an agents attachment + + The following code example shows the process to subscribe to the event + and a stub to handle the data passed from the simulator + + // Subscribe to the AttachedSound event + Client.Sound.AttachedSound += Sound_AttachedSound; + + // process the data raised in the event here + private void Sound_AttachedSound(object sender, AttachedSoundEventArgs e) + { + // ... Process AttachedSoundEventArgs here ... + } + + - - + + Simulator where the event originated - - + + Get the sound asset id - - + + Get the ID of the owner - - + + Get the ID of the Object - - + + Get the volume level - - + + Get the - - + + + Construct a new instance of the SoundTriggerEventArgs class + + Simulator where the event originated + The sound asset id + The ID of the owner + The ID of the object + The volume level + The - - + + Provides data for the event + The event occurs when an attached sound + changes its volume level - - + + Simulator where the event originated - - + + Get the ID of the Object - - + + Get the volume level - - + + + Construct a new instance of the AttachedSoundGainChangedEventArgs class + + Simulator where the event originated + The ID of the Object + The new volume level - - + + Provides data for the event + The event occurs when the simulator forwards + a request made by yourself or another agent to play either an asset sound or a built in sound + + Requests to play sounds where the is not one of the built-in + will require sending a request to download the sound asset before it can be played + + + The following code example uses the , + and + properties to display some information on a sound request on the window. + + // subscribe to the event + Client.Sound.SoundTrigger += Sound_SoundTrigger; + + // play the pre-defined BELL_TING sound + Client.Sound.SendSoundTrigger(Sounds.BELL_TING); + + // handle the response data + private void Sound_SoundTrigger(object sender, SoundTriggerEventArgs e) + { + Console.WriteLine("{0} played the sound {1} at volume {2}", + e.OwnerID, e.SoundID, e.Gain); + } + + - - + + Simulator where the event originated - - + + Get the sound asset id - - + + Get the ID of the owner - - + + Get the ID of the Object - - + + Get the ID of the objects parent - - + + Get the volume level - - + + Get the regionhandle - - + + Get the source position - - + + + Construct a new instance of the SoundTriggerEventArgs class + + Simulator where the event originated + The sound asset id + The ID of the owner + The ID of the object + The ID of the objects parent + The volume level + The regionhandle + The source position - - + + Provides data for the event + The event occurs when the simulator sends + the appearance data for an avatar + + The following code example uses the and + properties to display the selected shape of an avatar on the window. + + // subscribe to the event + Client.Avatars.AvatarAppearance += Avatars_AvatarAppearance; + + // handle the data when the event is raised + void Avatars_AvatarAppearance(object sender, AvatarAppearanceEventArgs e) + { + Console.WriteLine("The Agent {0} is using a {1} shape.", e.AvatarID, (e.VisualParams[31] > 0) : "male" ? "female") + } + + - - + + Simulator where the event originated - - + + Get the sound asset id - - + + Get the ID of the owner - - + + Get the ID of the Object - - + + + Construct a new instance of the PreloadSoundEventArgs class + + Simulator where the event originated + The sound asset id + The ID of the owner + The ID of the object - - + + + pre-defined built in sounds + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + coins - - + + cash register bell - - + + - - + + - - + + rubber - - + + plastic - - + + flesh - - + + wood splintering? - - + + glass break - - + + metal clunk - - + + whoosh - - + + shake - - + + - - + + ding - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + A dictionary containing all pre-defined sounds + + A dictionary containing the pre-defined sounds, + where the key is the sounds ID, and the value is a string + containing a name to identify the purpose of the sound - - + + X position of this patch + + + Y position of this patch - - + + A 16x16 array of floats holding decompressed layer data - - + + + Creates a LayerData packet for compressed land data given a full + simulator heightmap and an array of indices of patches to compress + + A 256 * 256 array of floating point values + specifying the height at each meter in the simulator + Array of indexes in the 16x16 grid of patches + for this simulator. For example if 1 and 17 are specified, patches + x=1,y=0 and x=1,y=1 are sent + - - + + + Add a patch of terrain to a BitPacker + + BitPacker to write the patch to + Heightmap of the simulator, must be a 256 * + 256 float array + X offset of the patch to create, valid values are + from 0 to 15 + Y offset of the patch to create, valid values are + from 0 to 15 - - + + The event subscribers. null if no subcribers - - + + Raises the LandPatchReceived event + A LandPatchReceivedEventArgs object containing the + data returned from the simulator - - + + Thread sync lock object - - + + Raised when the simulator responds sends - - + + + Default constructor + + - - + + Simulator from that sent tha data - - + + Sim coordinate of the patch - - + + Sim coordinate of the patch - - + + Size of tha patch - - + + Heightmap for the patch - - + + + The current status of a texture request as it moves through the pipeline or final result of a texture request. + - - + + The initial state given to a request. Requests in this state + are waiting for an available slot in the pipeline - - + + A request that has been added to the pipeline and the request packet + has been sent to the simulator - - + + A request that has received one or more packets back from the simulator - - + + A request that has received all packets back from the simulator - - + + A request that has taken longer than + to download OR the initial packet containing the packet information was never received - - + + The texture request was aborted by request of the agent - - + + The simulator replied to the request that it was not able to find the requested texture - - + + + A callback fired to indicate the status or final state of the requested texture. For progressive + downloads this will fire each time new asset data is returned from the simulator. + + The indicating either Progress for textures not fully downloaded, + or the final result of the request after it has been processed through the TexturePipeline + The object containing the Assets ID, raw data + and other information. For progressive rendering the will contain + the data from the beginning of the file. For failed, aborted and timed out requests it will contain + an empty byte array. - - + + + Texture request download handler, allows a configurable number of download slots which manage multiple + concurrent texture downloads from the + + This class makes full use of the internal + system for full texture downloads. - - + + + A request task containing information and status of a request as it is processed through the + - - + + The current which identifies the current status of the request - - + + The Unique Request ID, This is also the Asset ID of the texture being requested - - + + The slot this request is occupying in the threadpoolSlots array - - + + The ImageType of the request. - - + + The callback to fire when the request is complete, will include + the and the + object containing the result data - - + + If true, indicates the callback will be fired whenever new data is returned from the simulator. + This is used to progressively render textures as portions of the texture are received. - - + + An object that maintains the data of an request thats in-process. - - + + A dictionary containing all pending and in-process transfer requests where the Key is both the RequestID + and also the Asset Texture ID, and the value is an object containing the current state of the request and also + the asset data as it is being re-assembled - - + + Holds the reference to the client object - - + + Maximum concurrent texture requests allowed at a time - - + + An array of objects used to manage worker request threads - - + + An array of worker slots which shows the availablity status of the slot - - + + The primary thread which manages the requests. - - + + true if the TexturePipeline is currently running - - + + A synchronization object used by the primary thread - - + + A refresh timer used to increase the priority of stalled requests - - + + Current number of pending and in-process transfers - - + + + Default constructor, Instantiates a new copy of the TexturePipeline class + + Reference to the instantiated object - - + + + Initialize callbacks required for the TexturePipeline to operate + - - + + + Shutdown the TexturePipeline and cleanup any callbacks or transfers + - - + + + Request a texture asset from the simulator using the system to + manage the requests and re-assemble the image from the packets received from the simulator + + The of the texture asset to download + The of the texture asset. + Use for most textures, or for baked layer texture assets + A float indicating the requested priority for the transfer. Higher priority values tell the simulator + to prioritize the request before lower valued requests. An image already being transferred using the can have + its priority changed by resending the request with the new priority value + Number of quality layers to discard. + This controls the end marker of the data sent + The packet number to begin the request at. A value of 0 begins the request + from the start of the asset texture + The callback to fire when the image is retrieved. The callback + will contain the result of the request and the texture asset data + If true, the callback will be fired for each chunk of the downloaded image. + The callback asset parameter will contain all previously received chunks of the texture asset starting + from the beginning of the request - - + + + Sends the actual request packet to the simulator + + The image to download + Type of the image to download, either a baked + avatar texture or a normal texture + Priority level of the download. Default is + 1,013,000.0f + Number of quality layers to discard. + This controls the end marker of the data sent + Packet number to start the download at. + This controls the start marker of the data sent + Sending a priority of 0 and a discardlevel of -1 aborts + download - - + + + Cancel a pending or in process texture request + + The texture assets unique ID - - + + + Master Download Thread, Queues up downloads in the threadpool + - - + + + The worker thread that sends the request and handles timeouts + + A object containing the request details - - + + + Handle responses from the simulator that tell us a texture we have requested is unable to be located + or no longer exists. This will remove the request from the pipeline and free up a slot if one is in use + + The sender + The EventArgs object containing the packet data - - + + + Handles the remaining Image data that did not fit in the initial ImageData packet + + The sender + The EventArgs object containing the packet data - - + + + Handle the initial ImageDataPacket sent from the simulator + + The sender + The EventArgs object containing the packet data - - + + + + - - + + + Initialize the UDP packet handler in server mode + + Port to listening for incoming UDP packets on - - + + + Initialize the UDP packet handler in client mode + + Remote UDP server to connect to - - + + + + - - + + + + - - + + + + - - + + + + - - + + - - + + - - + + - - + + + Operation to apply when applying color to texture + - - + + + Information needed to translate visual param value to RGBA color + - - + + + Construct VisualColorParam + + Operation to apply when applying color to texture + Colors - - + + + Represents alpha blending and bump infor for a visual parameter + such as sleive length + - - + + Stregth of the alpha to apply - - + + File containing the alpha channel - - + + Skip blending if parameter value is 0 - - + + Use miltiply insted of alpha blending - - + + + Create new alhpa information for a visual param + + Stregth of the alpha to apply + File containing the alpha channel + Skip blending if parameter value is 0 + Use miltiply insted of alpha blending - - + + + A single visual characteristic of an avatar mesh, such as eyebrow height + - - + + Index of this visual param - - + + Internal name - - + + Group ID this parameter belongs to - - + + Name of the wearable this parameter belongs to - - + + Displayable label of this characteristic - - + + Displayable label for the minimum value of this characteristic - - + + Displayable label for the maximum value of this characteristic - - + + Default value - - + + Minimum value - - + + Maximum value - - + + Is this param used for creation of bump layer? - - + + Alpha blending/bump info - - + + Color information - - + + Array of param IDs that are drivers for this parameter - - + + + Set all the values through the constructor + + Index of this visual param + Internal name + + + Displayable label of this characteristic + Displayable label for the minimum value of this characteristic + Displayable label for the maximum value of this characteristic + Default value + Minimum value + Maximum value + Is this param used for creation of bump layer? + Array of param IDs that are drivers for this parameter + Alpha blending/bump info + Color information - - + + + Holds the Params array of all the avatar appearance parameters + - - + + + Base class for all Asset types + - - + + A byte array containing the raw asset data - - + + True if the asset it only stored on the server temporarily - - + + A unique ID - - + + The assets unique ID - - + + + The "type" of asset, Notecard, Animation, etc + - - + + + Construct a new Asset object + - - + + + Construct a new Asset object + + A unique specific to this asset + A byte array containing the raw asset data - - + + + Regenerates the AssetData byte array from the properties + of the derived class. + - - + + + Decodes the AssetData, placing it in appropriate properties of the derived + class. + + True if the asset decoding succeeded, otherwise false - - + + + Constants for the archiving module + - - + + + The location of the archive control file + - - + + + Path for the assets held in an archive + - - + + + Path for the prims file + - - + + + Path for terrains. Technically these may be assets, but I think it's quite nice to split them out. + - - + + + Path for region settings. + - - + + + Path for region settings. + - - + + + The character the separates the uuid from extension information in an archived asset filename + - - + + + Extensions used for asset types in the archive + - - + + + Archives assets + - - + + + Archive assets + - - + + + Archive the assets given to this archiver to the given archive. + + - - + + + Write an assets metadata file to the given archive + + - - + + + Write asset data files to the given archive + + - - + + + Temporary code to do the bare minimum required to read a tar archive for our purposes + - - + + + Binary reader for the underlying stream + - - + + + Used to trim off null chars + - - + + + Used to trim off space chars + - - + + + Generate a tar reader which reads from the given stream. + + - - + + + Read the next entry in the tar file. + + + + the data for the entry. Returns null if there are no more entries - - + + + Read the next 512 byte chunk of data as a tar header. + + A tar header struct. null if we have reached the end of the archive. - - + + + Read data following a header + + + - - + + + Convert octal bytes to a decimal representation + + + + + - - + + + Temporary code to produce a tar archive in tar v7 format + - - + + + Binary writer for the underlying stream + - - + + + Write a directory entry to the tar archive. We can only handle one path level right now! + + - - + + + Write a file to the tar archive + + + - - + + + Write a file to the tar archive + + + - - + + + Finish writing the raw tar archive data to a stream. The stream will be closed on completion. + - - + + + Write a particular entry + + + + - - + + + Represents an Animation + - - + + Override the base classes AssetType - - + + Default Constructor - - + + + Construct an Asset object of type Animation + + A unique specific to this asset + A byte array containing the raw asset data - - + + + Represents an that represents an avatars body ie: Hair, Etc. + - - + + Override the base classes AssetType - - + + Initializes a new instance of an AssetBodyPart object - - + + Initializes a new instance of an AssetBodyPart object with parameters + A unique specific to this asset + A byte array containing the raw asset data - - + + + Represents a Callingcard with AvatarID and Position vector + - - + + Override the base classes AssetType - - + + UUID of the Callingcard target avatar - - + + Construct an Asset of type Callingcard - - + + + Construct an Asset object of type Callingcard + + A unique specific to this asset + A byte array containing the raw asset data - - + + + Constuct an asset of type Callingcard + + UUID of the target avatar - - + + + Encode the raw contents of a string with the specific Callingcard format + - - + + + Decode the raw asset data, populating the AvatarID and Position + + true if the AssetData was successfully decoded to a UUID and Vector - - + + + Represents an that can be worn on an avatar + such as a Shirt, Pants, etc. + - - + + Override the base classes AssetType - - + + Initializes a new instance of an AssetScriptBinary object - - + + Initializes a new instance of an AssetScriptBinary object with parameters + A unique specific to this asset + A byte array containing the raw asset data - - + + + Type of gesture step + - - + + + Base class for gesture steps + - - + + + Retururns what kind of gesture step this is + - - + + + Describes animation step of a gesture + - - + + + Returns what kind of gesture step this is + - - + + + If true, this step represents start of animation, otherwise animation stop + - - + + + Animation asset + - - + + + Animation inventory name + - - + + + Describes sound step of a gesture + - - + + + Returns what kind of gesture step this is + - - + + + Sound asset + - - + + + Sound inventory name + - - + + + Describes sound step of a gesture + - - + + + Returns what kind of gesture step this is + - - + + + Text to output in chat + - - + + + Describes sound step of a gesture + - - + + + Returns what kind of gesture step this is + - - + + + If true in this step we wait for all animations to finish + - - + + + If true gesture player should wait for the specified amount of time + - - + + + Time in seconds to wait if WaitForAnimation is false + - - + + + Describes the final step of a gesture + - - + + + Returns what kind of gesture step this is + - - + + + Represents a sequence of animations, sounds, and chat actions + - - + + + Returns asset type + - - + + + Keyboard key that triggers the gestyre + - - + + + Modifier to the trigger key + - - + + + String that triggers playing of the gesture sequence + - - + + + Text that replaces trigger in chat once gesture is triggered + - - + + + Sequence of gesture steps + - - + + + Constructs guesture asset + - - + + + Constructs guesture asset + + A unique specific to this asset + A byte array containing the raw asset data - - + + + Encodes gesture asset suitable for uplaod + - - + + + Decodes gesture assset into play sequence + + true if the asset data was decoded successfully - - + + + Represents a Landmark with RegionID and Position vector + - - + + Override the base classes AssetType - - + + UUID of the Landmark target region - - + + Local position of the target - - + + Construct an Asset of type Landmark - - + + + Construct an Asset object of type Landmark + + A unique specific to this asset + A byte array containing the raw asset data - - + + + Encode the raw contents of a string with the specific Landmark format + - - + + + Decode the raw asset data, populating the RegionID and Position + + true if the AssetData was successfully decoded to a UUID and Vector - - + + + Represents Mesh asset + - - + + Override the base classes AssetType - - + + + Decoded mesh data + - - + + Initializes a new instance of an AssetMesh object - - + + Initializes a new instance of an AssetMesh object with parameters + A unique specific to this asset + A byte array containing the raw asset data - - + + + TODO: Encodes Collada file into LLMesh format + - - + + + Decodes mesh asset. See + to furter decode it for rendering + true - - + + + Represents an Animation + - - + + Override the base classes AssetType - - + + Default Constructor - - + + + Construct an Asset object of type Animation + + Asset type + A unique specific to this asset + A byte array containing the raw asset data - - + + + Represents a string of characters encoded with specific formatting properties + - - + + Override the base classes AssetType - - + + A text string containing main text of the notecard - - + + List of s embedded on the notecard - - + + Construct an Asset of type Notecard - - + + + Construct an Asset object of type Notecard + + A unique specific to this asset + A byte array containing the raw asset data - - + + + Encode the raw contents of a string with the specific Linden Text properties + - - + + + Decode the raw asset data including the Linden Text properties + + true if the AssetData was successfully decoded - - + + + A linkset asset, containing a parent primitive and zero or more children + - - + + + Only used internally for XML serialization/deserialization + - - + + Override the base classes AssetType - - + + Initializes a new instance of an AssetPrim object - - + + + Initializes a new instance of an AssetPrim object + + A unique specific to this asset + A byte array containing the raw asset data - - + + + + - - + + + + + - - + + + The deserialized form of a single primitive in a linkset asset + - - + + + Represents an AssetScriptBinary object containing the + LSO compiled bytecode of an LSL script + - - + + Override the base classes AssetType - - + + Initializes a new instance of an AssetScriptBinary object - - + + Initializes a new instance of an AssetScriptBinary object with parameters + A unique specific to this asset + A byte array containing the raw asset data - - + + + TODO: Encodes a scripts contents into a LSO Bytecode file + - - + + + TODO: Decode LSO Bytecode into a string + + true - - + + + Represents an LSL Text object containing a string of UTF encoded characters + - - + + Override the base classes AssetType - - + + A string of characters represting the script contents - - + + Initializes a new AssetScriptText object - - + + + Initializes a new AssetScriptText object with parameters + + A unique specific to this asset + A byte array containing the raw asset data - - + + + Encode a string containing the scripts contents into byte encoded AssetData + - - + + + Decode a byte array containing the scripts contents into a string + + true if decoding is successful - - + + + Represents a Sound Asset + - - + + Override the base classes AssetType - - + + Initializes a new instance of an AssetSound object - - + + Initializes a new instance of an AssetSound object with parameters + A unique specific to this asset + A byte array containing the raw asset data - - + + + TODO: Encodes a sound file + - - + + + TODO: Decode a sound file + + true - - + + + Represents a texture + - - + + Override the base classes AssetType - - + + A object containing image data - - + + - - + + - - + + Initializes a new instance of an AssetTexture object - - + + + Initializes a new instance of an AssetTexture object + + A unique specific to this asset + A byte array containing the raw asset data - - + + + Initializes a new instance of an AssetTexture object + + A object containing texture data - + - Operation to apply when applying color to texture + Populates the byte array with a JPEG2000 + encoded image created from the data in - + - Information needed to translate visual param value to RGBA color + Decodes the JPEG2000 data in AssetData to the + object + True if the decoding was successful, otherwise false - + - Construct VisualColorParam + Decodes the begin and end byte positions for each quality layer in + the image - Operation to apply when applying color to texture - Colors + - + - Represents alpha blending and bump infor for a visual parameter - such as sleive length + Represents a Wearable Asset, Clothing, Hair, Skin, Etc - - Stregth of the alpha to apply + + A string containing the name of the asset - - File containing the alpha channel + + A string containing a short description of the asset - - Skip blending if parameter value is 0 + + The Assets WearableType - - Use miltiply insted of alpha blending + + The For-Sale status of the object - + + An Integer representing the purchase price of the asset + + + The of the assets creator + + + The of the assets current owner + + + The of the assets prior owner + + + The of the Group this asset is set to + + + True if the asset is owned by a + + + The Permissions mask of the asset + + + A Dictionary containing Key/Value pairs of the objects parameters + + + A Dictionary containing Key/Value pairs where the Key is the textures Index and the Value is the Textures + + + Initializes a new instance of an AssetWearable object + + + Initializes a new instance of an AssetWearable object with parameters + A unique specific to this asset + A byte array containing the raw asset data + + - Create new alhpa information for a visual param + Decode an assets byte encoded data to a string - Stregth of the alpha to apply - File containing the alpha channel - Skip blending if parameter value is 0 - Use miltiply insted of alpha blending + true if the asset data was decoded successfully - + - A single visual characteristic of an avatar mesh, such as eyebrow height + Encode the assets string represantion into a format consumable by the asset server - - Index of this visual param + + = - - Internal name + + Number of times we've received an unknown CAPS exception in series. - - Group ID this parameter belongs to + + For exponential backoff on error. - - Name of the wearable this parameter belongs to + + + A set of textures that are layered on texture of each other and "baked" + in to a single texture, for avatar appearances + - - Displayable label of this characteristic + + Final baked texture + + + Component layers - - Displayable label for the minimum value of this characteristic + + Width of the final baked image and scratchpad - - Displayable label for the maximum value of this characteristic + + Height of the final baked image and scratchpad - - Default value + + Bake type - - Minimum value + + Is this one of the 3 skin bakes - - Maximum value + + Final baked texture - - Is this param used for creation of bump layer? + + Component layers - - Alpha blending/bump info + + Width of the final baked image and scratchpad - - Color information + + Height of the final baked image and scratchpad - - Array of param IDs that are drivers for this parameter + + Bake type - + - Set all the values through the constructor + Default constructor - Index of this visual param - Internal name - - - Displayable label of this characteristic - Displayable label for the minimum value of this characteristic - Displayable label for the maximum value of this characteristic - Default value - Minimum value - Maximum value - Is this param used for creation of bump layer? - Array of param IDs that are drivers for this parameter - Alpha blending/bump info - Color information + Bake type - + - Holds the Params array of all the avatar appearance parameters + Adds layer for baking + TexturaData struct that contains texture and its params - + - Base class for all Asset types + Converts avatar texture index (face) to Bake type + Face number (AvatarTextureIndex) + BakeType, layer to which this texture belongs to - - A byte array containing the raw asset data - - - True if the asset it only stored on the server temporarily - - - A unique ID - - + - Construct a new Asset object + Make sure images exist, resize source if needed to match the destination + Destination image + Source image + Sanitization was succefull - + - Construct a new Asset object + Fills a baked layer as a solid *appearing* color. The colors are + subtly dithered on a 16x16 grid to prevent the JPEG2000 stage from + compressing it too far since it seems to cause upload failures if + the image is a pure solid color - A unique specific to this asset - A byte array containing the raw asset data + Color of the base of this layer - + - Regenerates the AssetData byte array from the properties - of the derived class. + Fills a baked layer as a solid *appearing* color. The colors are + subtly dithered on a 16x16 grid to prevent the JPEG2000 stage from + compressing it too far since it seems to cause upload failures if + the image is a pure solid color + Red value + Green value + Blue value - + - Decodes the AssetData, placing it in appropriate properties of the derived - class. + Image width - True if the asset decoding succeeded, otherwise false - - - The assets unique ID - + - The "type" of asset, Notecard, Animation, etc + Image height - + - Constants for the archiving module + Image channel flags - - - Path for region settings. - - - + - The location of the archive control file + Red channel data - + - Path for the assets held in an archive + Green channel data - + - Path for the prims file + Blue channel data - + - Path for terrains. Technically these may be assets, but I think it's quite nice to split them out. + Alpha channel data - + - Path for region settings. + Bump channel data - + - The character the separates the uuid from extension information in an archived asset filename + Create a new blank image + width + height + channel flags - + - Extensions used for asset types in the archive + + - + - Archives assets + Convert the channels in the image. Channels are created or destroyed as required. + new channel flags - + - Archive assets + Resize or stretch the image using nearest neighbor (ugly) resampling + new width + new height - + - Archive the assets given to this archiver to the given archive. + Create a byte array containing 32-bit RGBA data with a bottom-left + origin, suitable for feeding directly into OpenGL - + A byte array containing raw texture data - + - Write an assets metadata file to the given archive + Create a byte array containing 32-bit RGBA data with a bottom-left + origin, suitable for feeding directly into OpenGL - + A byte array containing raw texture data - + - Write asset data files to the given archive + A Wrapper around openjpeg to encode and decode images to and from byte arrays - - - - Temporary code to do the bare minimum required to read a tar archive for our purposes - + + TGA Header size - + - Binary reader for the underlying stream + Defines the beginning and ending file positions of a layer in an + LRCP-progression JPEG2000 file - + - Used to trim off null chars + This structure is used to marshal both encoded and decoded images. + MUST MATCH THE STRUCT IN dotnet.h! - + - Used to trim off space chars + Information about a single packet in a JPEG2000 stream - + + Packet start position + + + Packet header end position + + + Packet end position + + + OpenJPEG is not threadsafe, so this object is used to lock + during calls into unmanaged code + + - Generate a tar reader which reads from the given stream. + Encode a object into a byte array - + The object to encode + true to enable lossless conversion, only useful for small images ie: sculptmaps + A byte array containing the encoded Image object - + - Read the next entry in the tar file. + Encode a object into a byte array - - - the data for the entry. Returns null if there are no more entries + The object to encode + a byte array of the encoded image - + - Read the next 512 byte chunk of data as a tar header. + Decode JPEG2000 data to an and + - A tar header struct. null if we have reached the end of the archive. + JPEG2000 encoded data + ManagedImage object to decode to + Image object to decode to + True if the decode succeeds, otherwise false - + - Read data following a header + - + + - + - Convert octal bytes to a decimal representation + - - - + + + - + - Temporary code to produce a tar archive in tar v7 format + Encode a object into a byte array + The source object to encode + true to enable lossless decoding + A byte array containing the source Bitmap object - + - Binary writer for the underlying stream + Capability to load TGAs to Bitmap - - - Write a directory entry to the tar archive. We can only handle one path level right now! - - + + - - - Write a file to the tar archive - - - + + - - - Write a file to the tar archive - - - + + - - - Finish writing the raw tar archive data to a stream. The stream will be closed on completion. - + + - - - Write a particular entry - - - - + + - - - Represents an Animation - + + - - Default Constructor + + - - - Construct an Asset object of type Animation - - A unique specific to this asset - A byte array containing the raw asset data + + - - Override the base classes AssetType + + - - - Represents an that represents an avatars body ie: Hair, Etc. - + + - - - Represents a Wearable Asset, Clothing, Hair, Skin, Etc - + + - - A string containing the name of the asset + + - - A string containing a short description of the asset + + - - The Assets WearableType + + - - The For-Sale status of the object + + - - An Integer representing the purchase price of the asset + + - - The of the assets creator + + - - The of the assets current owner + + - - The of the assets prior owner + + - - The of the Group this asset is set to + + - - True if the asset is owned by a + + - - The Permissions mask of the asset + + - - A Dictionary containing Key/Value pairs of the objects parameters + + - - A Dictionary containing Key/Value pairs where the Key is the textures Index and the Value is the Textures + + - - Initializes a new instance of an AssetWearable object + + - - Initializes a new instance of an AssetWearable object with parameters - A unique specific to this asset - A byte array containing the raw asset data + + - - - Decode an assets byte encoded data to a string - - true if the asset data was decoded successfully + + - - - Encode the assets string represantion into a format consumable by the asset server - + + - - Initializes a new instance of an AssetBodyPart object + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - Initializes a new instance of an AssetBodyPart object with parameters - A unique specific to this asset - A byte array containing the raw asset data + + - - Override the base classes AssetType + + - - - Represents a Callingcard with AvatarID and Position vector - + + - - UUID of the Callingcard target avatar + + - - Construct an Asset of type Callingcard + + - - - Construct an Asset object of type Callingcard - - A unique specific to this asset - A byte array containing the raw asset data + + - - - Constuct an asset of type Callingcard - - UUID of the target avatar + + - - - Encode the raw contents of a string with the specific Callingcard format - + + - - - Decode the raw asset data, populating the AvatarID and Position - - true if the AssetData was successfully decoded to a UUID and Vector + + - - Override the base classes AssetType + + - - - Represents an that can be worn on an avatar - such as a Shirt, Pants, etc. - + + - - Initializes a new instance of an AssetScriptBinary object + + - - Initializes a new instance of an AssetScriptBinary object with parameters - A unique specific to this asset - A byte array containing the raw asset data + + - - Override the base classes AssetType + + - - - Type of gesture step - + + - - - Base class for gesture steps - + + - - - Retururns what kind of gesture step this is - + + - - - Describes animation step of a gesture - + + - - - If true, this step represents start of animation, otherwise animation stop - + + - - - Animation asset - + + - - - Animation inventory name - + + - - - Returns what kind of gesture step this is - + + - - - Describes sound step of a gesture - + + - - - Sound asset - + + - - - Sound inventory name - + + - - - Returns what kind of gesture step this is - + + - - - Describes sound step of a gesture - + + - - - Text to output in chat - + + - - - Returns what kind of gesture step this is - + + - - - Describes sound step of a gesture - + + - - - If true in this step we wait for all animations to finish - + + - - - If true gesture player should wait for the specified amount of time - + + - - - Time in seconds to wait if WaitForAnimation is false - + + - - - Returns what kind of gesture step this is - + + - - - Describes the final step of a gesture - + + - - - Returns what kind of gesture step this is - + + - - - Represents a sequence of animations, sounds, and chat actions - + + - - - Keyboard key that triggers the gestyre - + + - - - Modifier to the trigger key - + + - - - String that triggers playing of the gesture sequence - + + - - - Text that replaces trigger in chat once gesture is triggered - + + - - - Sequence of gesture steps - + + - - - Constructs guesture asset - + + - - - Constructs guesture asset - - A unique specific to this asset - A byte array containing the raw asset data + + - - - Encodes gesture asset suitable for uplaod - + + - - - Decodes gesture assset into play sequence - - true if the asset data was decoded successfully + + - - - Returns asset type - + + - - - Represents a Landmark with RegionID and Position vector - + + - - UUID of the Landmark target region + + - - Local position of the target + + - - Construct an Asset of type Landmark + + - - - Construct an Asset object of type Landmark - - A unique specific to this asset - A byte array containing the raw asset data + + - - - Encode the raw contents of a string with the specific Landmark format - + + - - - Decode the raw asset data, populating the RegionID and Position - - true if the AssetData was successfully decoded to a UUID and Vector + + - - Override the base classes AssetType + + - - - Represents Mesh asset - + + - - - Decoded mesh data - + + - - Initializes a new instance of an AssetMesh object + + - - Initializes a new instance of an AssetMesh object with parameters - A unique specific to this asset - A byte array containing the raw asset data + + - - - TODO: Encodes Collada file into LLMesh format - + + - - - Decodes mesh asset. See - to furter decode it for rendering - true + + - - Override the base classes AssetType + + - - - Represents an Animation - + + - - Default Constructor + + - - - Construct an Asset object of type Animation - - Asset type - A unique specific to this asset - A byte array containing the raw asset data + + - - Override the base classes AssetType + + - - - Represents a string of characters encoded with specific formatting properties - + + - - A text string containing main text of the notecard + + - - List of s embedded on the notecard + + - - Construct an Asset of type Notecard + + - - - Construct an Asset object of type Notecard - - A unique specific to this asset - A byte array containing the raw asset data + + - - - Encode the raw contents of a string with the specific Linden Text properties - + + - - - Decode the raw asset data including the Linden Text properties - - true if the AssetData was successfully decoded + + - - Override the base classes AssetType + + - - - A linkset asset, containing a parent primitive and zero or more children - + + - - Initializes a new instance of an AssetPrim object + + - - - Initializes a new instance of an AssetPrim object - - A unique specific to this asset - A byte array containing the raw asset data + + - - - - + + - - - - - + + - - Override the base classes AssetType + + - - - Only used internally for XML serialization/deserialization - + + - - - The deserialized form of a single primitive in a linkset asset - + + - - - Represents an AssetScriptBinary object containing the - LSO compiled bytecode of an LSL script - + + - - Initializes a new instance of an AssetScriptBinary object + + - - Initializes a new instance of an AssetScriptBinary object with parameters - A unique specific to this asset - A byte array containing the raw asset data + + - - - TODO: Encodes a scripts contents into a LSO Bytecode file - + + - - - TODO: Decode LSO Bytecode into a string - - true + + - - Override the base classes AssetType + + - - - Represents an LSL Text object containing a string of UTF encoded characters - + + - - A string of characters represting the script contents + + - - Initializes a new AssetScriptText object + + - - - Initializes a new AssetScriptText object with parameters - - A unique specific to this asset - A byte array containing the raw asset data + + - - - Encode a string containing the scripts contents into byte encoded AssetData - + + - - - Decode a byte array containing the scripts contents into a string - - true if decoding is successful + + - - Override the base classes AssetType + + - - - Represents a Sound Asset - + + - - Initializes a new instance of an AssetSound object + + - - Initializes a new instance of an AssetSound object with parameters - A unique specific to this asset - A byte array containing the raw asset data + + - - - TODO: Encodes a sound file - + + - - - TODO: Decode a sound file - - true + + - - Override the base classes AssetType + + - - - Represents a texture - + + - - A object containing image data + + - - + + - - + + - - Initializes a new instance of an AssetTexture object + + - - - Initializes a new instance of an AssetTexture object - - A unique specific to this asset - A byte array containing the raw asset data + + - - - Initializes a new instance of an AssetTexture object - - A object containing texture data + + - - - Populates the byte array with a JPEG2000 - encoded image created from the data in - + + - - - Decodes the JPEG2000 data in AssetData to the - object - - True if the decoding was successful, otherwise false + + - - - Decodes the begin and end byte positions for each quality layer in - the image - - + + - - Override the base classes AssetType + + - - = + + - - Number of times we've received an unknown CAPS exception in series. + + - - For exponential backoff on error. + + - - - A set of textures that are layered on texture of each other and "baked" - in to a single texture, for avatar appearances - + + - - Final baked texture + + - - Component layers + + - - Width of the final baked image and scratchpad + + - - Height of the final baked image and scratchpad + + - - Bake type + + - - - Default constructor - - Bake type + + - - - Adds layer for baking - - TexturaData struct that contains texture and its params + + - - - Converts avatar texture index (face) to Bake type - - Face number (AvatarTextureIndex) - BakeType, layer to which this texture belongs to + + - - - Make sure images exist, resize source if needed to match the destination - - Destination image - Source image - Sanitization was succefull + + - - - Fills a baked layer as a solid *appearing* color. The colors are - subtly dithered on a 16x16 grid to prevent the JPEG2000 stage from - compressing it too far since it seems to cause upload failures if - the image is a pure solid color - - Color of the base of this layer + + - - - Fills a baked layer as a solid *appearing* color. The colors are - subtly dithered on a 16x16 grid to prevent the JPEG2000 stage from - compressing it too far since it seems to cause upload failures if - the image is a pure solid color - - Red value - Green value - Blue value + + - - Final baked texture + + - - Component layers + + - - Width of the final baked image and scratchpad + + - - Height of the final baked image and scratchpad + + - - Bake type + + - - Is this one of the 3 skin bakes + + - - - Image width - + + - - - Image height - + + - - - Image channel flags - + + - - - Red channel data - + + - - - Green channel data - + + - - - Blue channel data - + + - - - Alpha channel data - + + - - - Bump channel data - + + - - - Create a new blank image - - width - height - channel flags + + - - - - - + + - - - Convert the channels in the image. Channels are created or destroyed as required. - - new channel flags + + - - - Resize or stretch the image using nearest neighbor (ugly) resampling - - new width - new height + + - - - Create a byte array containing 32-bit RGBA data with a bottom-left - origin, suitable for feeding directly into OpenGL - - A byte array containing raw texture data + + - - - Create a byte array containing 32-bit RGBA data with a bottom-left - origin, suitable for feeding directly into OpenGL - - A byte array containing raw texture data + + - - - A Wrapper around openjpeg to encode and decode images to and from byte arrays - + + - - TGA Header size + + - - OpenJPEG is not threadsafe, so this object is used to lock - during calls into unmanaged code + + - - - Encode a object into a byte array - - The object to encode - true to enable lossless conversion, only useful for small images ie: sculptmaps - A byte array containing the encoded Image object + + - - - Encode a object into a byte array - - The object to encode - a byte array of the encoded image + + - - - Decode JPEG2000 data to an and - - - JPEG2000 encoded data - ManagedImage object to decode to - Image object to decode to - True if the decode succeeds, otherwise false + + - - - - - - - + + - - - - - - - - + + - - - Encode a object into a byte array - - The source object to encode - true to enable lossless decoding - A byte array containing the source Bitmap object + + - - - Defines the beginning and ending file positions of a layer in an - LRCP-progression JPEG2000 file - + + - - - This structure is used to marshal both encoded and decoded images. - MUST MATCH THE STRUCT IN dotnet.h! - + + - - - Information about a single packet in a JPEG2000 stream - + + - - Packet start position + + - - Packet header end position + + - - Packet end position + + - - - Capability to load TGAs to Bitmap - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + + Parsing Collada model files into data structures + + + + + Parses Collada document + + Load .dae model from this file + Load and decode images for uploading with model + A list of mesh prims that were parsed from the collada file + + + + Implements mesh upload communications with the simulator + + + + + Inlcude stub convex hull physics, required for uploading to Second Life + + + + + Use the same mesh used for geometry as the physical mesh upload + + + + + Callback for mesh upload operations + + null on failure, result from server on success + + + + Creates instance of the mesh uploader + + GridClient instance to communicate with the simulator + List of ModelPrimitive objects to upload as a linkset + Inventory name for newly uploaded object + Inventory description for newly upload object + + + + Performs model upload in one go, without first checking for the price + + + + + Performs model upload in one go, without first checking for the price + + Callback that will be invoke upon completion of the upload. Null is sent on request failure + + + + Ask server for details of cost and impact of the mesh upload + + Callback that will be invoke upon completion of the upload. Null is sent on request failure + + + + Performas actual mesh and image upload + + Uri recieved in the upload prepare stage + Callback that will be invoke upon completion of the upload. Null is sent on request failure + + + + Interface requirements for Messaging system + + + + + Abstract base for rendering plugins + + + + + Generates a basic mesh structure from a primitive + + Primitive to generate the mesh from + Level of detail to generate the mesh at + The generated mesh + + + + Generates a basic mesh structure from a sculpted primitive and + texture + + Sculpted primitive to generate the mesh from + Sculpt texture + Level of detail to generate the mesh at + The generated mesh + + + + Generates a series of faces, each face containing a mesh and + metadata + + Primitive to generate the mesh from + Level of detail to generate the mesh at + The generated mesh + + + + Generates a series of faces for a sculpted prim, each face + containing a mesh and metadata + + Sculpted primitive to generate the mesh from + Sculpt texture + Level of detail to generate the mesh at + The generated mesh + + + + Apply texture coordinate modifications from a + to a list of vertices + + Vertex list to modify texture coordinates for + Center-point of the face + Face texture parameters + Scale of the prim + + + + Binary reader, which is endian aware + + + + What is the format of the source file + + + + Construct a reader from a stream + + The stream to read from + + + + Construct a reader from a stream + + The stream to read from + What is the format of the file, assumes PC and similar architecture + + + + Read a 32 bit integer + + A 32 bit integer in the system's endianness - - + + + Read a 16 bit integer + + A 16 bit integer in the system's endianness - - + + + Read a 64 bit integer + + A 64 bit integer in the system's endianness - - + + + Read an unsigned 32 bit integer + + A 32 bit unsigned integer in the system's endianness - - + + + Read a single precision floating point value + + A single precision floating point value in the system's endianness - - + + + Read a double precision floating point value + + A double precision floating point value in the system's endianness - - + + + Read a UTF-8 string + + A standard system string - - + + + Read a UTF-8 string + + length of string to read + A standard system string - - + + + Load and handle Linden Lab binary meshes. + + + The exact definition of this file is a bit sketchy, especially concerning skin weights. + A good starting point is on the + second life wiki + - - + + + Defines a polygon + - - + + + Structure of a vertex, No surprises there, except for the Detail tex coord + + + The skinweights are a tad unconventional. The best explanation found is: + >Each weight actually contains two pieces of information. The number to the + >left of the decimal point is the index of the joint and also implicitly + >indexes to the following joint. The actual weight is to the right of the + >decimal point and interpolates between these two joints. The index is into + >an "expanded" list of joints, not just a linear array of the joints as + >defined in the skeleton file. In particular, any joint that has more than + >one child will be repeated in the list for each of its children. + + Maybe I'm dense, but that description seems to be a bit hard to build an + algorithm on. + + Esentially the weights are compressed into one floating point value. + 1. The whole number part is an index into an array of joints + 2. The fractional part is the weight that joint has + 3. If the fractional part is 0 (x.0000) then the vertex is 100% influenced by the specified joint + - - + + + Provide a nice format for debugging + + Vertex definition as a string - - + + + Describes deltas to apply to a vertex in order to morph a vertex + - - + + + Provide a nice format for debugging + + MorphVertex definition as a string - - + + + Describes a named mesh morph, essentially a named list of MorphVertices + - - + + + Provide a nice format for debugging + + The name of the morph - - + + + Don't really know what this does + - - + + + Provide a nice format for debugging + + Human friendly format - - + + + A reference mesh is one way to implement level of detail + + + Reference meshes are supplemental meshes to full meshes. For all practical + purposes almost all lod meshes are implemented as reference meshes, except for + 'avatar_eye_1.llm' which for some reason is implemented as a full mesh. + - - + + + Load a mesh from a stream + + Filename and path of the file containing the reference mesh - - + + + Level of Detail mesh + - - + + + Construct a linden mesh with the given name + + the name of the mesh - - + + + Construct a linden mesh with the given name + + the name of the mesh + The skeleton governing mesh deformation - - + + + Load the mesh from a stream + + The filename and path of the file containing the mesh data - - + + + Layout of one skinweight element + - - + + List of skinweights, in the same order as the mesh vertices - - + + + Decompress the skinweights + + the expanded joint list, used to index which bones should influece the vertex - - + + + Load a reference mesh from a given stream + + The lod level of this reference mesh + the name and path of the file containing the mesh data + the loaded reference mesh - - + + + Trim a string at the first occurence of NUL + + + The llm file uses null terminated strings (C/C++ style), this is where + the conversion is made. + + The string to trim + A standard .Net string - + + + load the 'avatar_skeleton.xml' + + + Partial class which extends the auto-generated 'LindenSkeleton.Xsd.cs'.eton.xsd + - - + + + Load a skeleton from a given file. + + + We use xml scema validation on top of the xml de-serializer, since the schema has + some stricter checks than the de-serializer provides. E.g. the vector attributes + are guaranteed to hold only 3 float values. This reduces the need for error checking + while working with the loaded skeleton. + + A valid recursive skeleton - - + + + Load a skeleton from a given file. + + + We use xml scema validation on top of the xml de-serializer, since the schema has + some stricter checks than the de-serializer provides. E.g. the vector attributes + are guaranteed to hold only 3 float values. This reduces the need for error checking + while working with the loaded skeleton. + + The path to the skeleton definition file + A valid recursive skeleton - - + + + Build and "expanded" list of joints + + + The algorithm is based on this description: + + >An "expanded" list of joints, not just a + >linear array of the joints as defined in the skeleton file. + >In particular, any joint that has more than one child will + >be repeated in the list for each of its children. + + The list should only take these joint names in consideration + An "expanded" joints list as a flat list of bone names - - + + + Expand one joint + + The parent of the joint we are operating on + The joint we are supposed to expand + Joint list that we will extend upon + The expanded list should only contain these joints - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + + Contains all mesh faces that belong to a prim + - - + + List of primitive faces - - + + + Decodes mesh asset into FacetedMesh + + Mesh primitive + Asset retrieved from the asset server + Level of detail + Resulting decoded FacetedMesh + True if mesh asset decoding was successful - - + + + Sent to the client to indicate a teleport request has completed + - - + + The of the agent - - + + - - + + The simulators handle the agent teleported to - - + + A Uri which contains a list of Capabilities the simulator supports - - + + Indicates the level of access required + to access the simulator, or the content rating, or the simulators + map status - - + + The IP Address of the simulator - - + + The UDP Port the simulator will listen for UDP traffic on - - + + Status flags indicating the state of the Agent upon arrival, Flying, etc. - - + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - + + + Sent to the viewer when a neighboring simulator is requesting the agent make a connection to it. + - - + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - + + + A message sent to the client which indicates a teleport request has failed + and contains some information on why it failed + - - + + - - + + A string key of the reason the teleport failed e.g. CouldntTPCloser + Which could be used to look up a value in a dictionary or enum - - + + The of the Agent - - + + A string human readable message containing the reason + An example: Could not teleport closer to destination - - + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - + + + Contains a list of prim owner information for a specific parcel in a simulator + + + A Simulator will always return at least 1 entry + If agent does not have proper permission the OwnerID will be UUID.Zero + If agent does not have proper permission OR there are no primitives on parcel + the DataBlocksExtended map will not be sent from the simulator + - - + + + Prim ownership information for a specified owner on a single parcel + - - + + The of the prim owner, + UUID.Zero if agent has no permission to view prim owner information - - + + The total number of prims - - + + True if the OwnerID is a - - + + True if the owner is online + This is no longer used by the LL Simulators - - + + The date the most recent prim was rezzed - - + + An Array of objects - - + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - + + + The details of a single parcel in a region, also contains some regionwide globals + - - + + Simulator-local ID of this parcel - - + + Maximum corner of the axis-aligned bounding box for this + parcel - - + + Minimum corner of the axis-aligned bounding box for this + parcel - - + + Total parcel land area - - + + - - + + Key of authorized buyer - - + + Bitmap describing land layout in 4x4m squares across the + entire region - - + + - - + + Date land was claimed - - + + Appears to always be zero - - + + Parcel Description - - + + - - + + - - + + Total number of primitives owned by the parcel group on + this parcel - - + + Whether the land is deeded to a group or not - - + + - - + + Maximum number of primitives this parcel supports - - + + The Asset UUID of the Texture which when applied to a + primitive will display the media - - + + A URL which points to any Quicktime supported media type - - + + A byte, if 0x1 viewer should auto scale media to fit object - - + + URL For Music Stream - - + + Parcel Name - - + + Autoreturn value in minutes for others' objects - - + + + + + Total number of other primitives on this parcel - - + + UUID of the owner of this parcel - - + + Total number of primitives owned by the parcel owner on + this parcel - - + + - - + + How long is pass valid for - - + + Price for a temporary pass - - + + - - + + Disallows people outside the parcel from being able to see in - - + + - - + + - - + + - - + + True if the region denies access to age unverified users - - + + - - + + This field is no longer used - - + + The result of a request for parcel properties - - + + Sale price of the parcel, only useful if ForSale is set + The SalePrice will remain the same after an ownership + transfer (sale), so it can be used to see the purchase price after + a sale if the new owner has not changed it - - + + + Number of primitives your avatar is currently + selecting and sitting on in this parcel + - - + + - - + + + A number which increments by 1, starting at 0 for each ParcelProperties request. + Can be overriden by specifying the sequenceID with the ParcelPropertiesRequest being sent. + a Negative number indicates the action in has occurred. + - - + + Maximum primitives across the entire simulator - - + + Total primitives across the entire simulator - - + + - - + + Key of parcel snapshot - - + + Parcel ownership status - - + + Total number of primitives on this parcel - - + + - - + + - - + + A description of the media - - + + An Integer which represents the height of the media - - + + An integer which represents the width of the media - - + + A boolean, if true the viewer should loop the media - - + + A string which contains the mime type of the media - - + + true to obscure (hide) media url - - + + true to obscure (hide) music url - - + + true if avatars in this parcel should be invisible to people outside - - + + true if avatars outside can hear any sounds avatars inside play - - + + true if group members outside can hear any sounds avatars inside play - - + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - + + A message sent from the viewer to the simulator to updated a specific parcels settings - - + + The of the agent authorized to purchase this + parcel of land or a NULL if the sale is authorized to anyone - - + + true to enable auto scaling of the parcel media - - + + The category of this parcel used when search is enabled to restrict + search results - - + + A string containing the description to set - - + + The of the which allows for additional + powers and restrictions. - - + + The which specifies how avatars which teleport + to this parcel are handled - - + + The LocalID of the parcel to update settings on - - + + A string containing the description of the media which can be played + to visitors - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + true if avatars in this parcel should be invisible to people outside - - + + true if avatars outside can hear any sounds avatars inside play - - + + true if group members outside can hear any sounds avatars inside play - - + + + Deserialize the message + + An containing the data - - + + + Serialize the object + + An containing the objects data - - + + Base class used for the RemoteParcelRequest message - - + + + A message sent from the viewer to the simulator to request information + on a remote parcel + - - + + Local sim position of the parcel we are looking up - - + + Region handle of the parcel we are looking up - - + + Region of the parcel we are looking up - - + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - + + + A message sent from the simulator to the viewer in response to a + which will contain parcel information + - - + + The grid-wide unique parcel ID - - + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - + + + A message containing a request for a remote parcel from a viewer, or a response + from the simulator to that request + - - + + The request or response details block - - + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - + + + A message sent from the simulator to an agent which contains + the groups the agent is in + - - + + The Agent receiving the message - - + + Group Details specific to the agent - - + + true of the agent accepts group notices - - + + The agents tier contribution to the group - - + + The Groups - - + + The of the groups insignia - - + + The name of the group - - + + The aggregate permissions the agent has in the group for all roles the agent + is assigned - - + + An optional block containing additional agent specific information - - + + true of the agent allows this group to be + listed in their profile - - + + An array containing information + for each the agent is a member of - - + + An array containing information + for each the agent is a member of - - + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - + + + A message sent from the viewer to the simulator which + specifies the language and permissions for others to detect + the language specified + - - + + A string containng the default language + to use for the agent - - + + true of others are allowed to + know the language setting - + - Parsing Collada model files into data structures + Serialize the object + An containing the objects data - + - Parses Collada document + Deserialize the message - Load .dae model from this file - Load and decode images for uploading with model - A list of mesh prims that were parsed from the collada file + An containing the data - + - Implements mesh upload communications with the simulator + An EventQueue message sent from the simulator to an agent when the agent + leaves a group - - - Inlcude stub convex hull physics, required for uploading to Second Life - + + An object containing the Agents UUID, and the Groups UUID - + + The ID of the Agent leaving the group + + + The GroupID the Agent is leaving + + - Use the same mesh used for geometry as the physical mesh upload + An Array containing the AgentID and GroupID - + - Creates instance of the mesh uploader + Serialize the object - GridClient instance to communicate with the simulator - List of ModelPrimitive objects to upload as a linkset - Inventory name for newly uploaded object - Inventory description for newly upload object + An containing the objects data - + - Performs model upload in one go, without first checking for the price + Deserialize the message + An containing the data - + + Base class for Asset uploads/results via Capabilities + + - Performs model upload in one go, without first checking for the price + The request state - Callback that will be invoke upon completion of the upload. Null is sent on request failure - + - Ask server for details of cost and impact of the mesh upload + Serialize the object - Callback that will be invoke upon completion of the upload. Null is sent on request failure + An containing the objects data - + - Performas actual mesh and image upload + Deserialize the message - Uri recieved in the upload prepare stage - Callback that will be invoke upon completion of the upload. Null is sent on request failure + An containing the data - + - Callback for mesh upload operations + A message sent from the viewer to the simulator to request a temporary upload capability + which allows an asset to be uploaded - null on failure, result from server on success - + + The Capability URL sent by the simulator to upload the baked texture to + + - Interface requirements for Messaging system + A message sent from the simulator that will inform the agent the upload is complete, + and the UUID of the uploaded asset - + + The uploaded texture asset ID + + - Abstract base for rendering plugins + A message sent from the viewer to the simulator to request a temporary + capability URI which is used to upload an agents baked appearance textures - + + Object containing request or response + + - Generates a basic mesh structure from a primitive + Serialize the object - Primitive to generate the mesh from - Level of detail to generate the mesh at - The generated mesh + An containing the objects data - + - Generates a basic mesh structure from a sculpted primitive and - texture + Deserialize the message - Sculpted primitive to generate the mesh from - Sculpt texture - Level of detail to generate the mesh at - The generated mesh + An containing the data - + - Generates a series of faces, each face containing a mesh and - metadata + A message sent from the simulator which indicates the minimum version required for + using voice chat - Primitive to generate the mesh from - Level of detail to generate the mesh at - The generated mesh - + + Major Version Required + + + Minor version required + + + The name of the region sending the version requrements + + - Generates a series of faces for a sculpted prim, each face - containing a mesh and metadata + Serialize the object - Sculpted primitive to generate the mesh from - Sculpt texture - Level of detail to generate the mesh at - The generated mesh + An containing the objects data - + - Apply texture coordinate modifications from a - to a list of vertices + Deserialize the message - Vertex list to modify texture coordinates for - Center-point of the face - Face texture parameters - Scale of the prim + An containing the data - + - Sent to the client to indicate a teleport request has completed + A message sent from the simulator to the viewer containing the + voice server URI - - The of the agent + + The Parcel ID which the voice server URI applies - - + + The name of the region - - The simulators handle the agent teleported to + + A uri containing the server/channel information + which the viewer can utilize to participate in voice conversations - - A Uri which contains a list of Capabilities the simulator supports + + + Serialize the object + + An containing the objects data - - Indicates the level of access required - to access the simulator, or the content rating, or the simulators - map status + + + Deserialize the message + + An containing the data - - The IP Address of the simulator + + + + - - The UDP Port the simulator will listen for UDP traffic on + + - - Status flags indicating the state of the Agent upon arrival, Flying, etc. + + - + Serialize the object An containing the objects data - + Deserialize the message An containing the data - + - Sent to the viewer when a neighboring simulator is requesting the agent make a connection to it. + A message sent by the viewer to the simulator to request a temporary + capability for a script contained with in a Tasks inventory to be updated - + + Object containing request or response + + Serialize the object An containing the objects data - + Deserialize the message An containing the data - + + + A message sent from the simulator to the viewer to indicate + a Tasks scripts status. + + + + The Asset ID of the script + + + True of the script is compiled/ran using the mono interpreter, false indicates it + uses the older less efficient lsl2 interprter + + + The Task containing the scripts + + + true of the script is in a running state + + Serialize the object An containing the objects data - + Deserialize the message An containing the data - + + + A message containing the request/response used for updating a gesture + contained with an agents inventory + + + + Object containing request or response + + Serialize the object An containing the objects data - + Deserialize the message An containing the data - + - A message sent to the client which indicates a teleport request has failed - and contains some information on why it failed + A message request/response which is used to update a notecard contained within + a tasks inventory - - - - - A string key of the reason the teleport failed e.g. CouldntTPCloser - Which could be used to look up a value in a dictionary or enum - - - The of the Agent + + The of the Task containing the notecard asset to update - - A string human readable message containing the reason - An example: Could not teleport closer to destination + + The notecard assets contained in the tasks inventory - + Serialize the object An containing the objects data - + Deserialize the message An containing the data - + + + A reusable class containing a message sent from the viewer to the simulator to request a temporary uploader capability + which is used to update an asset in an agents inventory + + + + + The Notecard AssetID to replace + + + Serialize the object An containing the objects data - + Deserialize the message An containing the data - + - Contains a list of prim owner information for a specific parcel in a simulator + A message containing the request/response used for updating a notecard + contained with an agents inventory - - A Simulator will always return at least 1 entry - If agent does not have proper permission the OwnerID will be UUID.Zero - If agent does not have proper permission OR there are no primitives on parcel - the DataBlocksExtended map will not be sent from the simulator - - - An Array of objects + + Object containing request or response - + Serialize the object An containing the objects data - + Deserialize the message An containing the data - + - Prim ownership information for a specified owner on a single parcel + Serialize the object + An containing the objects data - - The of the prim owner, - UUID.Zero if agent has no permission to view prim owner information + + + Deserialize the message + + An containing the data - - The total number of prims + + + A message sent from the simulator to the viewer which indicates + an error occurred while attempting to update a script in an agents or tasks + inventory + - - True if the OwnerID is a + + true of the script was successfully compiled by the simulator - - True if the owner is online - This is no longer used by the LL Simulators + + A string containing the error which occured while trying + to update the script - - The date the most recent prim was rezzed + + A new AssetID assigned to the script - + - The details of a single parcel in a region, also contains some regionwide globals + A message sent from the viewer to the simulator + requesting the update of an existing script contained + within a tasks inventory - - Simulator-local ID of this parcel - - - Maximum corner of the axis-aligned bounding box for this - parcel - - - Minimum corner of the axis-aligned bounding box for this - parcel + + if true, set the script mode to running - - Total parcel land area + + The scripts InventoryItem ItemID to update - - + + A lowercase string containing either "mono" or "lsl2" which + specifies the script is compiled and ran on the mono runtime, or the older + lsl runtime - - Key of authorized buyer + + The tasks which contains the script to update - - Bitmap describing land layout in 4x4m squares across the - entire region + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - Date land was claimed + + + A message containing either the request or response used in updating a script inside + a tasks inventory + - - Appears to always be zero + + Object containing request or response - - Parcel Description + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - + + + Response from the simulator to notify the viewer the upload is completed, and + the UUID of the script asset and its compiled status + - - Total number of primitives owned by the parcel group on - this parcel + + The uploaded texture asset ID - - Whether the land is deeded to a group or not + + true of the script was compiled successfully - - + + + A message sent from a viewer to the simulator requesting a temporary uploader capability + used to update a script contained in an agents inventory + - - Maximum number of primitives this parcel supports + + The existing asset if of the script in the agents inventory to replace - - The Asset UUID of the Texture which when applied to a - primitive will display the media + + The language of the script + Defaults to lsl version 2, "mono" might be another possible option - - A URL which points to any Quicktime supported media type + + + Serialize the object + + An containing the objects data - - A byte, if 0x1 viewer should auto scale media to fit object + + + Deserialize the message + + An containing the data - - URL For Music Stream + + + A message containing either the request or response used in updating a script inside + an agents inventory + - - Parcel Name + + Object containing request or response - - Autoreturn value in minutes for others' objects + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - Total number of other primitives on this parcel + + + Serialize the object + + An containing the objects data - - UUID of the owner of this parcel + + + Deserialize the message + + An containing the data - - Total number of primitives owned by the parcel owner on - this parcel + + Base class for Map Layers via Capabilities - + - - How long is pass valid for + + + Serialize the object + + An containing the objects data - - Price for a temporary pass + + + Deserialize the message + + An containing the data - - + + + Sent by an agent to the capabilities server to request map layers + - - Disallows people outside the parcel from being able to see in + + + A message sent from the simulator to the viewer which contains an array of map images and their grid coordinates + - - + + + An object containing map location details + - - + + The Asset ID of the regions tile overlay - - + + The grid location of the southern border of the map tile - - True if the region denies access to age unverified users + + The grid location of the western border of the map tile - - + + The grid location of the eastern border of the map tile - - This field is no longer used + + The grid location of the northern border of the map tile - - The result of a request for parcel properties + + An array containing LayerData items - - Sale price of the parcel, only useful if ForSale is set - The SalePrice will remain the same after an ownership - transfer (sale), so it can be used to see the purchase price after - a sale if the new owner has not changed it + + + Serialize the object + + An containing the objects data - + - Number of primitives your avatar is currently - selecting and sitting on in this parcel + Deserialize the message + An containing the data - - + + Object containing request or response - + - A number which increments by 1, starting at 0 for each ParcelProperties request. - Can be overriden by specifying the sequenceID with the ParcelPropertiesRequest being sent. - a Negative number indicates the action in has occurred. + Serialize the object + An containing the objects data - - Maximum primitives across the entire simulator - - - Total primitives across the entire simulator + + + Deserialize the message + + An containing the data - - + + + New as of 1.23 RC1, no details yet. + - - Key of parcel snapshot + + + Serialize the object + + An containing the objects data - - Parcel ownership status + + + Deserialize the message + + An containing the data - - Total number of primitives on this parcel + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - + + A string containing the method used - - A description of the media + + + A request sent from an agent to the Simulator to begin a new conference. + Contains a list of Agents which will be included in the conference + - - An Integer which represents the height of the media + + An array containing the of the agents invited to this conference - - An integer which represents the width of the media + + The conferences Session ID - - A boolean, if true the viewer should loop the media + + + Serialize the object + + An containing the objects data - - A string which contains the mime type of the media + + + Deserialize the message + + An containing the data - - true to obscure (hide) media url + + + A moderation request sent from a conference moderator + Contains an agent and an optional action to take + - - true to obscure (hide) music url + + The Session ID - - true if avatars in this parcel should be invisible to people outside + + - - true if avatars outside can hear any sounds avatars inside play + + A list containing Key/Value pairs, known valid values: + key: text value: true/false - allow/disallow specified agents ability to use text in session + key: voice value: true/false - allow/disallow specified agents ability to use voice in session + + "text" or "voice" - - true if group members outside can hear any sounds avatars inside play + + - + Serialize the object An containing the objects data - + Deserialize the message An containing the data - - A message sent from the viewer to the simulator to updated a specific parcels settings - - - The of the agent authorized to purchase this - parcel of land or a NULL if the sale is authorized to anyone - - - true to enable auto scaling of the parcel media - - - The category of this parcel used when search is enabled to restrict - search results - - - A string containing the description to set - - - The of the which allows for additional - powers and restrictions. + + + A message sent from the agent to the simulator which tells the + simulator we've accepted a conference invitation + - - The which specifies how avatars which teleport - to this parcel are handled + + The conference SessionID - - The LocalID of the parcel to update settings on + + + Serialize the object + + An containing the objects data - - A string containing the description of the media which can be played - to visitors + + + Deserialize the message + + An containing the data - - + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - + + + Serialize the object + + An containing the objects data - - + + + Deserialize the message + + An containing the data - - + + Key of sender - - + + Name of sender - - + + Key of destination avatar - - + + ID of originating estate - - + + Key of originating region - - + + Coordinates in originating region - - + + Instant message type - - + + Group IM session toggle - - + + Key of IM session, for Group Messages, the groups UUID - - + + Timestamp of the instant message - - + + Instant message text - - + + Whether this message is held for offline avatars - - true if avatars in this parcel should be invisible to people outside + + Context specific packed data - - true if avatars outside can hear any sounds avatars inside play + + Is this invitation for voice group/conference chat - - true if group members outside can hear any sounds avatars inside play + + + Serialize the object + + An containing the objects data - + Deserialize the message An containing the data - + + + Sent from the simulator to the viewer. + + When an agent initially joins a session the AgentUpdatesBlock object will contain a list of session members including + a boolean indicating they can use voice chat in this session, a boolean indicating they are allowed to moderate + this session, and lastly a string which indicates another agent is entering the session with the Transition set to "ENTER" + + During the session lifetime updates on individuals are sent. During the update the booleans sent during the initial join are + excluded with the exception of the Transition field. This indicates a new user entering or exiting the session with + the string "ENTER" or "LEAVE" respectively. + + + Serialize the object An containing the objects data - - Base class used for the RemoteParcelRequest message - - + - A message sent from the viewer to the simulator to request information - on a remote parcel + Deserialize the message + An containing the data - - Local sim position of the parcel we are looking up + + + An EventQueue message sent when the agent is forcibly removed from a chatterbox session + - - Region handle of the parcel we are looking up + + + A string containing the reason the agent was removed + - - Region of the parcel we are looking up + + + The ChatterBoxSession's SessionID + - + Serialize the object An containing the objects data - + Deserialize the message An containing the data - - - A message sent from the simulator to the viewer in response to a - which will contain parcel information - - - - The grid-wide unique parcel ID - - + Serialize the object An containing the objects data - + Deserialize the message An containing the data - + - A message containing a request for a remote parcel from a viewer, or a response - from the simulator to that request + Serialize the object + An containing the objects data - - The request or response details block + + + Deserialize the message + + An containing the data - + Serialize the object An containing the objects data - + Deserialize the message An containing the data - + Serialize the object An containing the objects data - + Deserialize the message An containing the data - + + + + + + Serialize the object An containing the objects data - + Deserialize the message An containing the data - + - A message sent from the simulator to an agent which contains - the groups the agent is in + Serialize the object + An containing the objects data - - The Agent receiving the message - - - An array containing information - for each the agent is a member of - - - An array containing information - for each the agent is a member of + + + Deserialize the message + + An containing the data - + Serialize the object An containing the objects data - + Deserialize the message An containing the data - - Group Details specific to the agent + + + Event Queue message describing physics engine attributes of a list of objects + Sim sends these when object is selected + - - true of the agent accepts group notices + + Array with the list of physics properties - - The agents tier contribution to the group + + + Serializes the message + + Serialized OSD - - The Groups + + + Deserializes the message + + Incoming data to deserialize - - The of the groups insignia + + + Deserializes the message + + Incoming data to deserialize - - The name of the group + + + Serializes the message + + Serialized OSD - - The aggregate permissions the agent has in the group for all roles the agent - is assigned + + + + Deserializes the message + + Incoming data to deserialize - - An optional block containing additional agent specific information + + + Serializes the message + + Serialized OSD + + + + Deserializes the message + + Incoming data to deserialize + + + + Serializes the message + + Serialized OSD - - true of the agent allows this group to be - listed in their profile + + + Detects which class handles deserialization of this message + + An containing the data + Object capable of decoding this message - + A message sent from the viewer to the simulator which - specifies the language and permissions for others to detect - the language specified + specifies that the user has changed current URL + of the specific media on a prim face - - A string containng the default language - to use for the agent + + + New URL + - - true of others are allowed to - know the language setting + + + Prim UUID where navigation occured + - + + + Face index + + + Serialize the object An containing the objects data - + Deserialize the message An containing the data - + + Base class used for the ObjectMedia message + + - An EventQueue message sent from the simulator to an agent when the agent - leaves a group + Message used to retrive prim media data - + - An Array containing the AgentID and GroupID + Prim UUID - + - Serialize the object + Requested operation, either GET or UPDATE - An containing the objects data - + + + Serialize object + + Serialized object as OSDMap + + Deserialize the message An containing the data - - An object containing the Agents UUID, and the Groups UUID - - - The ID of the Agent leaving the group + + + Message used to update prim media data + - - The GroupID the Agent is leaving + + + Prim UUID + - - Base class for Asset uploads/results via Capabilities + + + Array of media entries indexed by face number + - + - The request state + Media version string - + - Serialize the object + Serialize object - An containing the objects data + Serialized object as OSDMap - + Deserialize the message An containing the data - + - A message sent from the viewer to the simulator to request a temporary upload capability - which allows an asset to be uploaded + Message used to update prim media data - - The Capability URL sent by the simulator to upload the baked texture to - - + - A message sent from the simulator that will inform the agent the upload is complete, - and the UUID of the uploaded asset + Prim UUID - - The uploaded texture asset ID - - + - A message sent from the viewer to the simulator to request a temporary - capability URI which is used to upload an agents baked appearance textures + Array of media entries indexed by face number - - Object containing request or response + + + Requested operation, either GET or UPDATE + - + - Serialize the object + Serialize object - An containing the objects data + Serialized object as OSDMap - + Deserialize the message An containing the data - + - A message sent from the simulator which indicates the minimum version required for - using voice chat + Message for setting or getting per face MediaEntry - - Major Version Required - - - Minor version required - - - The name of the region sending the version requrements + + The request or response details block - + Serialize the object An containing the objects data - + Deserialize the message An containing the data - - - A message sent from the simulator to the viewer containing the - voice server URI - + + Details about object resource usage - - The Parcel ID which the voice server URI applies + + Object UUID - - The name of the region + + Object name - - A uri containing the server/channel information - which the viewer can utilize to participate in voice conversations + + Indicates if object is group owned - + + Locatio of the object + + + Object owner + + + Resource usage, keys are resource names, values are resource usage for that specific resource + + - Serialize the object + Deserializes object from OSD - An containing the objects data + An containing the data - + - Deserialize the message + Makes an instance based on deserialized data + + serialized data + Instance containg deserialized data + + + Details about parcel resource usage + + + Parcel UUID + + + Parcel local ID + + + Parcel name + + + Indicates if parcel is group owned + + + Parcel owner + + + Array of containing per object resource usage + + + + Deserializes object from OSD An containing the data - + - + Makes an instance based on deserialized data + serialized data + Instance containg deserialized data - - + + Resource usage base class, both agent and parcel resource + usage contains summary information - - + + Summary of available resources, keys are resource names, + values are resource usage for that specific resource - + + Summary resource usage, keys are resource names, + values are resource usage for that specific resource + + - Serialize the object + Serializes object - An containing the objects data + serialized data - + - Deserialize the message + Deserializes object from OSD An containing the data - + + Agent resource usage + + + Per attachment point object resource usage + + - A message sent by the viewer to the simulator to request a temporary - capability for a script contained with in a Tasks inventory to be updated + Deserializes object from OSD + An containing the data - - Object containing request or response - - + - Serialize the object + Makes an instance based on deserialized data - An containing the objects data + serialized data + Instance containg deserialized data - + - Deserialize the message + Detects which class handles deserialization of this message An containing the data + Object capable of decoding this message - + + Request message for parcel resource usage + + + UUID of the parel to request resource usage info + + - A message sent from the simulator to the viewer to indicate - a Tasks scripts status. + Serializes object + serialized data - - The Asset ID of the script + + + Deserializes object from OSD + + An containing the data - - True of the script is compiled/ran using the mono interpreter, false indicates it - uses the older less efficient lsl2 interprter + + Response message for parcel resource usage - - The Task containing the scripts + + URL where parcel resource usage details can be retrieved - - true of the script is in a running state + + URL where parcel resource usage summary can be retrieved - + - Serialize the object + Serializes object - An containing the objects data + serialized data - + - Deserialize the message + Deserializes object from OSD An containing the data - + - A message containing the request/response used for updating a gesture - contained with an agents inventory + Detects which class handles deserialization of this message + An containing the data + Object capable of decoding this message - - Object containing request or response + + Parcel resource usage - - - Serialize the object - - An containing the objects data + + Array of containing per percal resource usage - + - Deserialize the message + Deserializes object from OSD An containing the data - + - A message request/response which is used to update a notecard contained within - a tasks inventory + Reply to request for bunch if display names - - The of the Task containing the notecard asset to update + + Current display name - - The notecard assets contained in the tasks inventory + + Following UUIDs failed to return a valid display name - + - Serialize the object + Serializes the message - An containing the objects data + OSD containting the messaage - + - Deserialize the message + Message sent when requesting change of the display name - An containing the data - - - A reusable class containing a message sent from the viewer to the simulator to request a temporary uploader capability - which is used to update an asset in an agents inventory - + + Current display name - + + Desired new display name + + - The Notecard AssetID to replace + Serializes the message + OSD containting the messaage - + - Serialize the object + Message recieved in response to request to change display name - An containing the objects data - + + New display name + + + String message indicating the result of the operation + + + Numerical code of the result, 200 indicates success + + - Deserialize the message + Serializes the message - An containing the data + OSD containting the messaage - + - A message containing the request/response used for updating a notecard - contained with an agents inventory + Message recieved when someone nearby changes their display name - - Object containing request or response + + Previous display name, empty string if default - + + New display name + + - Serialize the object + Serializes the message - An containing the objects data + OSD containting the messaage - + - Deserialize the message + Return a decoded capabilities message as a strongly typed object - An containing the data + A string containing the name of the capabilities message key + An to decode + A strongly typed object containing the decoded information from the capabilities message, or null + if no existing Message object exists for the specified event - + - Serialize the object + Permissions for control of object media - An containing the objects data - + - Deserialize the message + Style of cotrols that shold be displayed to the user - An containing the data - + - A message sent from the simulator to the viewer which indicates - an error occurred while attempting to update a script in an agents or tasks - inventory + Class representing media data for a single face - - true of the script was successfully compiled by the simulator + + Is display of the alternative image enabled - - A string containing the error which occured while trying - to update the script + + Should media auto loop - - A new AssetID assigned to the script + + Shoule media be auto played - - - A message sent from the viewer to the simulator - requesting the update of an existing script contained - within a tasks inventory - + + Auto scale media to prim face - - if true, set the script mode to running + + Should viewer automatically zoom in on the face when clicked - - The scripts InventoryItem ItemID to update + + Should viewer interpret first click as interaction with the media + or when false should the first click be treated as zoom in commadn - - A lowercase string containing either "mono" or "lsl2" which - specifies the script is compiled and ran on the mono runtime, or the older - lsl runtime + + Style of controls viewer should display when + viewer media on this face - - The tasks which contains the script to update + + Starting URL for the media - + + Currently navigated URL + + + Media height in pixes + + + Media width in pixels + + + Who can controls the media + + + Who can interact with the media + + + Is URL whitelist enabled + + + Array of URLs that are whitelisted + + - Serialize the object + Serialize to OSD + + OSDMap with the serialized data + + + + Deserialize from OSD data - An containing the objects data + Serialized OSD data + Deserialized object - + - Deserialize the message + Particle system specific enumerators, flags and methods. - An containing the data - + - A message containing either the request or response used in updating a script inside - a tasks inventory + Current version of the media data for the prim - - Object containing request or response - - + - Serialize the object + Array of media entries indexed by face number - An containing the objects data - + - Deserialize the message + Complete structure for the particle system - An containing the data - + - Response from the simulator to notify the viewer the upload is completed, and - the UUID of the script asset and its compiled status + Particle source pattern - - The uploaded texture asset ID + + None - - true of the script was compiled successfully + + Drop particles from source position with no force - - - A message sent from a viewer to the simulator requesting a temporary uploader capability - used to update a script contained in an agents inventory - + + "Explode" particles in all directions - - The existing asset if of the script in the agents inventory to replace + + Particles shoot across a 2D area - - The language of the script - Defaults to lsl version 2, "mono" might be another possible option + + Particles shoot across a 3D Cone - - - Serialize the object - - An containing the objects data + + Inverse of AngleCone (shoot particles everywhere except the 3D cone defined - + - Deserialize the message + Particle Data Flags - An containing the data - - - A message containing either the request or response used in updating a script inside - an agents inventory - + + None - - Object containing request or response + + Interpolate color and alpha from start to end - - - Serialize the object - - An containing the objects data + + Interpolate scale from start to end - - - Deserialize the message - - An containing the data + + Bounce particles off particle sources Z height - - - Serialize the object - - An containing the objects data + + velocity of particles is dampened toward the simulators wind - - - Deserialize the message - - An containing the data + + Particles follow the source - - Base class for Map Layers via Capabilities + + Particles point towards the direction of source's velocity - - + + Target of the particles - - - Serialize the object - - An containing the objects data + + Particles are sent in a straight line - - - Deserialize the message - - An containing the data + + Particles emit a glow - - - Sent by an agent to the capabilities server to request map layers - + + used for point/grab/touch - - - A message sent from the simulator to the viewer which contains an array of map images and their grid coordinates - + + continuous ribbon particle - - An array containing LayerData items + + particle data contains glow - - - Serialize the object - - An containing the objects data + + particle data contains blend functions - + - Deserialize the message + Particle Flags Enum - An containing the data - - - An object containing map location details - + + None - - The Asset ID of the regions tile overlay + + Acceleration and velocity for particles are + relative to the object rotation - - The grid location of the southern border of the map tile + + Particles use new 'correct' angle parameters - - The grid location of the western border of the map tile + + Particle Flags + There appears to be more data packed in to this area + for many particle systems. It doesn't appear to be flag values + and serialization breaks unless there is a flag for every + possible bit so it is left as an unsigned integer - - The grid location of the eastern border of the map tile + + pattern of particles - - The grid location of the northern border of the map tile + + A representing the maximimum age (in seconds) particle will be displayed + Maximum value is 30 seconds - - Object containing request or response + + A representing the number of seconds, + from when the particle source comes into view, + or the particle system's creation, that the object will emits particles; + after this time period no more particles are emitted - - - Serialize the object - - An containing the objects data + + A in radians that specifies where particles will not be created - - - Deserialize the message - - An containing the data + + A in radians that specifies where particles will be created - - - New as of 1.23 RC1, no details yet. - + + A representing the number of seconds between burts. - - - Serialize the object - - An containing the objects data + + A representing the number of meters + around the center of the source where particles will be created. - - - Deserialize the message - - An containing the data + + A representing in seconds, the minimum speed between bursts of new particles + being emitted - - - Serialize the object - - An containing the objects data + + A representing in seconds the maximum speed of new particles being emitted. - - - Deserialize the message - - An containing the data + + A representing the maximum number of particles emitted per burst - - A string containing the method used + + A which represents the velocity (speed) from the source which particles are emitted - - - A request sent from an agent to the Simulator to begin a new conference. - Contains a list of Agents which will be included in the conference - + + A which represents the Acceleration from the source which particles are emitted - - An array containing the of the agents invited to this conference + + The Key of the texture displayed on the particle - - The conferences Session ID + + The Key of the specified target object or avatar particles will follow - - - Serialize the object - - An containing the objects data + + Flags of particle from - - - Deserialize the message - - An containing the data + + Max Age particle system will emit particles for - - - A moderation request sent from a conference moderator - Contains an agent and an optional action to take - + + The the particle has at the beginning of its lifecycle - - The Session ID + + The the particle has at the ending of its lifecycle - - + + A that represents the starting X size of the particle + Minimum value is 0, maximum value is 4 - - A list containing Key/Value pairs, known valid values: - key: text value: true/false - allow/disallow specified agents ability to use text in session - key: voice value: true/false - allow/disallow specified agents ability to use voice in session - - "text" or "voice" + + A that represents the starting Y size of the particle + Minimum value is 0, maximum value is 4 - - + + A that represents the ending X size of the particle + Minimum value is 0, maximum value is 4 - - - Serialize the object - - An containing the objects data + + A that represents the ending Y size of the particle + Minimum value is 0, maximum value is 4 - - - Deserialize the message - - An containing the data + + A that represents the start glow value + Minimum value is 0, maximum value is 1 - - - A message sent from the agent to the simulator which tells the - simulator we've accepted a conference invitation - + + A that represents the end glow value + Minimum value is 0, maximum value is 1 - - The conference SessionID + + OpenGL blend function to use at particle source - - - Serialize the object - - An containing the objects data + + OpenGL blend function to use at particle destination - + - Deserialize the message + Can this particle system be packed in a legacy compatible way - An containing the data + True if the particle system doesn't use new particle system features - + - Serialize the object + Decodes a byte[] array into a ParticleSystem Object - An containing the objects data + ParticleSystem object + Start position for BitPacker - + - Deserialize the message + Generate byte[] array from particle data - An containing the data + Byte array - - - Serialize the object - - An containing the objects data + + - + - Deserialize the message + Parameters used to construct a visual representation of a primitive - An containing the data - - - Serialize the object - - An containing the objects data + + - - - Deserialize the message - - An containing the data + + - - Key of sender + + - - Name of sender + + - - Key of destination avatar + + - - ID of originating estate + + - - Key of originating region + + - - Coordinates in originating region + + - - Instant message type + + - - Group IM session toggle + + - - Key of IM session, for Group Messages, the groups UUID + + - - Timestamp of the instant message + + - - Instant message text + + - - Whether this message is held for offline avatars + + - - Context specific packed data + + - - Is this invitation for voice group/conference chat + + - - - Serialize the object - - An containing the objects data + + - + + + + + + + + + + + + + + Attachment point to an avatar + + + + + + + + + + + + + + - Deserialize the message + Calculdates hash code for prim construction data - An containing the data + The has - + - Sent from the simulator to the viewer. - - When an agent initially joins a session the AgentUpdatesBlock object will contain a list of session members including - a boolean indicating they can use voice chat in this session, a boolean indicating they are allowed to moderate - this session, and lastly a string which indicates another agent is entering the session with the Transition set to "ENTER" - - During the session lifetime updates on individuals are sent. During the update the booleans sent during the initial join are - excluded with the exception of the Transition field. This indicates a new user entering or exiting the session with - the string "ENTER" or "LEAVE" respectively. + Information on the flexible properties of a primitive - + + + + + + + + + + + + + + + + + + + - Serialize the object + Default constructor - An containing the objects data - + - Deserialize the message + - An containing the data + + - + - An EventQueue message sent when the agent is forcibly removed from a chatterbox session + + - + - A string containing the reason the agent was removed + + - + - The ChatterBoxSession's SessionID + Information on the light properties of a primitive - - - Serialize the object - - An containing the objects data + + - - - Deserialize the message - - An containing the data + + - - - Serialize the object - - An containing the objects data + + - + + + + + + + - Deserialize the message + Default constructor - An containing the data - + - Serialize the object + - An containing the objects data + + - + - Deserialize the message + - An containing the data + - + - Serialize the object + - An containing the objects data + - + - Deserialize the message + Information on the light properties of a primitive as texture map - An containing the data - + + + + + + + - Serialize the object + Default constructor - An containing the objects data - + - Deserialize the message + - An containing the data + + - + + - + - Serialize the object + - An containing the objects data + - + - Deserialize the message + Information on the sculpt properties of a sculpted primitive - An containing the data - + - Serialize the object + Render inside out (inverts the normals). - An containing the objects data - + - Deserialize the message + Render an X axis mirror of the sculpty. - An containing the data - + - Serialize the object + Default constructor - An containing the objects data - + - Deserialize the message + - An containing the data + + - + - Event Queue message describing physics engine attributes of a list of objects - Sim sends these when object is selected + Extended properties to describe an object - - Array with the list of physics properties + + - - - Serializes the message - - Serialized OSD + + - - - Deseializes the message - - Incoming data to deserialize + + - - - A message sent from the viewer to the simulator which - specifies that the user has changed current URL - of the specific media on a prim face - + + - - - New URL - + + - - - Prim UUID where navigation occured - + + - - - Face index - + + - - - Serialize the object - - An containing the objects data + + - - - Deserialize the message - - An containing the data + + - - Base class used for the ObjectMedia message + + - - - Message used to retrive prim media data - + + - - - Prim UUID - + + - - - Requested operation, either GET or UPDATE - + + - - - Serialize object - - Serialized object as OSDMap + + - - - Deserialize the message - - An containing the data + + - - - Message used to update prim media data - + + - - - Prim UUID - + + - - - Array of media entries indexed by face number - + + - - - Media version string - + + - - - Serialize object - - Serialized object as OSDMap + + - - - Deserialize the message - - An containing the data + + - - - Message used to update prim media data - + + - - - Prim UUID - + + - + - Array of media entries indexed by face number + Default constructor - + - Requested operation, either GET or UPDATE + Set the properties that are set in an ObjectPropertiesFamily packet + that has + been partially filled by an ObjectPropertiesFamily packet - + - Serialize object + Describes physics attributes of the prim - Serialized object as OSDMap - - - Deserialize the message - - An containing the data + + Primitive's local ID - - - Message for setting or getting per face MediaEntry - + + Density (1000 for normal density) - - The request or response details block + + Friction - + + Gravity multiplier (1 for normal gravity) + + + Type of physics representation of this primitive in the simulator + + + Restitution + + - Serialize the object + Creates PhysicsProperties from OSD - An containing the objects data + OSDMap with incoming data + Deserialized PhysicsProperties object - + - Deserialize the message + Serializes PhysicsProperties to OSD - An containing the data + OSDMap with serialized PhysicsProperties data - - Details about object resource usage + + - - Object UUID + + - - Object name + + - - Indicates if object is group owned + + - - Locatio of the object + + - - Object owner + + - - Resource usage, keys are resource names, values are resource usage for that specific resource + + Foliage type for this primitive. Only applicable if this + primitive is foliage - - - Deserializes object from OSD - - An containing the data + + Unknown - - - Makes an instance based on deserialized data - - serialized data - Instance containg deserialized data + + - - Details about parcel resource usage + + - - Parcel UUID + + - - Parcel local ID + + - - Parcel name + + - - Indicates if parcel is group owned + + - - Parcel owner + + - - Array of containing per object resource usage + + - - - Deserializes object from OSD - - An containing the data + + - - - Makes an instance based on deserialized data - - serialized data - Instance containg deserialized data + + - - Resource usage base class, both agent and parcel resource - usage contains summary information + + - - Summary of available resources, keys are resource names, - values are resource usage for that specific resource + + - - Summary resource usage, keys are resource names, - values are resource usage for that specific resource + + - - - Serializes object - - serialized data + + Identifies the owner if audio or a particle system is + active - - - Deserializes object from OSD - - An containing the data + + - - Agent resource usage + + - - Per attachment point object resource usage + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Objects physics engine propertis + + + Extra data about primitive + + + Indicates if prim is attached to an avatar + + + Number of clients referencing this prim + + + Uses basic heuristics to estimate the primitive shape + + + + Default constructor + - + - Deserializes object from OSD + Packs PathTwist, PathTwistBegin, PathRadiusOffset, and PathSkew + parameters in to signed eight bit values - An containing the data + Floating point parameter to pack + Signed eight bit value containing the packed parameter - + - Makes an instance based on deserialized data + Unpacks PathTwist, PathTwistBegin, PathRadiusOffset, and PathSkew + parameters from signed eight bit integers to floating point values - serialized data - Instance containg deserialized data + Signed eight bit value to unpack + Unpacked floating point value - + - Detects which class handles deserialization of this message + Texture animation mode - An containing the data - Object capable of decoding this message - - Request message for parcel resource usage + + Disable texture animation - - UUID of the parel to request resource usage info + + Enable texture animation - - - Serializes object - - serialized data + + Loop when animating textures - - - Deserializes object from OSD - - An containing the data + + Animate in reverse direction - - Response message for parcel resource usage + + Animate forward then reverse - - URL where parcel resource usage details can be retrieved + + Slide texture smoothly instead of frame-stepping - - URL where parcel resource usage summary can be retrieved + + Rotate texture instead of using frames - - - Serializes object - - serialized data + + Scale texture instead of using frames - + - Deserializes object from OSD + A single textured face. Don't instantiate this class yourself, use the + methods in TextureEntry - An containing the data - - - Detects which class handles deserialization of this message - - An containing the data - Object capable of decoding this message + + - - Parcel resource usage + + - - Array of containing per percal resource usage + + - - - Deserializes object from OSD - - An containing the data + + - - - Reply to request for bunch if display names - + + - - Current display name + + - - Following UUIDs failed to return a valid display name + + - - - Serializes the message - - OSD containting the messaage + + - - - Message sent when requesting change of the display name - + + - - Current display name + + - - Desired new display name + + In the future this will specify whether a webpage is + attached to this face - + + + + + + + - Serializes the message + Contains the definition for individual faces - OSD containting the messaage + - + - Message recieved in response to request to change display name + + - - New display name + + + Represents all of the texturable faces for an object + + Grid objects have infinite faces, with each face + using the properties of the default face unless set otherwise. So if + you have a TextureEntry with a default texture uuid of X, and face 18 + has a texture UUID of Y, every face would be textured with X except for + face 18 that uses Y. In practice however, primitives utilize a maximum + of nine faces - - String message indicating the result of the operation + + - - Numerical code of the result, 200 indicates success + + - + - Serializes the message + Constructor that takes a default texture UUID - OSD containting the messaage + Texture UUID to use as the default texture - + - Message recieved when someone nearby changes their display name + Constructor that takes a TextureEntryFace for the + default face + Face to use as the default face - - Previous display name, empty string if default - - - New display name - - + - Serializes the message + Constructor that creates the TextureEntry class from a byte array - OSD containting the messaage + Byte array containing the TextureEntry field + Starting position of the TextureEntry field in + the byte array + Length of the TextureEntry field, in bytes - + - Return a decoded capabilities message as a strongly typed object + This will either create a new face if a custom face for the given + index is not defined, or return the custom face for that index if + it already exists - A string containing the name of the capabilities message key - An to decode - A strongly typed object containing the decoded information from the capabilities message, or null - if no existing Message object exists for the specified event + The index number of the face to create or + retrieve + A TextureEntryFace containing all the properties for that + face - + - Permissions for control of object media + + + - + - Style of cotrols that shold be displayed to the user + + - + - Class representing media data for a single face + + - - Is display of the alternative image enabled - - - Should media auto loop - - - Shoule media be auto played - - - Auto scale media to prim face - - - Should viewer automatically zoom in on the face when clicked - - - Should viewer interpret first click as interaction with the media - or when false should the first click be treated as zoom in commadn - - - Style of controls viewer should display when - viewer media on this face + + + + + - - Starting URL for the media + + + Controls the texture animation of a particular prim + - - Currently navigated URL + + - - Media height in pixes + + - - Media width in pixels + + - - Who can controls the media + + - - Who can interact with the media + + - - Is URL whitelist enabled + + - - Array of URLs that are whitelisted + + - + - Serialize to OSD + - OSDMap with the serialized data + + - + - Deserialize from OSD data + - Serialized OSD data - Deserialized object + + + + + + + @@ -35768,29 +36160,6 @@ - - - Level of Detail mesh - - - - - Contains all mesh faces that belong to a prim - - - - List of primitive faces - - - - Decodes mesh asset into FacetedMesh - - Mesh primitive - Asset retrieved from the asset server - Level of detail - Resulting decoded FacetedMesh - True if mesh asset decoding was successful - This is used to login a specific user account(s). It may only be called after @@ -35930,6 +36299,16 @@ The level of the audio, a number between -100 and 100 where 0 represents ‘normal’ speaking volume + + + List of audio input devices + + + + + List of audio output devices + + Start up the Voice service. @@ -36003,6 +36382,11 @@ Handle response to audio input device query + + + Set audio test mode + + Set voice channel for new parcel @@ -36035,6 +36419,60 @@ + + Enable logging + + + The folder where any logs will be created + + + This will be prepended to beginning of each log file + + + The suffix or extension to be appended to each log file + + + + 0: NONE - No logging + 1: ERROR - Log errors only + 2: WARNING - Log errors and warnings + 3: INFO - Log errors, warnings and info + 4: DEBUG - Log errors, warnings, info and debug + + + + + Constructor for default logging settings + + + + Audio Properties Events are sent after audio capture is started. These events are used to display a microphone VU meter + + + + Event for most mundane request reposnses. + + + + Response to Connector.Create request + + + Response to Aux.GetCaptureDevices request + + + Response to Aux.GetRenderDevices request + + + Audio Properties Events are sent after audio capture is started. + These events are used to display a microphone VU meter + + + Response to Account.Login request + + + This event message is sent whenever the login state of the + particular Account has transitioned from one value to another + Starts a thread that keeps the daemon running @@ -36128,75 +36566,6 @@ The level of the audio, a number between -100 and 100 where 0 represents ‘normal’ speaking volume - - - List of audio input devices - - - - - List of audio output devices - - - - - Set audio test mode - - - - - Event for most mundane request reposnses. - - - - Response to Connector.Create request - - - Response to Aux.GetCaptureDevices request - - - Response to Aux.GetRenderDevices request - - - Audio Properties Events are sent after audio capture is started. - These events are used to display a microphone VU meter - - - Response to Account.Login request - - - This event message is sent whenever the login state of the - particular Account has transitioned from one value to another - - - Enable logging - - - The folder where any logs will be created - - - This will be prepended to beginning of each log file - - - The suffix or extension to be appended to each log file - - - - 0: NONE - No logging - 1: ERROR - Log errors only - 2: WARNING - Log errors and warnings - 3: INFO - Log errors, warnings and info - 4: DEBUG - Log errors, warnings, info and debug - - - - - Constructor for default logging settings - - - - Audio Properties Events are sent after audio capture is started. These events are used to display a microphone VU meter - Positional vector of the users position @@ -36236,5 +36605,52 @@ + + + + + + + + Delegate to wrap another delegate and its arguments + + + + + + + An instance of DelegateWrapper which calls InvokeWrappedDelegate, + which in turn calls the DynamicInvoke method of the wrapped + delegate + + + + + Callback used to call EndInvoke on the asynchronously + invoked DelegateWrapper + + + + + Executes the specified delegate with the specified arguments + asynchronously on a thread pool thread + + + + + + + Invokes the wrapped delegate synchronously + + + + + + + Calls EndInvoke on the wrapper and Close on the resulting WaitHandle + to prevent resource leaks + + + -- cgit v1.1