OpenMetaverse Identifier code for primitive types None A Primitive A Avatar Linden grass Linden tree A primitive that acts as the source for a particle stream A Linden tree Primary parameters for primitives such as Physics Enabled or Phantom Deprecated Whether physics are enabled for this object Whether this object contains an active touch script Whether this object can receive payments Whether this object is phantom (no collisions) Deprecated Deprecated Server flag, will not be sent to clients. Specifies that the object is destroyed when it touches a simulator edge Server flag, will not be sent to clients. Specifies that the object will be returned to the owner's inventory when it touches a simulator edge Server flag, will not be sent to clients. Server flag, will not be sent to client. Specifies that the object is hovering/flying Sound flags for sounds attached to primitives Material type for a primitive Used in a helper function to roughly determine prim shape Extra parameters for primitives, these flags are for features that have been added after the original ObjectFlags that has all eight bits reserved already Whether this object has flexible parameters Whether this object has light parameters Whether this object is a sculpted prim Attachment points for objects on avatar bodies Both InventoryObject and InventoryAttachment types can be attached Right hand if object was not previously attached Chest Skull Left shoulder Right shoulder Left hand Right hand Left foot Right foot Spine Pelvis Mouth Chin Left ear Right ear Left eyeball Right eyeball Nose Right upper arm Right forearm Left upper arm Left forearm Right hip Right upper leg Right lower leg Left hip Left upper leg Left lower leg Stomach Left pectoral Right pectoral HUD Center position 2 HUD Top-right HUD Top HUD Top-left HUD Center HUD Bottom-left HUD Bottom HUD Bottom-right Tree foliage types Pine1 tree Oak tree Tropical Bush1 Palm1 tree Dogwood tree Tropical Bush2 Palm2 tree Cypress1 tree Cypress2 tree Pine2 tree Plumeria Winter pinetree1 Winter Aspen tree Winter pinetree2 Eucalyptus tree Fern Eelgrass Sea Sword Kelp1 plant Beach grass Kelp2 plant Grass foliage types Action associated with clicking on an object Touch object Sit on object Purchase object or contents Pay the object Open task inventory Play parcel media Open parcel media Particle system specific enumerators, flags and methods. Foliage type for this primitive. Only applicable if this primitive is foliage Unknown Identifies the owner if audio or a particle system is active Default constructor Packs PathTwist, PathTwistBegin, PathRadiusOffset, and PathSkew parameters in to signed eight bit values 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 Signed eight bit value to unpack Unpacked floating point value Uses basic heuristics to estimate the primitive shape Parameters used to construct a visual representation of a primitive Attachment point to an avatar Information on the flexible properties of a primitive Default constructor Information on the light properties of a primitive Default constructor Information on the sculpt properties of a sculpted primitive Default constructor Render inside out (inverts the normals). Render an X axis mirror of the sculpty. Extended properties to describe an object Default constructor Set the properties that are set in an ObjectPropertiesFamily packet that has been partially filled by an ObjectPropertiesFamily packet Complete structure for the particle system 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 A representing the maximimum age (in seconds) particle will be displayed Maximum value is 30 seconds 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 A in radians that specifies where particles will not be created A in radians that specifies where particles will be created A representing the number of seconds between burts. A representing the number of meters around the center of the source where particles will be created. A representing in seconds, the minimum speed between bursts of new particles being emitted A representing in seconds the maximum speed of new particles being emitted. A representing the maximum number of particles emitted per burst A which represents the velocity (speed) from the source which particles are emitted A which represents the Acceleration from the source which particles are emitted The Key of the texture displayed on the particle The Key of the specified target object or avatar particles will follow Flags of particle from Max Age particle system will emit particles for The the particle has at the beginning of its lifecycle 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 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 A that represents the ending Y size of the particle Minimum value is 0, maximum value is 4 Decodes a byte[] array into a ParticleSystem Object ParticleSystem object Start position for BitPacker Generate byte[] array from particle data Byte array Particle source pattern None Drop particles from source position with no force "Explode" particles in all directions Particles shoot across a 2D area Particles shoot across a 3D Cone Inverse of AngleCone (shoot particles everywhere except the 3D cone defined Particle Data Flags None Interpolate color and alpha from start to end Interpolate scale from start to end Bounce particles off particle sources Z height velocity of particles is dampened toward the simulators wind Particles follow the source Particles point towards the direction of source's velocity Target of the particles Particles are sent in a straight line Particles emit a glow used for point/grab/touch Particle Flags Enum None Acceleration and velocity for particles are relative to the object rotation Particles use new 'correct' angle parameters Texture animation mode 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 Rotate texture instead of using frames Scale texture instead of using frames A single textured face. Don't instantiate this class yourself, use the methods in TextureEntry Contains the definition for individual faces In the future this will specify whether a webpage is attached to this face 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 Constructor that takes a default texture UUID Texture UUID to use as the default texture Constructor that takes a TextureEntryFace for the default face Face to use as the default face Constructor that creates the TextureEntry class from a byte array 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 The index number of the face to create or retrieve A TextureEntryFace containing all the properties for that face Controls the texture animation of a particular prim 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 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 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 Avatar profile flags Represents an avatar (other than your own) Groups that this avatar is a member of Positive and negative ratings Avatar properties including about text, profile URL, image IDs and publishing settings Avatar interests including spoken languages, skills, and "want to" choices Movement control flags for avatars. Typically not set or used by clients. To move your avatar, use Client.Self.Movement instead Default constructor First name Last name Full name Active group Positive and negative ratings Positive ratings for Behavior Negative ratings for Behavior Positive ratings for Appearance 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 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 Starts a thread that keeps the daemon running Stops the daemon and the thread keeping it running This is used to get a list of audio devices that can be used for capture (input) of voice. This is used to get a list of audio devices that can be used for render (playback) of voice. This command is used to select the render device. The name of the device as returned by the Aux.GetRenderDevices command. This command is used to select the capture device. The name of the device as returned by the Aux.GetCaptureDevices command. This command is used to start the audio capture process which will cause AuxAudioProperty Events to be raised. These events can be used to display a microphone VU meter for the currently selected capture device. This command should not be issued if the user is on a call. (unused but required) This command is used to stop the audio capture process. This command is used to set the mic volume while in the audio tuning process. Once an acceptable mic level is attained, the application must issue a connector set mic volume command to have that level be used while on voice calls. the microphone volume (-100 to 100 inclusive) This command is used to set the speaker volume while in the audio tuning process. Once an acceptable speaker level is attained, the application must issue a connector set speaker volume command to have that level be used while on voice calls. the speaker volume (-100 to 100 inclusive) This is used to initialize and stop the Connector as a whole. The Connector Create call must be completed successfully before any other requests are made (typically during application initialization). The shutdown should be called when the application is shutting down to gracefully release resources A string value indicting the Application name URL for the management server LoggingSettings Shutdown Connector -- Should be called when the application is shutting down to gracefully release resources Handle returned from successful Connector ‘create’ request Mute or unmute the microphone Handle returned from successful Connector ‘create’ request true (mute) or false (unmute) Mute or unmute the speaker Handle returned from successful Connector ‘create’ request true (mute) or false (unmute) Set microphone volume Handle returned from successful Connector ‘create’ request The level of the audio, a number between -100 and 100 where 0 represents ‘normal’ speaking volume Set local speaker volume Handle returned from successful Connector ‘create’ request The level of the audio, a number between -100 and 100 where 0 represents ‘normal’ speaking volume Create a Session Sessions typically represent a connection to a media session with one or more participants. This is used to generate an ‘outbound’ call to another user or channel. The specifics depend on the media types involved. A session handle is required to control the local user functions within the session (or remote users if the current account has rights to do so). Currently creating a session automatically connects to the audio media, there is no need to call Session.Connect at this time, this is reserved for future use. Handle returned from successful Connector ‘create’ request This is the URI of the terminating point of the session (ie who/what is being called) This is the display name of the entity being called (user or channel) Only needs to be supplied when the target URI is password protected This indicates the format of the password as passed in. This can either be “ClearText” or “SHA1UserName”. If this element does not exist, it is assumed to be “ClearText”. If it is “SHA1UserName”, the password as passed in is the SHA1 hash of the password and username concatenated together, then base64 encoded, with the final “=” character stripped off. Used to accept a call SessionHandle such as received from SessionNewEvent "default" This command is used to start the audio render process, which will then play the passed in file through the selected audio render device. This command should not be issued if the user is on a call. The fully qualified path to the sound file. True if the file is to be played continuously and false if it is should be played once. This command is used to stop the audio render process. The fully qualified path to the sound file issued in the start render command. This is used to ‘end’ an established session (i.e. hang-up or disconnect). Handle returned from successful Session ‘create’ request or a SessionNewEvent Set the combined speaking and listening position in 3D space. There appears to be no response to this request. Handle returned from successful Session ‘create’ request or a SessionNewEvent Speaking position Listening position Set User Volume for a particular user. Does not affect how other users hear that user. Handle returned from successful Session ‘create’ request or a SessionNewEvent The level of the audio, a number between -100 and 100 where 0 represents ‘normal’ speaking volume This is used to login a specific user account(s). It may only be called after Connector initialization has completed successfully Handle returned from successful Connector ‘create’ request User's account name User's account password Values may be “AutoAnswer” or “VerifyAnswer” "" This is an integer that specifies how often the daemon will send participant property events while in a channel. If this is not set the default will be “on state change”, which means that the events will be sent when the participant starts talking, stops talking, is muted, is unmuted. The valid values are: 0 – Never 5 – 10 times per second 10 – 5 times per second 50 – 1 time per second 100 – on participant state change (this is the default) false This is used to logout a user session. It should only be called with a valid AccountHandle. Handle returned from successful Connector ‘login’ request Response to Session.Create request Response to Session.Connect request Response to Session.RenderAudioStart request Response to Session.RenderAudioStop request Response to Session.Terminate request Response to Session.SetParticipantVolumeForMe request Sent when an incoming session occurs Sent for specific Session state changes (connected, disconnected) Sent for specific Participant state changes (new participants, dropped participants) Sent for specific Participant Property changes (IsSpeaking, Volume, Energy, etc.) Response to Connector.Create request Response to Connector.InitiateShutdown request Response to Connector.MuteLocalMic request Response to Connector.MuteLocalSpeaker request Response to Connector.SetLocalMicVolume request Response to Connector.SetLocalSpeakerVolume request Response to Aux.GetCaptureDevices request Response to Aux.GetRenderDevices request Response to Aux.SetRenderDevice request Response to Aux.SetCaptureDevice request Response to Aux.CaptureAudioStart request Response to Aux.CaptureAudioStop request Response to Aux.SetMicLevel request Response to Aux.SetSpeakerLevel 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 Response to Account.Logout 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 Response to Session.Create request Response to Session.Connect request Response to Session.RenderAudioStart request Response to Session.RenderAudioStop request Response to Session.Terminate request Response to Session.SetParticipantVolumeForMe request Audio Properties Events are sent after audio capture is started. These events are used to display a microphone VU meter True if voice is detected on the microphone audio energy, from 0 to 1 current mic volume currently unimplemented, and always 0 Positional vector of the users position Velocity vector of the position At Orientation (X axis) of the position Up Orientation (Y axis) of the position Left Orientation (Z axis) of the position 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 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 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 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 The assets unique ID The "type" of asset, Notecard, Animation, etc 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 Returns asset type 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 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. Number of milliseconds before an asset transfer will time out 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 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 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 Maximum number of queued ACKs to be sent before SendAcks() is forced Network stats queue length (seconds) Enable to process packets synchronously, where all of the callbacks for each packet must return before the next packet is processed This is an experimental feature and is not completely reliable yet. Ideally it would reduce context switches and thread overhead, but several calls currently block for a long time and would need to be rewritten as asynchronous code before this is feasible Enable/disable storing terrain heightmaps in the TerrainManager Enable/disable sending periodic camera updates 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, 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 Maximum number of times to resend a failed packet Throttle outgoing packet rate 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 Constructor Reference to a GridClient object Gets the cost of uploading an asset to the grid Cost of uploading an asset Read-only since this value is dynamically fetched at login Return a decoded capabilities message as a strongly typed object 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 Sent to the client to indicate a teleport request has completed Interface requirements for Messaging system 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 An Array of objects 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 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 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 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 TRUE of region denies access to age unverified users 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 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 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 A message sent from the simulator to an agent which contains the groups the agent is in 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 Serialize the object An containing the objects data Deserialize the message An containing the data 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 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 Serialize the object An containing the objects data Deserialize the message An containing the data An EventQueue message sent from the simulator to an agent when the agent leaves a group An Array containing the AgentID and GroupID Serialize the object An containing the objects data 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 The GroupID the Agent is leaving Base class for Asset uploads/results via Capabilities 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 request a temporary upload capability which allows an asset to be uploaded The request state (Always "upload") 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 The request state (Always "complete") 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 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 which indicates the minimum version required for using voice chat Major Version Required Minor version required The name of the region sending the version requrements 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 The Parcel ID which the voice server URI applies The name of the region A uri containing the server/channel information which the viewer can utilize to participate in voice conversations 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 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 request/response which is used to update a notecard contained within a tasks inventory The of the Task containing the notecard asset to update 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 A message containing the request/response used for updating a notecard 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 Serialize the object An containing the objects data Deserialize the message 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 true of the script was successfully compiled by the simulator The state of the request A string containing the error which occured while trying to update the script A new AssetID assigned to the script A message sent from the viewer to the simulator requesting the update of an existing script contained within a tasks inventory if true, set the script mode to running 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 The tasks which contains the script to update Serialize the object An containing the objects data Deserialize the message An containing the data A message containing either the request or response used in updating a script inside a tasks inventory Object containing request or response 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 The request state (Always "complete") The uploaded texture asset ID 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 The existing asset if of the script in the agents inventory to replace The language of the script Defaults to lsl version 2, "mono" might be another possible option Serialize the object An containing the objects data Deserialize the message An containing the data A message containing either the request or response used in updating a script inside an agents inventory Object containing request or response 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 the viewer which contains an array of map images and their grid coordinates An array containing LayerData items Serialize the object An containing the objects data Deserialize the message An containing the data A n object containing map location details The Asset ID of the regions tile overlay The grid location of the southern border of the map tile The grid location of the western border of the map tile The grid location of the eastern border of the map tile The grid location of the northern border of the map tile New as of 1.23 RC1, no details yet. 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 string containing the method used 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 array containing the of the agents invited to this conference The conferences Session ID Serialize the object An containing the objects data Deserialize the message An containing the data A moderation request sent from a conference moderator Contains an agent and an optional action to take The Session ID 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" Serialize the object An containing the objects data Deserialize the message An containing the data A message sent from the agent to the simulator which tells the simulator we've accepted a conference invitation The conference SessionID 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 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 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 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 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 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 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 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. The character the separates the uuid from extension information in an archived asset filename Extensions used for asset types in the archive 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 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 Clear the contents of the dictionary Enumerator for iterating dictionary entries Gets the number of Key/Value pairs contained in the Indexer for the dictionary The key The value 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 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 Triggered upon a successful .GetTopColliders() Triggered upon a successful .GetTopScripts() Returned, along with other info, upon a successful .GetInfo() Returned, along with other info, upon a successful .GetInfo() Returned, along with other info, upon a successful .GetInfo() Returned, along with other info, upon a successful .GetInfo() Returned, along with other info, upon a successful .GetInfo() Triggered upon a successful .RequestCovenant() Triggered on LandStatReply when the report type is for "top colliders" Triggered on LandStatReply when the report type is for "top scripts" Triggered when the list of estate managers is received for the current estate FIXME - Enumerate all params from EstateOwnerMessage packet 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 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 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 A set of textures that are layered on texture of each other and "baked" in to a single texture, for avatar appearances Reference to the GridClient object Finald baked texture Appearance parameters the drive the baking process Wearable textures Total number of textures in the bake Width of the final baked image and scratchpad Height of the final baked image and scratchpad Bake type Default constructor Reference to the GridClient object Total number of layers this layer set is composed of Appearance parameters the drive the baking process Adds an image to this baking texture and potentially processes it, or stores it for processing later The baking texture index of the image to be added JPEG2000 compressed image to be added to the baking texture True if Decode() needs to be called for the texture, otherwise false True if this texture is completely baked and JPEG2000 data is available, otherwise false 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 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 Initializes a new instance of an AssetWearable object with parameters A string containing the asset parameters 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 Initializes a new instance of an AssetBodyPart object with parameters A string representing the values of the Bodypart Override the base classes AssetType 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 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 Holds group information on an individual profile pick Retrieve friend status notifications, and retrieve avatar names and profiles 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 Start a request for Avatar Properties Search for an avatar (first name, last name, and uuid) 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 UUIDNameReply Packet and insert Full Names into the Avatars Dictionary Incoming Packet to process Unused Process incoming avatar animations Process incoming avatar appearance Process incoming avatar properties (profile data) Process incoming Avatar Interests information Process an incoming effect Process an incoming list of profile picks Process an incoming details of a profile pick Process an incoming list of profile classifieds Process an incoming details of a profile Classified Triggered when an avatar animation signal is received UUID of the avatar sending the animation UUID of the animation, and animation sequence number Triggered when AvatarAppearance is received Triggered when a UUIDNameReply is received Triggered when a response for avatar interests is returned Triggered when avatar properties are received (AvatarPropertiesReply) Triggered when an avatar group list is received (AvatarGroupsReply) Triggered when a name search reply is received (AvatarPickerReply) Callback returning a dictionary of avatar's picks Callback returning a details of a specifick pick Callback returning a dictionary of avatar's Classified Callback returning a details of a specifick Classified Manager class to for agents appearance, both body parts and clothing Total number of wearables for each avatar Total number of baked textures on each avatar Total number of wearables per bake layer Total number of textures on an avatar, baked or not Map of what wearables are included in each bake Secret values to finalize the cache check hashes for each bake Default avatar texture, used to detect when a custom texture is not set for a face An which keeps track of wearables data Default constructor This agents Object Reference to an AssetManager object Returns the assetID for a given WearableType the of the asset The of the WearableType Ask the server what we are wearing and set appearance based on that Replace the current outfit with a list of wearables and set appearance List of wearables that define the new outfit Replace the current outfit with a list of wearables and set appearance List of wearables that define the new outfit Whether to bake textures for the avatar or not Add to the current outfit with the list supplied List of wearables that will be added to the outfit Whether to bake textures for the avatar or not Replace the current outfit with a folder and set appearance UUID of the inventory folder to wear Replace the current outfit with a folder and set appearance Inventory path of the folder to wear Replace the current outfit with a folder and set appearance Folder containing the new outfit Whether to bake the avatar textures or not Replace the current outfit with a folder and set appearance Path of folder containing the new outfit Whether to bake the avatar textures or not Adds a list of attachments to avatar A List containing the attachments to add If true, tells simulator to remove existing attachment first Attach an item to an avatar at a specific attach point A to attach the on the avatar to attach the item to Attach an item to an avatar specifying attachment details The of the item to attach The attachments owner The name of the attachment The description of the attahment The to apply when attached The of the attachment the on the avatar to attach the item to Detach an item from avatar using an object An object Detach an Item from avatar by items The items ID to detach Build hashes out of the texture assetIDs for each baking layer to ask the simulator whether it has cached copies of each baked texture Force a rebake of the currently worn textures Ask the server what textures our avatar is currently wearing Terminate any wait handles when the network layer disconnects Capability to load TGAs to Bitmap Thrown when a packet could not be successfully deserialized Default constructor Constructor that takes an additional error message An error message to attach to this exception 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 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 A block of data in a packet. Packets are composed of one or more blocks, each block containing one or more fields 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 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 Current length of the data in this packet A generic value, not an actual packet type 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. 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 Fired when another friend terminates friendship. We need to remove them from our cached list. 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 Called when a connection to the SL server is established. The list of friend avatars is populated from XML returned by the login server. That list contains the avatar's id and right, but no names. Here is where those names are requested. This handles the asynchronous response of a RequestAvatarNames call. names cooresponding to the the list of IDs sent the the RequestAvatarNames call. Handle notifications sent when a friends has come online. Handle notifications sent when a friends has gone offline. Handle notifications sent when a friend rights change. This notification is also received when my own rights change. Handle friend location updates The Packet The Simulator Handles relevant messages from the server encapsulated in instant messages. InstantMessage object containing encapsalated instant message Originating Simulator 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 Triggered when an avatar in your friends list comes online System ID of the avatar Triggered when an avatar in your friends list goes offline System ID of the avatar Triggered in response to a call to the FriendRights() method, or when a friend changes your rights System ID of the avatar you changed the right of Triggered when names on the friend list are received after the initial request upon login Triggered when someone offers you friendship System ID of the agent offering friendship full name of the agent offereing friendship session ID need when accepting/declining the offer Return true to accept the friendship, false to deny it Trigger when your friendship offer has been accepted or declined System ID of the avatar who accepted your friendship offer Full name of the avatar who accepted your friendship offer Whether the friendship request was accepted or declined Trigger when someone terminates your friendship. System ID of the avatar who terminated your friendship Full name of the avatar who terminated your friendship Triggered in response to a FindFriend request Friends Key region handle friend is in X/Y location of friend 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 Manager class for our own avatar Reference to the GridClient instance Used for movement and camera tracking Currently playing animations for the agent. Can be used to check the current movement status such as walking, hovering, aiming, etc. by checking for system animations in the Animations class Dictionary containing current Group Chat sessions and members Constructor, setup callbacks for packets related to our avatar A reference to the Class Send a text message from the Agent to the Simulator A containing the message The channel to send the message on, 0 is the public channel. Channels above 0 can be used however only scripts listening on the specified channel will see the message Denotes the type of message being sent, shout, whisper, etc. Request any instant messages sent while the client was offline to be resent. Send an Instant Message to another Avatar The recipients A containing the message to send Send an Instant Message to an existing group chat or conference chat The recipients A containing the message to send IM session ID (to differentiate between IM windows) Send an Instant Message The name this IM will show up as being from Key of Avatar Text message being sent IM session ID (to differentiate between IM windows) IDs of sessions for a conference Send an Instant Message The name this IM will show up as being from Key of Avatar Text message being sent IM session ID (to differentiate between IM windows) Type of instant message to send Whether to IM offline avatars as well Senders Position RegionID Sender is In Packed binary data that is specific to the dialog type Send an Instant Message to a group of the group to send message to Text Message being sent. Send an Instant Message to a group the agent is a member of The name this IM will show up as being from of the group to send message to Text message being sent Send a request to join a group chat session of Group to leave Exit a group chat session. This will stop further Group chat messages from being sent until session is rejoined. of Group chat session to leave Reply to script dialog questions. Channel initial request came on Index of button you're "clicking" Label of button you're "clicking" of Object that sent the dialog request Accept invite for to a chatterbox session of session to accept invite to Start a friends conference List of UUIDs to start a conference with the temportary session ID returned in the callback> Start a particle stream between an agent and an object Key of the source agent Key of the target object The type from the enum A unique for this effect Start a particle stream between an agent and an object Key of the source agent Key of the target object A representing the beams offset from the source A which sets the avatars lookat animation of the Effect Create a particle beam between an avatar and an primitive of sources avatar of the target global offset Color values of beam a float representing the duration the beam will last of the Effect Create a particle swirl around a target position Target's global position Color values of beam A float representing the duration the swirl will last of the Effect Sends a request to sit on the specified object of the object to sit on Sit at offset Follows a call to to actually sit on the object Stands up from sitting on a prim or the ground true of AgentUpdate was sent Does a "ground sit" at the avatar's current position Starts or stops flying True to start flying, false to stop flying Starts or stops crouching True to start crouching, false to stop crouching Starts a jump (begin holding the jump key) Use the autopilot sim function to move the avatar to a new position. Uses double precision to get precise movements The z value is currently not handled properly by the simulator Global X coordinate to move to Global Y coordinate to move to Z coordinate to move to Use the autopilot sim function to move the avatar to a new position The z value is currently not handled properly by the simulator Integer value for the global X coordinate to move to Integer value for the global Y coordinate to move to Floating-point value for the Z coordinate to move to Use the autopilot sim function to move the avatar to a new position The z value is currently not handled properly by the simulator Integer value for the local X coordinate to move to Integer value for the local Y coordinate to move to Floating-point value for the Z coordinate to move to Macro to cancel autopilot sim function Not certain if this is how it is really done true if control flags were set and AgentUpdate was sent to the simulator Grabs an object an unsigned integer of the objects ID within the simulator Overload: Grab a simulated object an unsigned integer of the objects ID within the simulator Drag an object of the object to drag Drag target in region coordinates Overload: Drag an object of the object to drag Drag target in region coordinates Release a grabbed object The Objects Simulator Local ID Release a grabbed object The Objects Simulator Local ID Touches an object an unsigned integer of the objects ID within the simulator Request the current L$ balance Give Money to destination Avatar UUID of the Target Avatar Amount in L$ Give Money to destination Avatar UUID of the Target Avatar Amount in L$ Description that will show up in the recipients transaction history Give L$ to an object object to give money to amount of L$ to give name of object Give L$ to a group group to give money to amount of L$ to give Give L$ to a group group to give money to amount of L$ to give description of transaction Pay texture/animation upload fee Pay texture/animation upload fee description of the transaction Give Money to destionation Object or Avatar UUID of the Target Object/Avatar Amount in L$ Reason (Optional normally) The type of transaction Transaction flags, mostly for identifying group transactions Plays a gesture Asset of the gesture Mark gesture active Inventory of the gesture Asset of the gesture Mark gesture inactive Inventory of the gesture Send an AgentAnimation packet that toggles a single animation on The of the animation to start playing Whether to ensure delivery of this packet or not Send an AgentAnimation packet that toggles a single animation off The of a currently playing animation to stop playing Whether to ensure delivery of this packet or not Send an AgentAnimation packet that will toggle animations on or off A list of animation s, and whether to turn that animation on or off Whether to ensure delivery of this packet or not Teleports agent to their stored home location true on successful teleport to home location Teleport agent to a landmark of the landmark to teleport agent to true on success, false on failure Attempt to look up a simulator name and teleport to the discovered destination Region name to look up Position to teleport to True if the lookup and teleport were successful, otherwise false Attempt to look up a simulator name and teleport to the discovered destination Region name to look up Position to teleport to Target to look at True if the lookup and teleport were successful, otherwise false Teleport agent to another region handle of region to teleport agent to position in destination sim to teleport to true on success, false on failure This call is blocking Teleport agent to another region handle of region to teleport agent to position in destination sim to teleport to direction in destination sim agent will look at true on success, false on failure This call is blocking Request teleport to a another simulator handle of region to teleport agent to position in destination sim to teleport to Request teleport to a another simulator handle of region to teleport agent to position in destination sim to teleport to direction in destination sim agent will look at Teleport agent to a landmark of the landmark to teleport agent to Send a teleport lure to another avatar with default "Join me in ..." invitation message target avatars to lure Send a teleport lure to another avatar with custom invitation message target avatars to lure custom message to send with invitation Respond to a teleport lure by either accepting it and initiating the teleport, or denying it of the avatar sending the lure true to accept the lure, false to decline it Update agent profile struct containing updated profile information Update agents profile interests selection of interests from struct Set the height and the width of the client window. This is used by the server to build a virtual camera frustum for our avatar New height of the viewer window New width of the viewer window Request the list of muted objects and avatars for this agent Sets home location to agents current position will fire an AlertMessage () with success or failure message Move an agent in to a simulator. This packet is the last packet needed to complete the transition in to a new simulator Object Reply to script permissions request Object of the itemID requesting permissions of the taskID requesting permissions list of permissions to allow Respond to a group invitation by either accepting or denying it UUID of the group (sent in the AgentID field of the invite message) IM Session ID from the group invitation message Accept the group invitation or deny it Requests script detection of objects and avatars name of the object/avatar to search for UUID of the object or avatar to search for Type of search from ScriptSensorTypeFlags range of scan (96 max?) the arc in radians to search within an user generated ID to correlate replies with Simulator to perform search in Create or update profile pick UUID of the pick to update, or random UUID to create a new pick Is this a top pick? (typically false) UUID of the parcel (UUID.Zero for the current parcel) Name of the pick Global position of the pick landmark UUID of the image displayed with the pick Long description of the pick Delete profile pick UUID of the pick to delete Create or update profile Classified UUID of the classified to update, or random UUID to create a new classified Defines what catagory the classified is in UUID of the image displayed with the classified Price that the classified will cost to place for a week Global position of the classified landmark Name of the classified Long description of the classified if true, auto renew classified after expiration Delete a classified ad The classified ads ID Take an incoming ImprovedInstantMessage packet, auto-parse, and if OnInstantMessage is defined call that with the appropriate arguments Incoming ImprovedInstantMessagePacket Unused Take an incoming Chat packet, auto-parse, and if OnChat is defined call that with the appropriate arguments. Incoming ChatFromSimulatorPacket Unused Used for parsing llDialogs Incoming ScriptDialog packet Unused Used for parsing llRequestPermissions dialogs Incoming ScriptDialog packet Unused Handles Script Control changes when Script with permissions releases or takes a control Used for parsing llLoadURL Dialogs Update client's Position, LookAt and region handle from incoming packet Incoming AgentMovementCompletePacket Unused This occurs when after an avatar moves into a new sim Update Client Avatar's health via incoming packet Incoming HealthMessagePacket Unused Update Client Avatar's L$ balance from incoming packet Incoming MoneyBalanceReplyPacket Unused Process TeleportFailed message sent via EventQueue, informs agent its last teleport has failed and why. The Message Key An IMessage object Deserialized from the recieved message event The simulator originating the event message Process TeleportFinish from Event Queue and pass it onto our TeleportHandler The message system key for this event IMessage object containing decoded data from OSD The simulator originating the event message Handler for teleport Requests Incoming TeleportHandler packet Simulator sending teleport information 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 Allows agent to cross over (walk, fly, vehicle) in to neighboring simulators This packet is now being sent via the EventQueue Group Chat event handler The capability Key IMessage object containing decoded data from OSD Response from request to join a group chat IMessage object containing decoded data from OSD Someone joined or left group chat IMessage object containing decoded data from OSD Handle a group chat Invitation Caps Key IMessage object containing decoded data from OSD Originating Simulator Moderate a chat session the of the session to moderate, for group chats this will be the groups UUID the of the avatar to moderate Either "voice" to moderate users voice, or "text" to moderate users text session true to moderate (silence user), false to allow avatar to speak Alert Message packet handler AlertMessagePacket not used detects camera constraint collisions Packet handler for ScriptSensorReply packet Packet handler for AvatarSitResponse packet Fired when a is received from the simulator, Contains Any Whisper, Shout, or Say within range of avatar Fired when a is received, use to respond to dialog Fired when a is received in response to a scripted object requesting permissions, Use to reply Fired when a is received, contains a URL pasted in Chat Fired when a or a ChatterBoxInvitation is received Fired when a is received, occurs when a or is called Fired when a indicating the agents balance has changed by spending, sending, or receiving L$, Contains the Avatars new balance Fired when a is received, contains L$ balance and additional details of the transaction Fired when a is received, caused by changing the Agents active group with Fired when a is received, will contain a Dictionary of animations currently being played Callback for an object or avatar forcefully colliding with the agent Callback for the agent moving in to a neighboring sim Callback for when agent is confirmed joined group chat session. Callback for when agent is confirmed to have left group chat session. Alert messages sent to client from simulator Fired when a script wants to take or release control of your avatar. Fired when our avatar camera reaches the maximum possible point Fired when a script sensor reply is received Fired in response to a sit request Fired when a new member joins an active ChatterBoxSession session Fired when a member of an active ChatterBoxSession leaves the session 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 or PG 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) 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 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 Agent camera controls Currently only used for hiding your group title Action state of the avatar, which can currently be typing and editing Timer for sending AgentUpdate packets Default constructor Send an AgentUpdate with the camera set at the current agent position and pointing towards the heading specified Camera rotation in radians Whether to send the AgentUpdate reliable or not Rotates the avatar body and camera toward a target position. This will also anchor the camera position on the avatar Region coordinates to turn toward Send new AgentUpdate packet to update our current camera position and rotation Send new AgentUpdate packet to update our current camera position and rotation Whether to require server acknowledgement of this packet Send new AgentUpdate packet to update our current camera position and rotation Whether to require server acknowledgement of this packet Simulator to send the update to Builds an AgentUpdate packet entirely from parameters. This will not touch the state of Self.Movement or Self.Movement.Camera in any way 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 Empty flag Move Forward (SL Keybinding: W/Up Arrow) Move Backward (SL Keybinding: S/Down Arrow) Move Left (SL Keybinding: Shift-(A/Left Arrow)) Move Right (SL Keybinding: Shift-(D/Right Arrow)) Not Flying: Jump/Flying: Move Up (SL Keybinding: E) Not Flying: Croutch/Flying: Move Down (SL Keybinding: C) Unused Unused Unused Unused ORed with AGENT_CONTROL_AT_* if the keyboard is being used ORed with AGENT_CONTROL_LEFT_* if the keyboard is being used ORed with AGENT_CONTROL_UP_* if the keyboard is being used Fly Finish our current animation Stand up from the ground or a prim seat Sit on the ground at our current location Whether mouselook is currently enabled Legacy, used if a key was pressed for less than a certain amount of time Legacy, used if a key was pressed for less than a certain amount of time Legacy, used if a key was pressed for less than a certain amount of time Legacy, used if a key was pressed for less than a certain amount of time Legacy, used if a key was pressed for less than a certain amount of time Legacy, used if a key was pressed for less than a certain amount of time Set when the avatar is idled or set to away. Note that the away animation is activated separately from setting this flag Triggered on incoming chat messages Text of chat message Audible level of this chat message Type of chat (whisper, shout, status, etc.) Source of the chat message Name of the sending object Key of source Key of the sender Senders position Triggered when a script pops up a dialog box The dialog box message Name of the object that sent the dialog Image to be displayed in the dialog ID of the object that sent the dialog First name of the object owner Last name of the object owner Chat channel that the object is communicating on List of button labels Triggered when a script asks for permissions Simulator object this request comes from Task ID of the script requesting permissions ID of the object containing the script Name of the object containing the script Name of the object's owner Bitwise value representing the requested permissions Triggered when a script displays a URL via llLoadURL Name of the scripted object ID of the scripted object ID of the object's owner Whether or not ownerID is a group Message displayed along with URL Offered URL Triggered when the L$ account balance for this avatar changes The new account balance Triggered on Money Balance Reply ID provided in Request Money Balance, or auto-generated by system events Was the transaction successful Current balance Land use credits you have Tier committed to group(s) Description of the transaction Triggered on incoming instant messages Instant message data structure Simulator where this IM was received from Triggered for any status updates of a teleport (progress, failed, succeeded) A message about the current teleport status The current status of the teleport Various flags describing the teleport Reply to a request to join a group, informs whether it was successful or not The group we attempted to join Whether we joined the group or not Reply to a request to leave a group, informs whether it was successful or not The group we attempted to leave Whether we left the group or not Informs the avatar that it is no longer a member of a group The group Key we are no longer a member of Reply to an AgentData request First name of Avatar Last name of Avatar Key of Group Avatar has active Avatars Active Title Powers Avatar has in group Name of the Group Triggered when the current agent animations change A convenience reference to the SignaledAnimations collection Triggered when an object or avatar forcefully collides with our agent Collision type Colliding object or avatar ID Victim ID, should be our own AgentID Velocity or total force of the collision Time the collision occurred Triggered when the agent physically moves in to a neighboring region Simulator agent was previously occupying Simulator agent is now currently occupying Fired when group chat session confirmed joined Key of Session (groups UUID) Temporary session Key A string representation of the session name if session start successful, otherwise Fired when agent group chat session terminated Key of Session (groups UUID) Fired when alert message received from simulator the message sent from the grid to our avatar. Fired when a script wants to give or release controls. Control to give or take true of passing control to agent true of taking control from agent Fired when camera tries to view beyond its view limits representing plane where constraints were hit Fired when script sensor reply is received requestors UUID Sources Group UUID Sources Name Objects UUID Object owners UUID Position of Object Range of Object Rotation of object Objects Type representing the velocity of object TODO: this should probably be a struct, and there should be an enum added for type Fired in response to a RequestSit() ID of primitive avatar will be sitting on true of avatar autopiloted there Camera offset when avatar is seated Camera eye offset when avatar is seated true of sitting on this object will force mouselook position avatar will be in when seated rotation avatar will be in when seated Fired when a new member joins a Group chat session the ID of the session the ID of the avatar that joined Fired when a member of a Group chat leaves the session the ID of the session the ID of the avatar that joined 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 Construct an Asset object of type Notecard A text string containing the main body text of the notecard 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 to a string Override the base classes AssetType 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 Add a custom decoder callback The key of the field to decode The custom decode handler Remove a custom decoder callback The key of the field to decode The custom decode handler 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 A custom decoder callback The key of the object the data to decode A string represending the fieldData Throttles the network traffic for various different traffic types. Access this class through GridClient.Throttle Default constructor, uses a default high total of 1500 KBps (1536000) Constructor that decodes an existing AgentThrottle packet in to individual values Reference to the throttle data in an AgentThrottle packet Offset position to start reading at in the throttle data This is generally not needed in clients as the server will never send a throttle packet to the client Send an AgentThrottle packet to the current server using the current values Send an AgentThrottle packet to the specified server using the current values Convert the current throttle values to a byte array that can be put in an AgentThrottle packet 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 Default constructor Retrieve the terrain height at a given coordinate The region that the point of interest is in 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 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 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 Unregister an event handler Packet type to unregister the handler for Callback to be unregistered Fire the events registered for this packet type synchronously Incoming packet type Incoming packet Simulator this packet was received from Fire the events registered for this packet type asynchronously 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 OK Transfer completed Unknown error occurred Equivalent to a 404 error Client does not have permission for that resource Unknown status Unknown Virtually all asset transfers use this channel Asset from the asset server Inventory item Estate asset, such as an estate covenant Image file format Number of milliseconds passed since the last transfer packet was received Texture download cache Default constructor A reference to the GridClient object Request an asset download Asset UUID Asset type, must be correct for the transfer to succeed Whether to give this transfer an elevated priority The callback to fire when the simulator responds with the asset data Request an asset download Asset UUID Asset type, must be correct for the transfer to succeed Whether to give this transfer an elevated priority Source location of the requested asset The callback to fire when the simulator responds with the asset data Request an asset download through the almost deprecated Xfer system Filename of the asset to request Whether or not to delete the asset off the server after it is retrieved Use large transfer packets or not UUID of the file to request, if filename is left empty Asset type of vFileID, or AssetType.Unknown if filename is not empty Sets the FilePath in the request to Cache (4) if true, otherwise Unknown (0) is used Use UUID.Zero if you do not have the asset ID but have all the necessary permissions The item ID of this asset in the inventory Use UUID.Zero if you are not requesting an asset from an object inventory The owner of this asset Asset type Whether to prioritize this asset download or not Used to force asset data into the PendingUpload property, ie: for raw terrain uploads An AssetUpload object containing the data to upload to the simulator Request an asset be uploaded to the simulator The Object containing the asset data If True, the asset once uploaded will be stored on the simulator in which the client was connected in addition to being stored on the asset server The of the transfer, can be used to correlate the upload with events being fired Request an asset be uploaded to the simulator The of the asset being uploaded A byte array containing the encoded asset data If True, the asset once uploaded will be stored on the simulator in which the client was connected in addition to being stored on the asset server The of the transfer, can be used to correlate the upload with events being fired Request an asset be uploaded to the simulator Asset type to upload this data as A byte array containing the encoded asset data If True, the asset once uploaded will be stored on the simulator in which the client was connected in addition to being stored on the asset server The of the transfer, can be used to correlate the upload with events being fired Initiate an asset upload The ID this asset will have if the upload succeeds Asset type to upload this data as Raw asset data to upload Whether to store this asset on the local simulator or the grid-wide asset server The tranaction id for the upload The transaction ID of this transfer 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 Request an image and fire a callback when the request is complete Client.Assets.RequestImage(UUID.Parse("c307629f-e3a1-4487-5e88-0d96ac9d4965"), ImageType.Normal, TextureDownloader_OnDownloadFinished); private void TextureDownloader_OnDownloadFinished(TextureRequestState state, AssetTexture asset) { if(state == TextureRequestState.Finished) { Console.WriteLine("Texture {0} ({1} bytes) has been successfully downloaded", asset.AssetID, asset.AssetData.Length); } } Request an image and use an inline anonymous method to handle the downloaded texture data Client.Assets.RequestImage(UUID.Parse("c307629f-e3a1-4487-5e88-0d96ac9d4965"), ImageType.Normal, delegate(TextureRequestState state, AssetTexture asset) { if(state == TextureRequestState.Finished) { Console.WriteLine("Texture {0} ({1} bytes) has been successfully downloaded", asset.AssetID, asset.AssetData.Length); } } ); Request a texture, decode the texture to a bitmap image and apply it to a imagebox Client.Assets.RequestImage(UUID.Parse("c307629f-e3a1-4487-5e88-0d96ac9d4965"), ImageType.Normal, TextureDownloader_OnDownloadFinished); private void TextureDownloader_OnDownloadFinished(TextureRequestState state, AssetTexture asset) { if(state == TextureRequestState.Finished) { ManagedImage imgData; Image bitmap; if (state == TextureRequestState.Finished) { OpenJPEG.DecodeToImage(assetTexture.AssetData, out imgData, out bitmap); picInsignia.Image = bitmap; } } } Overload: 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 callback to fire when the image is retrieved. The callback will contain the result of the request and the texture asset data Overload: 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 The callback to fire when the image is retrieved. The callback will contain the result of the request and the texture asset data Overload: 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 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 Cancel a texture request The texture assets Lets TexturePipeline class fire the progress event The texture ID currently being downloaded the number of bytes transferred the total number of bytes expected Packet Handler for InitiateDownloadPacket, sent in response to EstateOwnerMessage requesting download of simulators RAW terrain file. The InitiateDownloadPacket packet The simulator originating the packet Only the Estate Owner will receive this when he/she makes the request Fired when the simulator sends an InitiateDownloadPacket, used to download terrain .raw files Fired when during texture downloads to indicate the progress of the download Callback fired when an InitiateDownload packet is received The filename on the simulator The name of the file the viewer requested Fired when a texture is in the process of being downloaded by the TexturePipeline class The asset textures The total number of bytes received The total number of bytes expected Class that handles the local asset cache Default constructor A reference to the GridClient object Disposes cleanup timer Only create timer when needed Return bytes read from the local asset cache, null if it does not exist UUID of the asset we want to get Raw bytes of the asset, or null on failure Returns ImageDownload object of the image from the local image cache, null if it does not exist UUID of the image we want to get ImageDownload object containing the image, or null on failure Constructs a file name of the cached asset UUID of the asset String with the file name of the cahced asset Saves an asset to the local cache UUID of the asset Raw bytes the asset consists of Weather the operation was successfull Get the file name of the asset stored with gived UUID UUID of the asset Null if we don't have that UUID cached on disk, file name if found in the cache folder Checks if the asset exists in the local cache UUID of the asset True is the asset is stored in the cache, otherwise false Wipes out entire cache Brings cache size to the 90% of the max size Asynchronously brings cache size to the 90% of the max size Adds up file sizes passes in a FileInfo array Checks whether caching is enabled Periodically prune the cache Nicely formats file sizes 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 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 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 A Joint and it's associated meta data and keyframes 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? 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. 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 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 Plays a sound 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 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 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 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 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 Total primitives across the entire simulator Maximum number of primitives this parcel supports Total number of primitives on this parcel Total number of primitives owned by the parcel owner on this parcel Total number of primitives owned by the parcel group on this parcel Total number of other primitives on this parcel 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 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 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 ParcelProperties replies sent over CAPS Not used (will always be ParcelProperties) IMessage object containing decoded data from OSD Object representing simulator Decode the prim owner information, send the decoded object to any event subscribers IMessage object containing decoded data from OSD Fired when a is received, in response to a Fired when a is received, in response to a Fired when a ParcelProperties Packet is received over the subsystem, in response to a Fired when a is received, in response to a Fired when the Agent receives a , in response to Fired when the simulator parcel dictionary is populated in response to a request Fired when the Agent receives a , in response to a request Fired when the Agent receives a which occurs when the parcel media information is changed for the current parcel the Agent is over Fired when the Agent receives a which occurs when the parcel media has a specialized event like starting and looping command on the media is raised for the current parcel the Agent is over 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 UUID of the requested parcel Simulator-local ID of the requested parcel Dwell value of the requested parcel Simulator the parcel is in Full properties for a single parcel. If result is NoData this will be incomplete or incorrect data Success of the query Number of primitives your avatar is currently selecting and sitting on in this parcel User-assigned identifier for the query User-assigned boolean for the query Simulator the parcel is in Responses to a request for prim owners on a parcel simulator parcel is in List containing details or prim ownership Fired when all parcels are downloaded from simulator Simulator the parcel is in Read-only dictionary containing parcel details for the simulator 64,64 array containing sim position to localID mapping Fired in response to SelectParcelObjects simulator the objects are in Local IDs of the selected objects If true, list is start of a new selection Fired when a ParcelMediaUpdate packet is received, this occurs when the media on the parcel an avatar is over changes A reference to the simulator object A struct containing updated media information Fired when a ParcelMediaCommandMessage packet is received, this occurs when the media on the parcel sends a specialized event A reference to the simulator object The sequence the parcel command belongs to Updated parcel information The command executed on the Parcel The time operand for some parcel commands A Name Value pair with additional settings, used in the protocol primarily to transmit avatar names and active group in object packets 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 Deprecated String value, but designated as an asset Singleton logging class for the entire library log4net logging engine Default constructor Send a log message to the logging engine The log message The severity of the log entry Send a log message to the logging engine The log message The severity of the log entry Instance of the client Send a log message to the logging engine The log message The severity of the log entry Exception that was raised 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 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 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 Triggered whenever a message is logged. If this is left null, log messages will go to the console Callback used for client apps to receive log messages from the library Data being logged The severity of the log entry from 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 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 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 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 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 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 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 (permisions) The calculated CRC 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 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 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. Represents a primitive asset Initializes a new instance of an AssetPrim object Override the base classes AssetType Only used internally for XML serialization/deserialization 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 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 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 The sending this packet Handles the remaining Image data that did not fit in the initial ImageData packet Handle the initial ImageDataPacket sent from the simulator Current number of pending and in-process transfers 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. 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 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 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 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 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 Initializes a new AssetScriptText object with parameters A string containing the scripts contents 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 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 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 Holds the Params array of all the avatar appearance parameters Viewer Params Array Element for AgentSetAppearance Brow Size - Small 0--+255 Large Nose Size - Small 0--+255 Large Nostril Width - Narrow 0--+255 Broad Chin Cleft - Round 0--+255 Cleft Nose Tip Shape - Pointy 0--+255 Bulbous Chin Angle - Chin Out 0--+255 Chin In Chin-Neck - Tight Chin 0--+255 Double Chin Lower Cheeks - Well-Fed 0--+255 Sunken Upper Bridge - Low 0--+255 High - Less 0--+255 More Upper Chin Cleft - Round 0--+255 Cleft Cheek Bones - Low 0--+255 High Ear Angle - In 0--+255 Out Eyebrow Points - Smooth 0--+255 Pointy Jaw Shape - Pointy 0--+255 Square Upper Cheeks - Thin 0--+255 Puffy Nose Tip Angle - Downturned 0--+255 Upturned Nose Thickness - Thin Nose 0--+255 Bulbous Nose Upper Eyelid Fold - Uncreased 0--+255 Creased Attached Earlobes - Unattached 0--+255 Attached Eye Bags - Smooth 0--+255 Baggy Eye Opening - Narrow 0--+255 Wide Lip Cleft - Narrow 0--+255 Wide Bridge Width - Narrow 0--+255 Wide Eyebrow Arc - Flat 0--+255 Arced Height - Short 0--+255 Tall Body Thickness - Body Thin 0--+255 Body Thick Ear Size - Small 0--+255 Large Shoulders - Narrow 0--+255 Broad Hip Width - Narrow 0--+255 Wide - Short Torso 0--+255 Long Torso - Short 0--+255 Long - Darker 0--+255 Lighter - Natural 0--+255 Unnatural - Small 0--+255 Large - None 0--+255 Wild Ruddiness - Pale 0--+255 Ruddy - Light 0--+255 Dark - No Red 0--+255 Very Red - Black 0--+255 Blonde - No White 0--+255 All White - Less Rosy 0--+255 More Rosy - Darker 0--+255 Pinker - Thin Eyebrows 0--+255 Bushy Eyebrows - Short 0--+255 Long - Short 0--+255 Long - Short 0--+255 Long - Short 0--+255 Long - Short 0--+255 Long - Short 0--+255 Long - Sweep Forward 0--+255 Sweep Back - Left 0--+255 Right Middle Part - No Part 0--+255 Part Right Part - No Part 0--+255 Part Left Part - No Part 0--+255 Part Full Hair Sides - Mowhawk 0--+255 Full Sides - Less 0--+255 More Lip Width - Narrow Lips 0--+255 Wide Lips - Small 0--+255 Big - Less 0--+255 More - Less 0--+255 More - Less 0--+255 More - Short Sideburns 0--+255 Mutton Chops - Chaplin 0--+255 Handlebars - Less soul 0--+255 More soul - Less Curtains 0--+255 More Curtains Rumpled Hair - Smooth Hair 0--+255 Rumpled Hair Big Hair Front - Less 0--+255 More Big Hair Top - Less 0--+255 More Big Hair Back - Less 0--+255 More Spiked Hair - No Spikes 0--+255 Big Spikes Chin Depth - Shallow 0--+255 Deep Part Bangs - No Part 0--+255 Part Bangs Head Shape - More Square 0--+255 More Round Eye Spacing - Close Set Eyes 0--+255 Far Set Eyes - Low Heels 0--+255 High Heels - Low Platforms 0--+255 High Platforms - Thin Lips 0--+255 Fat Lips Mouth Position - High 0--+255 Low Breast Buoyancy - Less Gravity 0--+255 More Gravity Platform Width - Narrow 0--+255 Wide - Pointy Heels 0--+255 Thick Heels - Pointy 0--+255 Square Foot Size - Small 0--+255 Big Nose Width - Narrow 0--+255 Wide Eyelash Length - Short 0--+255 Long - Short 0--+255 Long - Short 0--+255 Long - Low 0--+255 High Jacket Length - Short 0--+255 Long Open Front - Open 0--+255 Closed - Short 0--+255 Tall - Short 0--+255 Long - Short 0--+255 Long - Low 0--+255 High Cuff Flare - Tight Cuffs 0--+255 Flared Cuffs - More Vertical 0--+255 More Sloped - Less Body Fat 0--+255 More Body Fat Pants Crotch - High and Tight 0--+255 Low and Loose Egg Head - Chin Heavy 0--+255 Forehead Heavy Head Stretch - Squash Head 0--+255 Stretch Head Torso Muscles - Less Muscular 0--+255 More Muscular Outer Eye Corner - Corner Down 0--+255 Corner Up - Less Muscular 0--+255 More Muscular Lip Fullness - Less Full 0--+255 More Full Toe Thickness - Flat Toe 0--+255 Thick Toe Crooked Nose - Nose Left 0--+255 Nose Right - Corner Down 0--+255 Corner Up - Shear Right Up 0--+255 Shear Left Up Shift Mouth - Shift Left 0--+255 Shift Right Eye Pop - Pop Right Eye 0--+255 Pop Left Eye Jaw Jut - Overbite 0--+255 Underbite Shear Back - Full Back 0--+255 Sheared Back - Small Hands 0--+255 Large Hands Love Handles - Less Love 0--+255 More Love Head Size - Small Head 0--+255 Big Head - Skinny Neck 0--+255 Thick Neck Breast Cleavage - Separate 0--+255 Join Pectorals - Big Pectorals 0--+255 Sunken Chest Eye Size - Beady Eyes 0--+255 Anime Eyes - Short Legs 0--+255 Long Legs - Short Arms 0--+255 Long arms - Pink 0--+255 Black - No Lipstick 0--+255 More Lipstick - No Lipgloss 0--+255 Glossy - No Eyeliner 0--+255 Full Eyeliner - No Blush 0--+255 More Blush - Pink 0--+255 Orange - Clear 0--+255 Opaque - No Eyeshadow 0--+255 More Eyeshadow - Light 0--+255 Dark - No Eyeshadow 0--+255 More Eyeshadow - No Polish 0--+255 Painted Nails - Clear 0--+255 Opaque - Light 0--+255 Dark - Clear 0--+255 Opaque - Dark Green 0--+255 Black - Pink 0--+255 Black - Sparse 0--+255 Dense - 5 O'Clock Shadow 0--+255 Bushy Hair Saddle Bags - Less Saddle 0--+255 More Saddle Taper Back - Wide Back 0--+255 Narrow Back Taper Front - Wide Front 0--+255 Narrow Front - Short Neck 0--+255 Long Neck Eyebrow Height - Higher 0--+255 Lower Lower Bridge - Low 0--+255 High Nostril Division - High 0--+255 Low Jaw Angle - Low Jaw 0--+255 High Jaw Shear Front - Full Front 0--+255 Sheared Front - Less Volume 0--+255 More Volume Lip Cleft Depth - Shallow 0--+255 Deep Puffy Eyelids - Flat 0--+255 Puffy - Sunken Eyes 0--+255 Bugged Eyes - Flat Head 0--+255 Long Head - Less Freckles 0--+255 More Freckles - Low 0--+255 High - Short Pigtails 0--+255 Long Pigtails - Short Ponytail 0--+255 Long Ponytail Butt Size - Flat Butt 0--+255 Big Butt Ear Tips - Flat 0--+255 Pointy Lip Ratio - More Upper Lip 0--+255 More Lower Lip - Short 0--+255 Long - Low 0--+255 High Pants Fit - Tight Pants 0--+255 Loose Pants Shirt Fit - Tight Shirt 0--+255 Loose Shirt Sleeve Looseness - Tight Sleeves 0--+255 Loose Sleeves Knee Angle - Knock Kneed 0--+255 Bow Legged - Short hips 0--+255 Long Hips - Fingerless 0--+255 Fingers bustle skirt - no bustle 0--+255 more bustle - Short 0--+255 Long - Open Front 0--+255 Closed Front - Open Back 0--+255 Closed Back - Open Left 0--+255 Closed Left - Open Right 0--+255 Closed Right Skirt Fit - Tight Skirt 0--+255 Poofy Skirt Jacket Wrinkles - No Wrinkles 0--+255 Wrinkles Package - Coin Purse 0--+255 Duffle Bag Inner Eye Corner - Corner Down 0--+255 Corner Up 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 Delegate to wrap another delegate and its arguments 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 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. 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 Static pre-defined animations available to all agents Agent with afraid expression on face Agent aiming a bazooka (right handed) Agent aiming a bow (left handed) Agent aiming a hand gun (right handed) Agent aiming a rifle (right handed) Agent with angry expression on face Agent hunched over (away) Agent doing a backflip Agent laughing while holding belly Agent blowing a kiss Agent with bored expression on face Agent bowing to audience Agent brushing himself/herself off Agent in busy mode Agent clapping hands Agent doing a curtsey bow Agent crouching Agent crouching while walking Agent crying Agent unanimated with arms out (e.g. setting appearance) Agent re-animated after set appearance finished Agent dancing Agent dancing Agent dancing Agent dancing Agent dancing Agent dancing Agent dancing Agent dancing Agent on ground unanimated Agent boozing it up Agent with embarassed expression on face Agent with afraid expression on face Agent with angry expression on face Agent with bored expression on face Agent crying Agent showing disdain (dislike) for something Agent with embarassed expression on face Agent with frowning expression on face Agent with kissy face Agent expressing laughgter Agent with open mouth Agent with repulsed expression on face Agent expressing sadness Agent shrugging shoulders Agent with a smile Agent expressing surprise Agent sticking tongue out Agent with big toothy smile Agent winking Agent expressing worry Agent falling down Agent walking (feminine version) Agent wagging finger (disapproval) I'm not sure I want to know Agent in superman position Agent in superman position Agent greeting another Agent holding bazooka (right handed) Agent holding a bow (left handed) Agent holding a handgun (right handed) Agent holding a rifle (right handed) Agent throwing an object (right handed) Agent in static hover Agent hovering downward Agent hovering upward Agent being impatient Agent jumping Agent jumping with fervor Agent point to lips then rear end Agent landing from jump, finished flight, etc Agent laughing Agent landing from jump, finished flight, etc Agent sitting on a motorcycle Agent moving head side to side Agent moving head side to side with unhappy expression Agent taunting another Agent giving peace sign Agent pointing at self Agent pointing at another Agent preparing for jump (bending knees) Agent punching with left hand Agent punching with right hand Agent acting repulsed Agent trying to be Chuck Norris Rocks, Paper, Scissors 1, 2, 3 Agent with hand flat over other hand Agent with fist over other hand Agent with two fingers spread over other hand Agent running Agent appearing sad Agent saluting Agent shooting bow (left handed) Agent cupping mouth as if shouting Agent shrugging shoulders Agent in sit position Agent in sit position (feminine) Agent in sit position (generic) Agent sitting on ground Agent sitting on ground Agent sleeping on side Agent smoking Agent inhaling smoke Agent taking a picture Agent standing Agent standing up Agent standing Agent standing Agent standing Agent standing Agent stretching Agent in stride (fast walk) Agent surfing Agent acting surprised Agent striking with a sword Agent talking (lips moving) Agent throwing a tantrum Agent throwing an object (right handed) Agent trying on a shirt Agent turning to the left Agent turning to the right Agent typing Agent walking Agent whispering Agent whispering with fingers in mouth Agent winking Agent winking Agent worried Agent nodding yes Agent nodding yes with happy face Agent floating with legs and arms crossed 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 Initializes a new instance of an AssetScriptBinary object with parameters A string containing the Clothings data Override the base classes AssetType 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 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 Sort by name Sort by date Sort folders by name, regardless of whether items are sorted by name or date Place system folders at the top Possible destinations for DeRezObject request Copy from in-world to agent inventory Derez to TaskInventory Take Object Delete Object 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 Upper half of the Flags field for inventory items 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 If set, and a slam bit is set, indicates OwnerMask will be overwritten on Rez If set, and a slam bit is set, indicates GroupMask will be overwritten on Rez 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 Indicates whether this object is composed of multiple items or not 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 Base Class for Inventory Items of item/folder of parent folder Name of item/folder Item/Folder Owners Constructor, takes an itemID as a parameter The of the item 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 Determine whether the specified object is equal to the current object InventoryBase object to compare against true if objects are the same Determine whether the specified object is equal to the current object InventoryBase object to compare against true if objects are the same An Item in Inventory The of this item The combined of this item The type of item from The type of item from the enum The of the creator of this item A Description of this item The s this item is set to or owned by If true, item is owned by a group The price this item can be purchased for The type of sale from the enum Combined flags from Time and date this inventory item was created, stored as UTC (Coordinated Universal Time) Used to update the AssetID in requests sent to the server The of the previous owner of the item Construct a new InventoryItem object The of the item Construct a new InventoryItem object of a specific Type The type of item from of the item 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 Compares an object The object to compare true if comparison object matches Determine whether the specified object is equal to the current object The object to compare against true if objects are the same Determine whether the specified object is equal to the current object The object to compare against true if objects are the same InventoryTexture Class representing a graphical image Construct an InventoryTexture object A which becomes the objects AssetUUID Construct an InventoryTexture object from a serialization stream InventorySound Class representing a playable sound Construct an InventorySound object A which becomes the objects AssetUUID Construct an InventorySound object from a serialization stream InventoryCallingCard Class, contains information on another avatar Construct an InventoryCallingCard object A which becomes the objects AssetUUID Construct an InventoryCallingCard object from a serialization stream InventoryLandmark Class, contains details on a specific location Construct an InventoryLandmark object A which becomes the objects AssetUUID Construct an InventoryLandmark object from a serialization stream Landmarks use the InventoryItemFlags struct and will have a flag of 1 set if they have been visited InventoryObject Class contains details on a primitive or coalesced set of primitives Construct an InventoryObject object A which becomes the objects AssetUUID Construct an InventoryObject object from a serialization stream Gets or sets the upper byte of the Flags value Gets or sets the object attachment point, the lower byte of the Flags value InventoryNotecard Class, contains details on an encoded text document Construct an InventoryNotecard object A which becomes the objects AssetUUID Construct an InventoryNotecard object from a serialization stream InventoryCategory Class TODO: Is this even used for anything? Construct an InventoryCategory object A which becomes the objects AssetUUID Construct an InventoryCategory object from a serialization stream InventoryLSL Class, represents a Linden Scripting Language object Construct an InventoryLSL object A which becomes the objects AssetUUID Construct an InventoryLSL object from a serialization stream InventorySnapshot Class, an image taken with the viewer Construct an InventorySnapshot object A which becomes the objects AssetUUID Construct an InventorySnapshot object from a serialization stream InventoryAttachment Class, contains details on an attachable object Construct an InventoryAttachment object A which becomes the objects AssetUUID Construct an InventoryAttachment object from a serialization stream Get the last AttachmentPoint this object was attached to InventoryWearable Class, details on a clothing item or body part Construct an InventoryWearable object A which becomes the objects AssetUUID Construct an InventoryWearable object from a serialization stream The , Skin, Shape, Skirt, Etc InventoryAnimation Class, A bvh encoded object which animates an avatar Construct an InventoryAnimation object A which becomes the objects AssetUUID Construct an InventoryAnimation object from a serialization stream InventoryGesture Class, details on a series of animations, sounds, and actions Construct an InventoryGesture object A which becomes the objects AssetUUID Construct an InventoryGesture object from a serialization stream A folder contains s and has certain attributes specific to itself The Preferred for a folder. The Version of this folder Number of child items this folder contains. Constructor UUID of the folder Get Serilization data for this InventoryFolder object Construct an InventoryFolder object from a serialization stream Tools for dealing with agents inventory Used for converting shadow_id to asset_id Partial mapping of AssetTypes to folder names Default constructor 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 Request A single inventory item The items The item Owners Request inventory items Inventory items to request Owners of the inventory items 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 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 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 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 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 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 Move an inventory item or folder to a new location The item or folder to move The to move item or folder to 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 Move and rename a folder The source folders The destination folders The name to change the folder to Move a folder The source folders The destination folders 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 Move an inventory item to a new folder The of the source item to move The of the destination folder 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 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 Remove descendants of a folder The of the folder Remove a single item from inventory The of the inventory item to remove Remove a folder from inventory The of the folder to remove 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 Empty the Lost and Found folder Empty the Trash folder Proper use is to upload the inventory's asset first, then provide the Asset's TransactionID here. Proper use is to upload the inventory's asset first, then provide the Asset's TransactionID here. 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 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 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 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 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 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 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 simulator will automatically send object detail packet(s) back to the client DeRez an object from the simulator to the agents Objects folder in the agents Inventory The simulator Local ID of the object 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 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 Get the inventory of 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 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 Moves an Item from an objects (Prim) Inventory to the specified folder in the avatars inventory LocalID of the object in the simulator UUID of the task item to move UUID of the folder to move the item to Simulator Object Remove an item from an objects (Prim) Inventory LocalID of the object in the simulator UUID of the task item to remove Simulator Object 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 uint Prim = 95899503; // Fake prim ID UUID Script = 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); UUID Transaction = Client.Inventory.RezScript(Prim, (InventoryItem)Client.Inventory.Store[Script]); Send a request to the simulator to get the running status of a script. The reply will come back via the EventQueue in a ScriptRunningReply message The object containing the script The script contained in the task inventorys Sets a script running state which is in a task inventory The object containing the script The script contained in the task inventorys true to set the script running, false to stop a running script 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 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 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 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 Fired when a reply to a RequestFetchInventory() is received Fired when a response to a RequestFolderContents() is received Fired when an object or another avatar offers us an inventory item Fired when a response to FindObjectByPath() is received Fired when a task inventory item is received 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 Fired in response to a request for a tasks (primitive) inventory Fired when a SaveAssetToInventory packet is received, generally after the logout reply handler Fired in response to a GetScriptRunning request Get this agents Inventory data Callback for inventory item creation finishing 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 Callback for an inventory folder updating UUID of the folder that was updated Callback for when an inventory item is offered to us by another avatar or an object A object containing specific details on the item being offered, eg who its from The AssetType being offered Will be null if item is offered from an object will be true of item is offered from an object Return true to accept the offer, or false to decline it 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. Reply received after calling RequestTaskInventory, contains a filename that can be used in an asset download request UUID of the inventory item Version number of the task inventory asset Filename of the task inventory asset Reply received when uploading an inventory asset Has upload been successful Error message if upload failed Inventory asset UUID New asset UUID Fired when local inventory store needs to be updated. Generally at logout to update a local cache the assets UUID The new AssetID of the item, or UUID.Zero Level of Detail mesh The type of bump-mapping applied to a face The level of shininess applied to a face The texture mapping style used for a face Flags in the TextureEntry block that describe which properties are set 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 Constuct an asset of type Landmark UUID of the target region Local position of landmark 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 This exception is thrown whenever a network operation is attempted without a network connection. 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. Login Routines All of the simulators we are currently connected to Handlers for incoming capability events Handlers for incoming packets Incoming packets that are awaiting handling Outgoing packets that are awaiting handling Default constructor Reference to the GridClient object 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 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 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 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 Send a packet to the simulator the avatar is currently occupying Packet to send Send a packet to a specified simulator Packet to send Simulator to send the packet to Connect to a simulator 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 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. Check if logout succeeded with the OnLogoutReply event, and if this does not fire the Shutdown() function needs to be manually called 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 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 Fire an event when an event queue connects for capabilities Simulator the event queue is attached to Called to deal with LogoutReply packet and fires off callback Full packet of type LogoutReplyPacket Seed CAPS URL returned from the login server A list of packets obtained during the login process which networkmanager will log but not process Generate sane default values for a login request Account first name Account last name Account password Client application name Client application version A populated struct containing sane defaults Simplified login that takes the most common and required fields Account first name Account last name Account password Client application name Client application 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 Account first name Account last name Account password or MD5 hash of the password such as $1$1682a1e45e9f957dcdf0bb56eb43319c Client application name Starting location URI that can be built with StartLocation() Client application 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 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 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 Handles response from XML-RPC login replies Handle response from LLSD login replies Get current OS Either "Win" or "Linux" Get clients default Mac Address A string containing the first found Mac Address Event raised when an outgoing packet is sent to a simulator Event raised when the client was able to connected successfully. Uses the ConnectedCallback delegate. Event raised when a before a connection to a simulator is initialized Event raised when a connection to a simulator is established An event for the connection to a simulator other than the currently occupied one disconnecting The Simulators list is locked when this event is triggered, do not attempt to modify the collection or acquire a lock on it when this callback is fired An event for being logged out either through client request, server forced, or network error An event for when CurrentSim changes Triggered when an event queue makes the initial connection Unique identifier associated with our connections to simulators The simulator that the logged in avatar is currently occupying Shows whether the network layer is logged in to the grid or not Number of packets in the incoming queue Number of packets in the outgoing queue Called any time the login status changes, will eventually return LoginStatus.Success or LoginStatus.Failure Called when a reply is received from the login server, the login sequence will block until this event returns Current state of logging in Upon login failure, contains a short string key for the type of login error that occurred The raw XML-RPC reply from the login server, exactly as it was received (minus the HTTP header) 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 Explains why a simulator or the grid disconnected from us The client requested the logout or simulator disconnect The server notified us that it is disconnecting Either a socket was closed or network traffic timed out The last active simulator shut down 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 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 Coupled with RegisterCallback(), this is triggered whenever a packet of a registered type is received Triggered whenever an outgoing packet is sent Buffer holding the outgoing packet payload Number of bytes of the data buffer that were sent Simulator this packet was sent to Assigned by the OnConnected event. Raised when login was a success Reference to the GridClient object that called the event Assigned by the OnLogoutReply callback. Raised upone receipt of a LogoutReply packet during logout process. Triggered before a new connection to a simulator is established The connection to the new simulator won't be established until this callback returns The simulator that is being connected to Whether to continue connecting to the simulator or abort the connection Triggered when a new connection to a simulator is established The simulator that is being connected to Triggered when a simulator other than the simulator that is currently being occupied disconnects for whatever reason The simulator that disconnected, which will become a null reference after the callback is finished Enumeration explaining the reason for the disconnect Triggered when we are logged out of the grid due to a simulator request, client request, network timeout, or any other cause Enumeration explaining the reason for the disconnect If we were logged out by the simulator, this is a message explaining why Triggered when CurrentSim changes A reference to the old value of CurrentSim Triggered when an event queue makes the initial connection Simulator this event queue is tied to Fired when a login request is successful or not Permission request flags, asked when a script wants to control an Avatar Placeholder for empty values, shouldn't ever see this Script wants ability to take money from you Script wants to take camera controls for you Script wants to remap avatars controls Script wants to trigger avatar animations This function is not implemented on the grid Script wants to attach or detach the prim or primset to your avatar Script wants permission to release ownership This function is not implemented on the grid The concept of "public" objects does not exist anymore. Script wants ability to link/delink with other prims Script wants permission to change joints This function is not implemented on the grid Script wants permissions to change permissions This function is not implemented on the grid Script wants to track avatars camera position and rotation Script wants to control your camera Special commands used in Instant Messages Indicates a regular IM from another agent Simple notification box with an OK button You've been invited to join a group. Inventory offer Accepted inventory offer Declined inventory offer Group vote An object is offering its inventory Accept an inventory offer from an object Decline an inventory offer from an object Unknown Start a session, or add users to a session Start a session, but don't prune offline users Start a session with your group Start a session without a calling card (finder or objects) Send a message to a session Leave a session Indicates that the IM is from an object Sent an IM to a busy user, this is the auto response Shows the message in the console and chat history Send a teleport lure Response sent to the agent which inititiated a teleport invitation Response sent to the agent which inititiated a teleport invitation Only useful if you have Linden permissions A placeholder type for future expansion, currently not used IM to tell the user to go to an URL IM for help IM sent automatically on call for help, sends a lure to each Helper reached Like an IM but won't go to email IM from a group officer to all group members Unknown Unknown Accept a group invitation Decline a group invitation Unknown An avatar is offering you friendship An avatar has accepted your friendship offer An avatar has declined your friendship offer Indicates that a user has started typing Indicates that a user has stopped typing Flag in Instant Messages, whether the IM should be delivered to offline avatars as well Only deliver to online avatars If the avatar is offline the message will be held until they login next, and possibly forwarded to their e-mail account Conversion type to denote Chat Packet types in an easier-to-understand format Whisper (5m radius) Normal chat (10/20m radius), what the official viewer typically sends Shouting! (100m radius) Event message when an Avatar has begun to type Event message when an Avatar has stopped typing Unknown Event message when an object uses llOwnerSay Special value to support llRegionSay, never sent to the client Identifies the source of a chat message Chat from the grid or simulator Chat from another avatar Chat from an object Effect type used in ViewerEffect packets Project a beam from a source to a destination, such as the one used when editing an object Create a swirl of particles around an object Cause an avatar to look at an object Cause an avatar to point at an object The action an avatar is doing when looking at something, used in ViewerEffect packets for the LookAt effect Deprecated The action an avatar is doing when pointing at something, used in ViewerEffect packets for the PointAt effect Money transaction types Flags sent when a script takes or releases a control NOTE: (need to verify) These might be a subset of the ControlFlags enum in Movement, No Flags set Forward (W or up Arrow) Back (S or down arrow) Move left (shift+A or left arrow) Move right (shift+D or right arrow) Up (E or PgUp) Down (C or PgDown Rotate left (A or left arrow) Rotate right (D or right arrow) Left Mouse Button Left Mouse button in MouseLook Currently only used to hide your group title No flags set Hide your group title Action state of the avatar, which can currently be typing and editing Current teleport status Unknown status Teleport initialized Teleport in progress Teleport failed Teleport completed Teleport cancelled No flags set, or teleport failed Set when newbie leaves help island for first time Via Lure Via Landmark Via Location Via Home Via Telehub Via Login Linden Summoned Linden Forced me Agent Teleported Home via Script forced to new location for example when avatar is banned or ejected Teleport Finished via a Lure Finished, Sim Changed Finished, Same Sim Instant Message 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 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 Can send group notices Can receive group notices Can create group proposals Can vote on group proposals Handles all network traffic related to reading and writing group information 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 Group Management Routines, Methods and Packet Handlers 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 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 Packet Handler for EjectGroupMemberReply, fired when an avatar is ejected from a group. The EjectGroupMemberReply packet The simulator where the message originated This is a silly packet, it doesn't provide you with the ejectees UUID Fired when a is received, contains a list of groups avatar is currently a member of Fired when a UUIDGroupNameReply packet is receiived, contains name of group requested Fired when a GroupProfileReply packet is received, contains group profile information for requested group. Fired when a GroupMembersReply packet is received, contains a list of group members for requested group Fired when a GroupRoleDataReply packet is received, contains details on roles for requested group Fired when a is received, Contains group member to group role mappings Fired when a GroupTitlesReply packet is received, sets the active role title for the current Agent Fired when a GroupAccountSummaryReply packet is received, Contains a summary of group financial information Fired when a CreateGroupReply packet is received, indicates the successful creation of a new group Fired when a JoinGroupReply packet is received, indicates the Avatar has successfully joined a new group either by or by accepting a group join invitation with Fired when a LeaveGroupReply packet is received, indicates the Avatar has successfully left a group Fired when a AgentDropGroup packet is received, contains the of the group dropped Fired when a GroupMemberEjected packet is received, indicates a member of a group has been ejected Fired when the list of group notices is recievied Callback for the list of groups the avatar is currently a member of A dictionary containing the groups an avatar is a member of, where the Key is the group , and the values are the groups Callback for a list of group names A dictionary containing the the group names requested where the Key is the group , and the values are the names Callback for the profile of a group The group profile Callback for the member list of a group returned by RequestGroupMembers of the group A dictionary containing the members of a group where key is member and value is struct Callback for retrieving group roles of the request returned from RequestGroupRoles of the group A dictionary containing role s as the key and structs as values Callback for a pairing of roles to members of the request returned from RequestGroupRolesMembers of the group List containing role/member pairs Callback for the title list of a group of the request returned from RequestGroupTitles Group A dictionary containing the titles of a group where the Key is the role , and the values are the title details Callback fired when group account summary information is received Group The group account summary information Callback fired after an attempt to create a group The new groups True of creation was successful A string, containing a message from the simulator Callback fired when the avatar has joined a group The of the group joined True if the join was successful Callback fired when the avatar leaves a group The of the group joined True if the part was successful Fired when a group is dropped, likely because it did not keep the required (2) avatar minimum The of the group which was dropped Fired when a member of a group is ejected, Does not provide member information, only group ID and whether it was successful or not The Group UUID the member was ejected from true of member was successfully ejected Fired when the list of group notices is recievied The of the group for which the notice list entry was recievied The Notice list entry 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 Internal dictionary that this class wraps around. Do not modify or enumerate the contents of this dictionary without locking on this member 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); 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); 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; }); 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); } ); 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); } }); 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 Removes the specified key, dictionary locking is not performed The key. if successful, otherwise Gets the number of Key/Value pairs contained in the Indexer for the dictionary The key The value Access to the Linden dataserver which allows searching for land, events, people, etc Starts a search for land sales using the directory What type of land to search for. Auction, estate, mainland, "first land", etc A unique identifier that can identify packets associated with this query from other queries 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 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. A unique identifier that can identify packets associated with this query from other queries 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 A flags parameter that can modify the way search results are returned, for example changing the ordering of results or limiting based on price or area What type of land to search for. Auction, estate, mainland, "first land", etc Maximum price to search for, the DirFindFlags.LimitByPrice flag must be set Maximum area to search for, the DirFindFlags.LimitByArea flag must be set 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. A unique identifier that can identify packets associated with this query from other queries 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 a Group in the directory manager The text 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 100, 200-299 use 200, etc. A unique identifier that can identify packets associated with this query from other queries 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. Search "places" for Land you personally own Searches Places for Land owned by a specific user or group One of the Values from the DirFindFlags struct, ie: AgentOwned, GroupOwned, etc. LLUID of group you want to recieve land list for (You must be in group), or LLUID.Zero for Your own land Transaction (Query) ID which can be associated with results from your request. Search Places One of the Values from the DirFindFlags struct, ie: AgentOwned, GroupOwned, etc. One of the values from the SearchCategory Struct, ie: Any, Linden, Newcomer 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 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 String Text to search for 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 Mature Text to search for UUID of query to correlate results in callback. Search Events with Options to specify category and Mature events. Text to search for true to include Mature events category to search UUID of query to correlate results in callback. Search Events - ALL options string text to search for e.g.: live music Include mature events in results "u" for now and upcoming events, -or- number of days since/until event is scheduled For example "0" = Today, "1" = tomorrow, "2" = following day, "-1" = yesterday, etc. Page # to show, 0 for First Page EventCategory event is listed under. a UUID that can be used to track queries with results. UUID of query to correlate results in callback. Requests Event Details ID of Event returned from Places Search The different categories a classified ad can be placed in Land types to search dataserver for Do not search Land which is currently up for auction Parcels which are on the mainland (Linden owned) continents Parcels which are on privately owned simulators A classified ad on the grid UUID for this ad, useful for looking up detailed information about it The title of this classified ad Unknown Creation date of the ad Expiration date of the ad Price that was paid for this ad A parcel retrieved from the dataserver such as results from the "For-Sale" listings An Avatar returned from the dataserver Online status of agent Agents first name Agents last name Agents Response to a "Groups" Search Response to a "Places" Search, e.g. My Land, Group Land, etc. Note: This is not DirPlacesReply Response to "Events" search an Event returned from the dataserver 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 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 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 No collision detection for non-agent objects No scripts are ran All physics processing is turned off Flight is disabled (not currently enforced by the sim) Allow direct (p2p) teleporting Estate owner has temporarily disabled scripting Deny agents with no payment info on file Deny agents with payment info on file Deny agents who have made a monetary transaction Region is Voice Enabled Access level for a simulator Minimum access level, no additional checks Trial accounts allowed PG rating Mature rating Simulator is offline Simulator does not exist 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) 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) Provides access to two thread-safe dictionaries containing avatars and primitives found in this simulator The current sequence number for packets sent to this simulator. Must be Interlocked before modifying. Only useful for applications manipulating sequence numbers Provides access to an internal thread-safe dictionary containing parcel information found in this simulator Checks simulator parcel map to make sure it has downloaded all data successfully true if map is full (contains no 0's) 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 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 Disconnect from this simulator Instructs the simulator to stop sending update (and possibly other) packets Instructs the simulator to resume sending update packets (unpause) Sends a packet Packet to be sent Returns Simulator Name as a String Sends out pending acknowledgements Resend unacknowledged packets Provides access to an internal thread-safe multidimensional array containing a x,y grid mapped each 64x64 parcel's LocalID. 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 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 Checks the instance back into the object pool Returns an instance of the class that has been checked out of the Object Pool. No report Unknown report type Bug report Complaint report Customer service report Bitflag field for ObjectUpdateCompressed data blocks, describing which options are present for each object Unknown Whether the object has a TreeSpecies Whether the object has floating text ala llSetText Whether the object has an active particle system Whether the object has sound attached to it Whether the object is attached to a root object or not Whether the object has texture animation settings Whether the object has an angular velocity Whether the object has a name value pairs string Whether the object has a Media URL set Specific Flags for MultipleObjectUpdate requests None Change position of prims Change rotation of prims Change size of prims Perform operation on link set Scale prims uniformly, same as selecing ctrl+shift in the viewer. Used in conjunction with Scale Special values in PayPriceReply. If the price is not one of these literal value of the price should be use Indicates that this pay option should be hidden Indicates that this pay option should have the default value Contains the variables sent in an object update packet for objects. Used to track position and movement of prims and avatars Handles all network traffic related to prims and avatar positions and movement. Reference to the GridClient object Does periodic dead reckoning calculation to convert velocity and acceleration to new positions for objects Instantiates a new ObjectManager class A reference to the client Instantiates a new ObjectManager class A reference to the client If false, the ObjectManager won't register any packet callbacks and won't decode incoming object packets Request object information from the sim, primarily used for stale or missing cache entries The simulator containing the object you're looking for The objects ID which is local to the simulator the object is in Request object information for multiple objects all contained in the same sim, primarily used for stale or missing cache entries A reference to the object where the objects reside An array which contains the IDs of the objects to request Attempt to purchase an original object, a copy, or the contents of an object A reference to the object where the objects reside The objects ID which is local to the simulator the object is in 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); 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 A reference to the object where the object resides of the object we are requesting pay price Select a single object. This will trigger the simulator to send us back an ObjectProperties packet so we can get the full information for this object A reference to the object where the object resides The objects ID which is local to the simulator the object is in Should objects be deselected immediately after selection Select a single object. This will trigger the simulator to send us back an ObjectProperties packet so we can get the full information for this object A reference to the object where the object resides The objects ID which is local to the simulator the object is in Select multiple objects. This will trigger the simulator to send us back ObjectProperties for each object A reference to the object where the objects reside An array which contains the IDs of the objects to select Should objects be deselected immediately after selection Select multiple objects. This will trigger the simulator to send us back ObjectProperties for each object A reference to the object where the objects reside An array which contains the IDs of the objects to select Sets and object's flags (physical, temporary, phantom, casts shadow) Sets an object's sale information Sets sale info for multiple objects Deselect an object A reference to the object where the object resides The objects ID which is local to the simulator the object is in Deselect multiple objects. A reference to the object where the objects reside An array which contains the IDs of the objects to select Perform a click action 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 Perform a click action 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 Create, or "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, or "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 Set 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? 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 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 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 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 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 The new Permissions mark to set TODO: What does this do? Request additional properties for an object A reference to the object where the object resides 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 Used for new prims, or significant changes to existing prims A terse object update, used when a transformation matrix or velocity/acceleration for an object changes but nothing else (scale/position/rotation/acceleration/velocity) Handles cached object update packets from the simulator The packet containing the object data The simulator sending the data Handle KillObject packets from the simulator The packet containing the object data The simulator sending the 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 This event will be raised for every ObjectUpdate block that contains a prim that isn't attached to an avatar. Depending on the circumstances a client could receive two or more of these events for the same object, if you or the object left the current sim and returned for example. Client applications are responsible for tracking and storing objects. This event will be raised for every ObjectUpdate block that contains an avatar attachment. Depending on the circumstances a client could receive two or more of these events for the same object, if you or the object left the current sim and returned for example. Client applications are responsible for tracking and storing objects. This event will be raised for every ObjectUpdate block that contains a new avatar. Depending on the circumstances a client could receive two or more of these events for the same avatar, if you or the other avatar left the current sim and returned for example. Client applications are responsible for tracking and storing objects. This event will be raised when a terse object update packet is received, containing the updated position, rotation, and movement-related vectors This event will be raised when a terse object update packet is received, containing the updated position, rotation, and movement-related vectors Triggers the OnObjectDataBlockUpdate event. This event will be raised when an avatar sits on an object or stands up, with a local ID of the current seat or zero. This event will be raised when an object is removed from a simulator. This event will be raised when an objects properties are received from the simulator This event will be raised when an objects properties are updated from the simulator Thie event will be raised when an objects properties family information is recieved from the simulator. ObjectPropertiesFamily is a subset of the fields found in ObjectProperties This event will be fired when we recieve pay price information for the object after having asked for them with RequestPayPrice Called whenever an object terse update is received Called whenever an object terse update is received This is different than the above in that the update to the prim has not happened yet Called whenever an major object update is received This is when major changes are happening to the contructionData changing the shape of an object Called whenever an object disappears Called whenever the client avatar sits down or stands up Simulator the packet was received from The local ID of the object that is being sat on. If this is zero the avatar is not sitting on an object Called when we get PayPriceReply packet after calling RequestPayPrice Simulator the packet was received from Object Default pay price for the object, -1 means control should be disabled, -2 it should be empty Array of 4 prices, -1 means button should be disabled Login Request Parameters 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_server is currently the only supported method The Agents First name The Agents Last name A md5 hashed password plaintext password will be automatically hashed 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 A string containing the client software channel information Second Life Release 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 A string containing the platform information the agent is running on A string hash of the network cards Mac Address Unknown or deprecated A string hash of the first disk drives ID used to identify this clients uniqueness A string containing the viewers Software, this is not directly sent to the login server but instead is used to generate the Version string 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 If true, this agent agrees to the Terms of Service of the grid its connecting to Unknown An array of string sent to the login server to enable various options 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 The decoded data returned from the login server after a successful login true, false, indeterminate Login message of the day M or PG, also agent_region_access and agent_access_max 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 Overrides SSL certificate validation check for Mono Remove me when MONO can handle ServerCertificateValidationCallback De-serialization constructor for the InventoryNode Class Serialization handler for the InventoryNode Class De-serialization handler for the InventoryNode Class For inventory folder nodes specifies weather the folder needs to be refreshed from the server Exception class to identify inventory exceptions 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. 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 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 Removes the InventoryObject and all related node data from Inventory. The InventoryObject to remove. Used to find out if Inventory contains the InventoryObject specified by uuid. The UUID to check. true if inventory contains uuid, false otherwise Saves the current inventory structure to a cache file Name of the cache file to save to 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 Called when an InventoryObject's state is changed. Called when an item or folder is removed from inventory. Called when an item is first added to the local inventory store. This will occur most frequently when we're initially downloading the inventory from the server. This will also fire when another avatar or object offers us inventory The root folder of this avatars inventory The default shared library folder The root node of the avatars inventory The root node of the default shared library 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. Delegate to use for the OnInventoryObjectUpdated event. The state of the InventoryObject before the update occured. The state of the InventoryObject after the update occured. Delegate to use for the OnInventoryObjectRemoved event. The InventoryObject that was removed. Delegate to use for the OnInventoryObjectUpdated event. The InventoryObject that has been stored. 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 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 Manages grid-wide tasks such as the world map 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 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 Populate Grid info based on data from MapBlockReplyPacket Incoming MapBlockReplyPacket packet Unused Get sim time from the appropriate packet Incoming SimulatorViewerTimeMessagePacket from SL Unused Triggered when coarse locations (minimap dots) are updated by the simulator Triggered when a new region is discovered through GridManager Unknown Current direction of the sun Current angular velocity of the sun Current world time