From 64bd9a335444379ebe1cad8e34d5b5953a76f671 Mon Sep 17 00:00:00 2001
From: Teravus Ovares
Date: Sat, 25 Jul 2009 15:49:10 +0000
Subject: * Updates libOMV to version 0.7.0 * Uses mantis #3811 as a base
(thanks jhuliman) with changes. * E-mail regarding interface changes sent to
the opensim-dev list * Archive:
https://lists.berlios.de/pipermail/opensim-dev/2009-July/007219.html
---
bin/HttpServer.dll | Bin 94208 -> 102400 bytes
bin/OpenMetaverse.Http.XML | 57 +
bin/OpenMetaverse.Http.dll | Bin 32768 -> 36864 bytes
bin/OpenMetaverse.StructuredData.XML | 333 +
bin/OpenMetaverse.StructuredData.dll | Bin 102400 -> 102400 bytes
bin/OpenMetaverse.Utilities.XML | 98 +
bin/OpenMetaverse.Utilities.dll | Bin 0 -> 49152 bytes
bin/OpenMetaverse.XML | 21115 +++++++++++++++++++++++++++++++++
bin/OpenMetaverse.dll | Bin 1496576 -> 1622016 bytes
bin/OpenMetaverseTypes.XML | 1852 +++
bin/OpenMetaverseTypes.dll | Bin 81408 -> 102400 bytes
11 files changed, 23455 insertions(+)
create mode 100644 bin/OpenMetaverse.Http.XML
create mode 100644 bin/OpenMetaverse.StructuredData.XML
create mode 100644 bin/OpenMetaverse.Utilities.XML
create mode 100644 bin/OpenMetaverse.Utilities.dll
create mode 100644 bin/OpenMetaverse.XML
create mode 100644 bin/OpenMetaverseTypes.XML
(limited to 'bin')
diff --git a/bin/HttpServer.dll b/bin/HttpServer.dll
index 360a631..6ec6ac5 100644
Binary files a/bin/HttpServer.dll and b/bin/HttpServer.dll differ
diff --git a/bin/OpenMetaverse.Http.XML b/bin/OpenMetaverse.Http.XML
new file mode 100644
index 0000000..4cce222
--- /dev/null
+++ b/bin/OpenMetaverse.Http.XML
@@ -0,0 +1,57 @@
+
+
+
+ OpenMetaverse.Http
+
+
+
+
+ Singleton logging class for the entire library
+
+
+
+ log4net logging engine
+
+
+
+ Singleton instance of this class
+
+
+
+ =
+
+
+ Number of times we've received an unknown CAPS exception in series.
+
+
+ For exponential backoff on error.
+
+
+ The number of milliseconds to wait before the connection times out
+ and an empty response is sent to the client. This value should be higher
+ than BATCH_WAIT_INTERVAL for the timeout to function properly
+
+
+ This interval defines the amount of time to wait, in milliseconds,
+ for new events to show up on the queue before sending a response to the
+ client and completing the HTTP request. The interval also specifies the
+ maximum time that can pass before the queue shuts down after Stop() or the
+ class destructor is called
+
+
+ Since multiple events can be batched together and sent in the same
+ response, this prevents the event queue thread from infinitely dequeueing
+ events and never sending a response if there is a constant stream of new
+ events
+
+
+
+ Delegate for handling incoming HTTP requests through a capability
+
+ Client context
+ HTTP request
+ HTTP response
+ User-defined state object
+
+
+
diff --git a/bin/OpenMetaverse.Http.dll b/bin/OpenMetaverse.Http.dll
index cdf9e38..39c9b1d 100644
Binary files a/bin/OpenMetaverse.Http.dll and b/bin/OpenMetaverse.Http.dll differ
diff --git a/bin/OpenMetaverse.StructuredData.XML b/bin/OpenMetaverse.StructuredData.XML
new file mode 100644
index 0000000..d5a344b
--- /dev/null
+++ b/bin/OpenMetaverse.StructuredData.XML
@@ -0,0 +1,333 @@
+
+
+
+ OpenMetaverse.StructuredData
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Uses reflection to create an SDMap from all of the SD
+ serializable types in an object
+
+ Class or struct containing serializable types
+ An SDMap holding the serialized values from the
+ container object
+
+
+
+ Uses reflection to deserialize member variables in an object from
+ an SDMap
+
+ Reference to an object to fill with deserialized
+ values
+ Serialized values to put in the target
+ object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bin/OpenMetaverse.StructuredData.dll b/bin/OpenMetaverse.StructuredData.dll
index 06f95e7..dd08c7b 100644
Binary files a/bin/OpenMetaverse.StructuredData.dll and b/bin/OpenMetaverse.StructuredData.dll differ
diff --git a/bin/OpenMetaverse.Utilities.XML b/bin/OpenMetaverse.Utilities.XML
new file mode 100644
index 0000000..6e97018
--- /dev/null
+++ b/bin/OpenMetaverse.Utilities.XML
@@ -0,0 +1,98 @@
+
+
+
+ OpenMetaverse.Utilities
+
+
+
+ Amount of time to wait for the voice daemon to respond.
+ The value needs to stay relatively high because some of the calls
+ require the voice daemon to make remote queries before replying
+
+
+
+ Does not appear to be working
+
+
+
+
+
+
+ Returns the new user ID or throws an exception containing the error code
+ The error codes can be found here: https://wiki.secondlife.com/wiki/RegAPIError
+
+ New user account to create
+ The UUID of the new user account
+
+
+
+ See https://secure-web6.secondlife.com/developers/third_party_reg/#service_create_user or
+ https://wiki.secondlife.com/wiki/RegAPIDoc for description
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Aims at the specified position, enters mouselook, presses and
+ releases the left mouse button, and leaves mouselook
+
+
+ Target to shoot at
+
+
+
+
+ Enters mouselook, presses and releases the left mouse button, and leaves mouselook
+
+
+
+
+
+ A psuedo-realistic chat function that uses the typing sound and
+ animation, types at three characters per second, and randomly
+ pauses. This function will block until the message has been sent
+
+ A reference to the client that will chat
+ The chat message to send
+
+
+
+ A psuedo-realistic chat function that uses the typing sound and
+ animation, types at a given rate, and randomly pauses. This
+ function will block until the message has been sent
+
+ A reference to the client that will chat
+ The chat message to send
+ The chat type (usually Normal, Whisper or Shout)
+ Characters per second rate for chatting
+
+
+ Unknown voice service level
+
+
+ Spatialized local chat
+
+
+ Remote multi-party chat
+
+
+ One-to-one and small group chat
+
+
+
diff --git a/bin/OpenMetaverse.Utilities.dll b/bin/OpenMetaverse.Utilities.dll
new file mode 100644
index 0000000..04248be
Binary files /dev/null and b/bin/OpenMetaverse.Utilities.dll differ
diff --git a/bin/OpenMetaverse.XML b/bin/OpenMetaverse.XML
new file mode 100644
index 0000000..25ef659
--- /dev/null
+++ b/bin/OpenMetaverse.XML
@@ -0,0 +1,21115 @@
+
+
+
+ OpenMetaverse
+
+
+
+
+ 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)
+
+
+
+
+ Starts a thread that keeps the daemon running
+
+
+
+
+
+
+ Stops the daemon and the thread keeping it running
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+ 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
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+ Login Routines
+
+
+ NetworkManager is responsible for managing the network layer of
+ OpenMetaverse. It tracks all the server connections, serializes
+ outgoing traffic and deserializes incoming traffic, and provides
+ instances of delegates for network-related events.
+
+
+
+ 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
+
+
+ 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
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+ Fired when a login request is successful or not
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+
+
+
+ Interface requirements for Messaging system
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+ 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
+
+
+ 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 AssetScriptBinary object containing the
+ LSO compiled bytecode of an LSL script
+
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+ Type of gesture step
+
+
+
+
+ Base class for gesture steps
+
+
+
+
+ Retururns what kind of gesture step this is
+
+
+
+
+ Describes animation step of a gesture
+
+
+
+
+ If true, this step represents start of animation, otherwise animation stop
+
+
+
+
+ Animation asset
+
+
+
+
+ Animation inventory name
+
+
+
+
+ Returns what kind of gesture step this is
+
+
+
+
+ Describes sound step of a gesture
+
+
+
+
+ Sound asset
+
+
+
+
+ Sound inventory name
+
+
+
+
+ Returns what kind of gesture step this is
+
+
+
+
+ Describes sound step of a gesture
+
+
+
+
+ Text to output in chat
+
+
+
+
+ Returns what kind of gesture step this is
+
+
+
+
+ Describes sound step of a gesture
+
+
+
+
+ If true in this step we wait for all animations to finish
+
+
+
+
+ If true gesture player should wait for the specified amount of time
+
+
+
+
+ Time in seconds to wait if WaitForAnimation is false
+
+
+
+
+ Returns what kind of gesture step this is
+
+
+
+
+ Describes the final step of a gesture
+
+
+
+
+ Returns what kind of gesture step this is
+
+
+
+
+ Represents a sequence of animations, sounds, and chat actions
+
+
+
+
+ Keyboard key that triggers the gestyre
+
+
+
+
+ Modifier to the trigger key
+
+
+
+
+ String that triggers playing of the gesture sequence
+
+
+
+
+ Text that replaces trigger in chat once gesture is triggered
+
+
+
+
+ Sequence of gesture steps
+
+
+
+
+ Constructs guesture asset
+
+
+
+
+ Constructs guesture asset
+
+ A unique specific to this asset
+ A byte array containing the raw asset data
+
+
+
+ Encodes gesture asset suitable for uplaod
+
+
+
+
+ Decodes gesture assset into play sequence
+
+
+
+
+
+ Returns asset type
+
+
+
+
+ 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
+
+
+
+ Level of Detail mesh
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+ 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
+
+
+
+ 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 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
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+ Capability to load TGAs to Bitmap
+
+
+
+
+ Represents a primitive asset
+
+
+
+ Initializes a new instance of an AssetPrim object
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Override the base classes AssetType
+
+
+
+ Only used internally for XML serialization/deserialization
+
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+ 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.
+
+
+
+ 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
+
+
+
+ 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.
+
+
+
+ This exception is thrown whenever a network operation is attempted
+ without a network connection.
+
+
+
+
+ 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
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+ 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.
+
+
+
+
+ Sent to the client to indicate a teleport request has completed
+
+
+
+ The of the agent
+
+
+
+
+
+ The simulators handle the agent teleported to
+
+
+ A Uri which contains a list of Capabilities the simulator supports
+
+
+ Indicates the level of access required
+ to access the simulator, or the content rating, or the simulators
+ map status
+
+
+ The IP Address of the simulator
+
+
+ The UDP Port the simulator will listen for UDP traffic on
+
+
+ Status flags indicating the state of the Agent upon arrival, Flying, etc.
+
+
+
+ Serialize the object
+
+ An containing the objects data
+
+
+
+ Deserialize the message
+
+ An containing the data
+
+
+
+ Sent to the viewer when a neighboring simulator is requesting the agent make a connection to it.
+
+
+
+
+ Serialize the object
+
+ An containing the objects data
+
+
+
+ Deserialize the message
+
+ An containing the data
+
+
+
+ Serialize the object
+
+ An containing the objects data
+
+
+
+ Deserialize the message
+
+ An containing the data
+
+
+
+ Serialize the object
+
+ An containing the objects data
+
+
+
+ Deserialize the message
+
+ An containing the data
+
+
+
+ A message sent to the client which indicates a teleport request has failed
+ and contains some information on why it failed
+
+
+
+
+
+
+ A string key of the reason the teleport failed e.g. CouldntTPCloser
+ Which could be used to look up a value in a dictionary or enum
+
+
+ The of the Agent
+
+
+ A string human readable message containing the reason
+ An example: Could not teleport closer to destination
+
+
+
+ Serialize the object
+
+ An containing the objects data
+
+
+
+ Deserialize the message
+
+ An containing the data
+
+
+
+ Serialize the object
+
+ An containing the objects data
+
+
+
+ Deserialize the message
+
+ An containing the data
+
+
+
+ Contains a list of prim owner information for a specific parcel in a simulator
+
+
+ A Simulator will always return at least 1 entry
+ If agent does not have proper permission the OwnerID will be UUID.Zero
+ If agent does not have proper permission OR there are no primitives on parcel
+ the DataBlocksExtended map will not be sent from the simulator
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+ Checks the instance back into the object pool
+
+
+
+
+ Returns an instance of the class that has been checked out of the Object Pool.
+
+
+
+
+ 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
+
+
+
+
+
+
+
+ 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
+
+
+
+
+ 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 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
+
+
+
+ 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.
+
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+ 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
diff --git a/bin/OpenMetaverse.dll b/bin/OpenMetaverse.dll
index 364fc2a..88e8b49 100644
Binary files a/bin/OpenMetaverse.dll and b/bin/OpenMetaverse.dll differ
diff --git a/bin/OpenMetaverseTypes.XML b/bin/OpenMetaverseTypes.XML
new file mode 100644
index 0000000..d716379
--- /dev/null
+++ b/bin/OpenMetaverseTypes.XML
@@ -0,0 +1,1852 @@
+
+
+
+ OpenMetaverseTypes
+
+
+
+
+ A three-dimensional vector with doubleing-point values
+
+
+
+ X value
+
+
+ Y value
+
+
+ Z value
+
+
+
+ Constructor, builds a vector from a byte array
+
+ Byte array containing three eight-byte doubles
+ Beginning position in the byte array
+
+
+
+ Test if this vector is equal to another vector, within a given
+ tolerance range
+
+ Vector to test against
+ The acceptable magnitude of difference
+ between the two vectors
+ True if the magnitude of difference between the two vectors
+ is less than the given tolerance, otherwise false
+
+
+
+ IComparable.CompareTo implementation
+
+
+
+
+ Test if this vector is composed of all finite numbers
+
+
+
+
+ Builds a vector from a byte array
+
+ Byte array containing a 24 byte vector
+ Beginning position in the byte array
+
+
+
+ Returns the raw bytes for this vector
+
+ A 24 byte array containing X, Y, and Z
+
+
+
+ Writes the raw bytes for this vector to a byte array
+
+ Destination byte array
+ Position in the destination array to start
+ writing. Must be at least 24 bytes before the end of the array
+
+
+
+ Parse a vector from a string
+
+ A string representation of a 3D vector, enclosed
+ in arrow brackets and separated by commas
+
+
+
+ Interpolates between two vectors using a cubic equation
+
+
+
+
+ Get a formatted string representation of the vector
+
+ A string representation of the vector
+
+
+
+ Get a string representation of the vector elements with up to three
+ decimal digits and separated by spaces only
+
+ Raw string representation of the vector
+
+
+
+ Cross product between two vectors
+
+
+
+ A vector with a value of 0,0,0
+
+
+ A vector with a value of 1,1,1
+
+
+ A unit vector facing forward (X axis), value of 1,0,0
+
+
+ A unit vector facing left (Y axis), value of 0,1,0
+
+
+ A unit vector facing up (Z axis), value of 0,0,1
+
+
+
+ The different types of grid assets
+
+
+
+ Unknown asset type
+
+
+ Texture asset, stores in JPEG2000 J2C stream format
+
+
+ Sound asset
+
+
+ Calling card for another avatar
+
+
+ Link to a location in world
+
+
+ Collection of textures and parameters that can be
+ worn by an avatar
+
+
+ Primitive that can contain textures, sounds,
+ scripts and more
+
+
+ Notecard asset
+
+
+ Holds a collection of inventory items
+
+
+ Root inventory folder
+
+
+ Linden scripting language script
+
+
+ LSO bytecode for a script
+
+
+ Uncompressed TGA texture
+
+
+ Collection of textures and shape parameters that can
+ be worn
+
+
+ Trash folder
+
+
+ Snapshot folder
+
+
+ Lost and found folder
+
+
+ Uncompressed sound
+
+
+ Uncompressed TGA non-square image, not to be used as a
+ texture
+
+
+ Compressed JPEG non-square image, not to be used as a
+ texture
+
+
+ Animation
+
+
+ Sequence of animations, sounds, chat, and pauses
+
+
+ Simstate file
+
+
+
+ Inventory Item Types, eg Script, Notecard, Folder, etc
+
+
+
+ Unknown
+
+
+ Texture
+
+
+ Sound
+
+
+ Calling Card
+
+
+ Landmark
+
+
+ Notecard
+
+
+
+
+
+ Folder
+
+
+
+
+
+ an LSL Script
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Item Sale Status
+
+
+
+ Not for sale
+
+
+ The original is for sale
+
+
+ Copies are for sale
+
+
+ The contents of the object are for sale
+
+
+
+ Types of wearable assets
+
+
+
+ Body shape
+
+
+ Skin textures and attributes
+
+
+ Hair
+
+
+ Eyes
+
+
+ Shirt
+
+
+ Pants
+
+
+ Shoes
+
+
+ Socks
+
+
+ Jacket
+
+
+ Gloves
+
+
+ Undershirt
+
+
+ Underpants
+
+
+ Skirt
+
+
+ Invalid wearable asset
+
+
+
+ Same as Queue except Dequeue function blocks until there is an object to return.
+ Note: This class does not need to be synchronized
+
+
+
+
+ Create new BlockingQueue.
+
+ The System.Collections.ICollection to copy elements from
+
+
+
+ Create new BlockingQueue.
+
+ The initial number of elements that the queue can contain
+
+
+
+ Create new BlockingQueue.
+
+
+
+
+ BlockingQueue Destructor (Close queue, resume any waiting thread).
+
+
+
+
+ Remove all objects from the Queue.
+
+
+
+
+ Remove all objects from the Queue, resume all dequeue threads.
+
+
+
+
+ Removes and returns the object at the beginning of the Queue.
+
+ Object in queue.
+
+
+
+ Removes and returns the object at the beginning of the Queue.
+
+ time to wait before returning
+ Object in queue.
+
+
+
+ Removes and returns the object at the beginning of the Queue.
+
+ time to wait before returning (in milliseconds)
+ Object in queue.
+
+
+
+ Adds an object to the end of the Queue
+
+ Object to put in queue
+
+
+
+ Open Queue.
+
+
+
+
+ Gets flag indicating if queue has been closed.
+
+
+
+ For thread safety
+
+
+ For thread safety
+
+
+
+ Purges expired objects from the cache. Called automatically by the purge timer.
+
+
+
+
+ A 128-bit Universally Unique Identifier, used throughout the Second
+ Life networking protocol
+
+
+
+ The System.Guid object this struct wraps around
+
+
+
+ Constructor that takes a string UUID representation
+
+ A string representation of a UUID, case
+ insensitive and can either be hyphenated or non-hyphenated
+ UUID("11f8aa9c-b071-4242-836b-13b7abe0d489")
+
+
+
+ Constructor that takes a System.Guid object
+
+ A Guid object that contains the unique identifier
+ to be represented by this UUID
+
+
+
+ Constructor that takes a byte array containing a UUID
+
+ Byte array containing a 16 byte UUID
+ Beginning offset in the array
+
+
+
+ Constructor that takes an unsigned 64-bit unsigned integer to
+ convert to a UUID
+
+ 64-bit unsigned integer to convert to a UUID
+
+
+
+ Copy constructor
+
+ UUID to copy
+
+
+
+ IComparable.CompareTo implementation
+
+
+
+
+ Assigns this UUID from 16 bytes out of a byte array
+
+ Byte array containing the UUID to assign this UUID to
+ Starting position of the UUID in the byte array
+
+
+
+ Returns a copy of the raw bytes for this UUID
+
+ A 16 byte array containing this UUID
+
+
+
+ Writes the raw bytes for this UUID to a byte array
+
+ Destination byte array
+ Position in the destination array to start
+ writing. Must be at least 16 bytes before the end of the array
+
+
+
+ Calculate an LLCRC (cyclic redundancy check) for this UUID
+
+ The CRC checksum for this UUID
+
+
+
+ Create a 64-bit integer representation from the second half of this UUID
+
+ An integer created from the last eight bytes of this UUID
+
+
+
+ Generate a UUID from a string
+
+ A string representation of a UUID, case
+ insensitive and can either be hyphenated or non-hyphenated
+ UUID.Parse("11f8aa9c-b071-4242-836b-13b7abe0d489")
+
+
+
+ Generate a UUID from a string
+
+ A string representation of a UUID, case
+ insensitive and can either be hyphenated or non-hyphenated
+ Will contain the parsed UUID if successful,
+ otherwise null
+ True if the string was successfully parse, otherwise false
+ UUID.TryParse("11f8aa9c-b071-4242-836b-13b7abe0d489", result)
+
+
+
+ Combine two UUIDs together by taking the MD5 hash of a byte array
+ containing both UUIDs
+
+ First UUID to combine
+ Second UUID to combine
+ The UUID product of the combination
+
+
+
+
+
+
+
+
+
+ Return a hash code for this UUID, used by .NET for hash tables
+
+ An integer composed of all the UUID bytes XORed together
+
+
+
+ Comparison function
+
+ An object to compare to this UUID
+ True if the object is a UUID and both UUIDs are equal
+
+
+
+ Comparison function
+
+ UUID to compare to
+ True if the UUIDs are equal, otherwise false
+
+
+
+ Get a hyphenated string representation of this UUID
+
+ A string representation of this UUID, lowercase and
+ with hyphens
+ 11f8aa9c-b071-4242-836b-13b7abe0d489
+
+
+
+ Equals operator
+
+ First UUID for comparison
+ Second UUID for comparison
+ True if the UUIDs are byte for byte equal, otherwise false
+
+
+
+ Not equals operator
+
+ First UUID for comparison
+ Second UUID for comparison
+ True if the UUIDs are not equal, otherwise true
+
+
+
+ XOR operator
+
+ First UUID
+ Second UUID
+ A UUID that is a XOR combination of the two input UUIDs
+
+
+
+ String typecasting operator
+
+ A UUID in string form. Case insensitive,
+ hyphenated or non-hyphenated
+ A UUID built from the string representation
+
+
+ An UUID with a value of all zeroes
+
+
+
+ Convert this matrix to euler rotations
+
+ X euler angle
+ Y euler angle
+ Z euler angle
+
+
+
+ Convert this matrix to a quaternion rotation
+
+ A quaternion representation of this rotation matrix
+
+
+
+ Construct a matrix from euler rotation values in radians
+
+ X euler angle in radians
+ Y euler angle in radians
+ Z euler angle in radians
+
+
+
+ Get a formatted string representation of the vector
+
+ A string representation of the vector
+
+
+ A 4x4 matrix containing all zeroes
+
+
+ A 4x4 identity matrix
+
+
+
+ An 8-bit color structure including an alpha channel
+
+
+
+ Red
+
+
+ Green
+
+
+ Blue
+
+
+ Alpha
+
+
+
+
+
+
+
+
+
+
+
+
+ Builds a color from a byte array
+
+ Byte array containing a 16 byte color
+ Beginning position in the byte array
+ True if the byte array stores inverted values,
+ otherwise false. For example the color black (fully opaque) inverted
+ would be 0xFF 0xFF 0xFF 0x00
+
+
+
+ Returns the raw bytes for this vector
+
+ Byte array containing a 16 byte color
+ Beginning position in the byte array
+ True if the byte array stores inverted values,
+ otherwise false. For example the color black (fully opaque) inverted
+ would be 0xFF 0xFF 0xFF 0x00
+ True if the alpha value is inverted in
+ addition to whatever the inverted parameter is. Setting inverted true
+ and alphaInverted true will flip the alpha value back to non-inverted,
+ but keep the other color bytes inverted
+ A 16 byte array containing R, G, B, and A
+
+
+
+ Copy constructor
+
+ Color to copy
+
+
+
+ IComparable.CompareTo implementation
+
+ Sorting ends up like this: |--Grayscale--||--Color--|.
+ Alpha is only used when the colors are otherwise equivalent
+
+
+
+ Builds a color from a byte array
+
+ Byte array containing a 16 byte color
+ Beginning position in the byte array
+ True if the byte array stores inverted values,
+ otherwise false. For example the color black (fully opaque) inverted
+ would be 0xFF 0xFF 0xFF 0x00
+ True if the alpha value is inverted in
+ addition to whatever the inverted parameter is. Setting inverted true
+ and alphaInverted true will flip the alpha value back to non-inverted,
+ but keep the other color bytes inverted
+
+
+
+ Writes the raw bytes for this color to a byte array
+
+ Destination byte array
+ Position in the destination array to start
+ writing. Must be at least 16 bytes before the end of the array
+
+
+
+ Serializes this color into four bytes in a byte array
+
+ Destination byte array
+ Position in the destination array to start
+ writing. Must be at least 4 bytes before the end of the array
+ True to invert the output (1.0 becomes 0
+ instead of 255)
+
+
+
+ Writes the raw bytes for this color to a byte array
+
+ Destination byte array
+ Position in the destination array to start
+ writing. Must be at least 16 bytes before the end of the array
+
+
+
+ Create an RGB color from a hue, saturation, value combination
+
+ Hue
+ Saturation
+ Value
+ An fully opaque RGB color (alpha is 1.0)
+
+
+ A Color4 with zero RGB values and fully opaque (alpha 1.0)
+
+
+ A Color4 with full RGB values (1.0) and fully opaque (alpha 1.0)
+
+
+ X value
+
+
+ Y value
+
+
+ Z value
+
+
+ W value
+
+
+
+ Build a quaternion from normalized float values
+
+ X value from -1.0 to 1.0
+ Y value from -1.0 to 1.0
+ Z value from -1.0 to 1.0
+
+
+
+ Constructor, builds a quaternion object from a byte array
+
+ Byte array containing four four-byte floats
+ Offset in the byte array to start reading at
+ Whether the source data is normalized or
+ not. If this is true 12 bytes will be read, otherwise 16 bytes will
+ be read.
+
+
+
+ Normalizes the quaternion
+
+
+
+
+ Builds a quaternion object from a byte array
+
+ The source byte array
+ Offset in the byte array to start reading at
+ Whether the source data is normalized or
+ not. If this is true 12 bytes will be read, otherwise 16 bytes will
+ be read.
+
+
+
+ Normalize this quaternion and serialize it to a byte array
+
+ A 12 byte array containing normalized X, Y, and Z floating
+ point values in order using little endian byte ordering
+
+
+
+ Writes the raw bytes for this quaternion to a byte array
+
+ Destination byte array
+ Position in the destination array to start
+ writing. Must be at least 12 bytes before the end of the array
+
+
+
+ Convert this quaternion to euler angles
+
+ X euler angle
+ Y euler angle
+ Z euler angle
+
+
+
+ Convert this quaternion to an angle around an axis
+
+ Unit vector describing the axis
+ Angle around the axis, in radians
+
+
+
+ Returns the conjugate (spatial inverse) of a quaternion
+
+
+
+
+ Build a quaternion from an axis and an angle of rotation around
+ that axis
+
+
+
+
+ Build a quaternion from an axis and an angle of rotation around
+ that axis
+
+ Axis of rotation
+ Angle of rotation
+
+
+
+ Creates a quaternion from a vector containing roll, pitch, and yaw
+ in radians
+
+ Vector representation of the euler angles in
+ radians
+ Quaternion representation of the euler angles
+
+
+
+ Creates a quaternion from roll, pitch, and yaw euler angles in
+ radians
+
+ X angle in radians
+ Y angle in radians
+ Z angle in radians
+ Quaternion representation of the euler angles
+
+
+
+ Conjugates and renormalizes a vector
+
+
+
+
+ Spherical linear interpolation between two quaternions
+
+
+
+
+ Get a string representation of the quaternion elements with up to three
+ decimal digits and separated by spaces only
+
+ Raw string representation of the quaternion
+
+
+ A quaternion with a value of 0,0,0,1
+
+
+ X value
+
+
+ Y value
+
+
+ Z value
+
+
+ W value
+
+
+
+ Constructor, builds a vector from a byte array
+
+ Byte array containing four four-byte floats
+ Beginning position in the byte array
+
+
+
+ Test if this vector is equal to another vector, within a given
+ tolerance range
+
+ Vector to test against
+ The acceptable magnitude of difference
+ between the two vectors
+ True if the magnitude of difference between the two vectors
+ is less than the given tolerance, otherwise false
+
+
+
+ IComparable.CompareTo implementation
+
+
+
+
+ Test if this vector is composed of all finite numbers
+
+
+
+
+ Builds a vector from a byte array
+
+ Byte array containing a 16 byte vector
+ Beginning position in the byte array
+
+
+
+ Returns the raw bytes for this vector
+
+ A 16 byte array containing X, Y, Z, and W
+
+
+
+ Writes the raw bytes for this vector to a byte array
+
+ Destination byte array
+ Position in the destination array to start
+ writing. Must be at least 16 bytes before the end of the array
+
+
+
+ Get a string representation of the vector elements with up to three
+ decimal digits and separated by spaces only
+
+ Raw string representation of the vector
+
+
+ A vector with a value of 0,0,0,0
+
+
+ A vector with a value of 1,1,1,1
+
+
+ A vector with a value of 1,0,0,0
+
+
+ A vector with a value of 0,1,0,0
+
+
+ A vector with a value of 0,0,1,0
+
+
+ A vector with a value of 0,0,0,1
+
+
+
+ A three-dimensional vector with floating-point values
+
+
+
+ X value
+
+
+ Y value
+
+
+ Z value
+
+
+
+ Constructor, builds a vector from a byte array
+
+ Byte array containing three four-byte floats
+ Beginning position in the byte array
+
+
+
+ Test if this vector is equal to another vector, within a given
+ tolerance range
+
+ Vector to test against
+ The acceptable magnitude of difference
+ between the two vectors
+ True if the magnitude of difference between the two vectors
+ is less than the given tolerance, otherwise false
+
+
+
+ IComparable.CompareTo implementation
+
+
+
+
+ Test if this vector is composed of all finite numbers
+
+
+
+
+ Builds a vector from a byte array
+
+ Byte array containing a 12 byte vector
+ Beginning position in the byte array
+
+
+
+ Returns the raw bytes for this vector
+
+ A 12 byte array containing X, Y, and Z
+
+
+
+ Writes the raw bytes for this vector to a byte array
+
+ Destination byte array
+ Position in the destination array to start
+ writing. Must be at least 12 bytes before the end of the array
+
+
+
+ Parse a vector from a string
+
+ A string representation of a 3D vector, enclosed
+ in arrow brackets and separated by commas
+
+
+
+ Calculate the rotation between two vectors
+
+ Normalized directional vector (such as 1,0,0 for forward facing)
+ Normalized target vector
+
+
+
+ Interpolates between two vectors using a cubic equation
+
+
+
+
+ Get a formatted string representation of the vector
+
+ A string representation of the vector
+
+
+
+ Get a string representation of the vector elements with up to three
+ decimal digits and separated by spaces only
+
+ Raw string representation of the vector
+
+
+
+ Cross product between two vectors
+
+
+
+ A vector with a value of 0,0,0
+
+
+ A vector with a value of 1,1,1
+
+
+ A unit vector facing forward (X axis), value 1,0,0
+
+
+ A unit vector facing left (Y axis), value 0,1,0
+
+
+ A unit vector facing up (Z axis), value 0,0,1
+
+
+
+ A hierarchical token bucket for bandwidth throttling. See
+ http://en.wikipedia.org/wiki/Token_bucket for more information
+
+
+
+ Parent bucket to this bucket, or null if this is a root
+ bucket
+
+
+ Size of the bucket in bytes. If zero, the bucket has
+ infinite capacity
+
+
+ Rate that the bucket fills, in bytes per millisecond. If
+ zero, the bucket always remains full
+
+
+ Number of tokens currently in the bucket
+
+
+ Time of the last drip, in system ticks
+
+
+
+ Default constructor
+
+ Parent bucket if this is a child bucket, or
+ null if this is a root bucket
+ Maximum size of the bucket in bytes, or
+ zero if this bucket has no maximum capacity
+ Rate that the bucket fills, in bytes per
+ second. If zero, the bucket always remains full
+
+
+
+ Remove a given number of tokens from the bucket
+
+ Number of tokens to remove from the bucket
+ True if the requested number of tokens were removed from
+ the bucket, otherwise false
+
+
+
+ Remove a given number of tokens from the bucket
+
+ Number of tokens to remove from the bucket
+ True if tokens were added to the bucket
+ during this call, otherwise false
+ True if the requested number of tokens were removed from
+ the bucket, otherwise false
+
+
+
+ Add tokens to the bucket over time. The number of tokens added each
+ call depends on the length of time that has passed since the last
+ call to Drip
+
+ True if tokens were added to the bucket, otherwise false
+
+
+
+ The parent bucket of this bucket, or null if this bucket has no
+ parent. The parent bucket will limit the aggregate bandwidth of all
+ of its children buckets
+
+
+
+
+ Maximum burst rate in bytes per second. This is the maximum number
+ of tokens that can accumulate in the bucket at any one time
+
+
+
+
+ The speed limit of this bucket in bytes per second. This is the
+ number of tokens that are added to the bucket per second
+
+ Tokens are added to the bucket any time
+ is called, at the granularity of
+ the system tick interval (typically around 15-22ms)
+
+
+
+ The number of bytes that can be sent at this moment. This is the
+ current number of tokens in the bucket
+ If this bucket has a parent bucket that does not have
+ enough tokens for a request, will
+ return false regardless of the content of this bucket
+
+
+
+
+ A two-dimensional vector with floating-point values
+
+
+
+ X value
+
+
+ Y value
+
+
+
+ Test if this vector is equal to another vector, within a given
+ tolerance range
+
+ Vector to test against
+ The acceptable magnitude of difference
+ between the two vectors
+ True if the magnitude of difference between the two vectors
+ is less than the given tolerance, otherwise false
+
+
+
+ Test if this vector is composed of all finite numbers
+
+
+
+
+ IComparable.CompareTo implementation
+
+
+
+
+ Builds a vector from a byte array
+
+ Byte array containing two four-byte floats
+ Beginning position in the byte array
+
+
+
+ Returns the raw bytes for this vector
+
+ An eight-byte array containing X and Y
+
+
+
+ Writes the raw bytes for this vector to a byte array
+
+ Destination byte array
+ Position in the destination array to start
+ writing. Must be at least 8 bytes before the end of the array
+
+
+
+ Parse a vector from a string
+
+ A string representation of a 2D vector, enclosed
+ in arrow brackets and separated by commas
+
+
+
+ Interpolates between two vectors using a cubic equation
+
+
+
+
+ Get a formatted string representation of the vector
+
+ A string representation of the vector
+
+
+
+ Get a string representation of the vector elements with up to three
+ decimal digits and separated by spaces only
+
+ Raw string representation of the vector
+
+
+ A vector with a value of 0,0
+
+
+ A vector with a value of 1,1
+
+
+ A vector with a value of 1,0
+
+
+ A vector with a value of 0,1
+
+
+ Used for converting degrees to radians
+
+
+ Used for converting radians to degrees
+
+
+
+ Convert the first two bytes starting in the byte array in
+ little endian ordering to a signed short integer
+
+ An array two bytes or longer
+ A signed short integer, will be zero if a short can't be
+ read at the given position
+
+
+
+ Convert the first two bytes starting at the given position in
+ little endian ordering to a signed short integer
+
+ An array two bytes or longer
+ Position in the array to start reading
+ A signed short integer, will be zero if a short can't be
+ read at the given position
+
+
+
+ Convert the first four bytes starting at the given position in
+ little endian ordering to a signed integer
+
+ An array four bytes or longer
+ Position to start reading the int from
+ A signed integer, will be zero if an int can't be read
+ at the given position
+
+
+
+ Convert the first four bytes of the given array in little endian
+ ordering to a signed integer
+
+ An array four bytes or longer
+ A signed integer, will be zero if the array contains
+ less than four bytes
+
+
+
+ Convert the first eight bytes of the given array in little endian
+ ordering to a signed long integer
+
+ An array eight bytes or longer
+ A signed long integer, will be zero if the array contains
+ less than eight bytes
+
+
+
+ Convert the first eight bytes starting at the given position in
+ little endian ordering to a signed long integer
+
+ An array eight bytes or longer
+ Position to start reading the long from
+ A signed long integer, will be zero if a long can't be read
+ at the given position
+
+
+
+ Convert the first two bytes starting at the given position in
+ little endian ordering to an unsigned short
+
+ Byte array containing the ushort
+ Position to start reading the ushort from
+ An unsigned short, will be zero if a ushort can't be read
+ at the given position
+
+
+
+ Convert two bytes in little endian ordering to an unsigned short
+
+ Byte array containing the ushort
+ An unsigned short, will be zero if a ushort can't be
+ read
+
+
+
+ Convert the first four bytes starting at the given position in
+ little endian ordering to an unsigned integer
+
+ Byte array containing the uint
+ Position to start reading the uint from
+ An unsigned integer, will be zero if a uint can't be read
+ at the given position
+
+
+
+ Convert the first four bytes of the given array in little endian
+ ordering to an unsigned integer
+
+ An array four bytes or longer
+ An unsigned integer, will be zero if the array contains
+ less than four bytes
+
+
+
+ Convert the first eight bytes of the given array in little endian
+ ordering to an unsigned 64-bit integer
+
+ An array eight bytes or longer
+ An unsigned 64-bit integer, will be zero if the array
+ contains less than eight bytes
+
+
+
+ Convert four bytes in little endian ordering to a floating point
+ value
+
+ Byte array containing a little ending floating
+ point value
+ Starting position of the floating point value in
+ the byte array
+ Single precision value
+
+
+
+ Convert an integer to a byte array in little endian format
+
+ The integer to convert
+ A four byte little endian array
+
+
+
+ Convert an integer to a byte array in big endian format
+
+ The integer to convert
+ A four byte big endian array
+
+
+
+ Convert a 64-bit integer to a byte array in little endian format
+
+ The value to convert
+ An 8 byte little endian array
+
+
+
+ Convert a 64-bit unsigned integer to a byte array in little endian
+ format
+
+ The value to convert
+ An 8 byte little endian array
+
+
+
+ Convert a floating point value to four bytes in little endian
+ ordering
+
+ A floating point value
+ A four byte array containing the value in little endian
+ ordering
+
+
+
+ Converts an unsigned integer to a hexadecimal string
+
+ An unsigned integer to convert to a string
+ A hexadecimal string 10 characters long
+ 0x7fffffff
+
+
+
+ Convert a variable length UTF8 byte array to a string
+
+ The UTF8 encoded byte array to convert
+ The decoded string
+
+
+
+ Converts a byte array to a string containing hexadecimal characters
+
+ The byte array to convert to a string
+ The name of the field to prepend to each
+ line of the string
+ A string containing hexadecimal characters on multiple
+ lines. Each line is prepended with the field name
+
+
+
+ Converts a byte array to a string containing hexadecimal characters
+
+ The byte array to convert to a string
+ Number of bytes in the array to parse
+ A string to prepend to each line of the hex
+ dump
+ A string containing hexadecimal characters on multiple
+ lines. Each line is prepended with the field name
+
+
+
+ Convert a string to a UTF8 encoded byte array
+
+ The string to convert
+ A null-terminated UTF8 byte array
+
+
+
+ Converts a string containing hexadecimal characters to a byte array
+
+ String containing hexadecimal characters
+ If true, gracefully handles null, empty and
+ uneven strings as well as stripping unconvertable characters
+ The converted byte array
+
+
+
+ Returns true is c is a hexadecimal digit (A-F, a-f, 0-9)
+
+ Character to test
+ true if hex digit, false if not
+
+
+
+ Converts 1 or 2 character string into equivalant byte value
+
+ 1 or 2 character string
+ byte
+
+
+
+ Convert a float value to a byte given a minimum and maximum range
+
+ Value to convert to a byte
+ Minimum value range
+ Maximum value range
+ A single byte representing the original float value
+
+
+
+ Convert a byte to a float value given a minimum and maximum range
+
+ Byte array to get the byte from
+ Position in the byte array the desired byte is at
+ Minimum value range
+ Maximum value range
+ A float value inclusively between lower and upper
+
+
+
+ Convert a byte to a float value given a minimum and maximum range
+
+ Byte to convert to a float value
+ Minimum value range
+ Maximum value range
+ A float value inclusively between lower and upper
+
+
+
+ Attempts to parse a floating point value from a string, using an
+ EN-US number format
+
+ String to parse
+ Resulting floating point number
+ True if the parse was successful, otherwise false
+
+
+
+ Attempts to parse a floating point value from a string, using an
+ EN-US number format
+
+ String to parse
+ Resulting floating point number
+ True if the parse was successful, otherwise false
+
+
+
+ Tries to parse an unsigned 32-bit integer from a hexadecimal string
+
+ String to parse
+ Resulting integer
+ True if the parse was successful, otherwise false
+
+
+
+ Takes an AssetType and returns the string representation
+
+ The source
+ The string version of the AssetType
+
+
+
+ Translate a string name of an AssetType into the proper Type
+
+ A string containing the AssetType name
+ The AssetType which matches the string name, or AssetType.Unknown if no match was found
+
+
+
+ Convert an InventoryType to a string
+
+ The to convert
+ A string representation of the source
+
+
+
+ Convert a string into a valid InventoryType
+
+ A string representation of the InventoryType to convert
+ A InventoryType object which matched the type
+
+
+
+ Convert a SaleType to a string
+
+ The to convert
+ A string representation of the source
+
+
+
+ Convert a string into a valid SaleType
+
+ A string representation of the SaleType to convert
+ A SaleType object which matched the type
+
+
+
+ Copy a byte array
+
+ Byte array to copy
+ A copy of the given byte array
+
+
+
+ Packs to 32-bit unsigned integers in to a 64-bit unsigned integer
+
+ The left-hand (or X) value
+ The right-hand (or Y) value
+ A 64-bit integer containing the two 32-bit input values
+
+
+
+ Unpacks two 32-bit unsigned integers from a 64-bit unsigned integer
+
+ The 64-bit input integer
+ The left-hand (or X) output value
+ The right-hand (or Y) output value
+
+
+
+ Convert an IP address object to an unsigned 32-bit integer
+
+ IP address to convert
+ 32-bit unsigned integer holding the IP address bits
+
+
+
+ Gets a unix timestamp for the current time
+
+ An unsigned integer representing a unix timestamp for now
+
+
+
+ Convert a UNIX timestamp to a native DateTime object
+
+ An unsigned integer representing a UNIX
+ timestamp
+ A DateTime object containing the same time specified in
+ the given timestamp
+
+
+
+ Convert a UNIX timestamp to a native DateTime object
+
+ A signed integer representing a UNIX
+ timestamp
+ A DateTime object containing the same time specified in
+ the given timestamp
+
+
+
+ Convert a native DateTime object to a UNIX timestamp
+
+ A DateTime object you want to convert to a
+ timestamp
+ An unsigned integer representing a UNIX timestamp
+
+
+
+ Swap two values
+
+ Type of the values to swap
+ First value
+ Second value
+
+
+
+ Try to parse an enumeration value from a string
+
+ Enumeration type
+ String value to parse
+ Enumeration value on success
+ True if the parsing succeeded, otherwise false
+
+
+
+ Swaps the high and low words in a byte. Converts aaaabbbb to bbbbaaaa
+
+ Byte to swap the words in
+ Byte value with the words swapped
+
+
+
+ Attempts to convert a string representation of a hostname or IP
+ address to a
+
+ Hostname to convert to an IPAddress
+ Converted IP address object, or null if the conversion
+ failed
+
+
+ Provide a single instance of the CultureInfo class to
+ help parsing in situations where the grid assumes an en-us
+ culture
+
+
+ UNIX epoch in DateTime format
+
+
+ Provide a single instance of the MD5 class to avoid making
+ duplicate copies and handle thread safety
+
+
+ Provide a single instance of the SHA-1 class to avoid
+ making duplicate copies and handle thread safety
+
+
+ Provide a single instance of a random number generator
+ to avoid making duplicate copies and handle thread safety
+
+
+
+ Clamp a given value between a range
+
+ Value to clamp
+ Minimum allowable value
+ Maximum allowable value
+ A value inclusively between lower and upper
+
+
+
+ Clamp a given value between a range
+
+ Value to clamp
+ Minimum allowable value
+ Maximum allowable value
+ A value inclusively between lower and upper
+
+
+
+ Clamp a given value between a range
+
+ Value to clamp
+ Minimum allowable value
+ Maximum allowable value
+ A value inclusively between lower and upper
+
+
+
+ Round a floating-point value to the nearest integer
+
+ Floating point number to round
+ Integer
+
+
+
+ Test if a single precision float is a finite number
+
+
+
+
+ Test if a double precision float is a finite number
+
+
+
+
+ Get the distance between two floating-point values
+
+ First value
+ Second value
+ The distance between the two values
+
+
+
+ Compute the MD5 hash for a byte array
+
+ Byte array to compute the hash for
+ MD5 hash of the input data
+
+
+
+ Compute the SHA1 hash for a byte array
+
+ Byte array to compute the hash for
+ SHA1 hash of the input data
+
+
+
+ Calculate the SHA1 hash of a given string
+
+ The string to hash
+ The SHA1 hash as a string
+
+
+
+ Compute the SHA256 hash for a byte array
+
+ Byte array to compute the hash for
+ SHA256 hash of the input data
+
+
+
+ Calculate the SHA256 hash of a given string
+
+ The string to hash
+ The SHA256 hash as a string
+
+
+
+ Calculate the MD5 hash of a given string
+
+ The password to hash
+ An MD5 hash in string format, with $1$ prepended
+
+
+
+ Calculate the MD5 hash of a given string
+
+ The string to hash
+ The MD5 hash as a string
+
+
+
+ Generate a random double precision floating point value
+
+ Random value of type double
+
+
+
+ Get the current running platform
+
+ Enumeration of the current platform we are running on
+
+
+
+ Get the current running runtime
+
+ Enumeration of the current runtime we are running on
+
+
+
+ Operating system
+
+
+
+ Unknown
+
+
+ Microsoft Windows
+
+
+ Microsoft Windows CE
+
+
+ Linux
+
+
+ Apple OSX
+
+
+
+ Runtime platform
+
+
+
+ .NET runtime
+
+
+ Mono runtime: http://www.mono-project.com/
+
+
+
+ Determines the appropriate events to set, leaves the locks, and sets the events.
+
+
+
+
+ A routine for lazily creating a event outside the lock (so if errors
+ happen they are outside the lock and that we don't do much work
+ while holding a spin lock). If all goes well, reenter the lock and
+ set 'waitEvent'
+
+
+
+
+ Waits on 'waitEvent' with a timeout of 'millisceondsTimeout.
+ Before the wait 'numWaiters' is incremented and is restored before leaving this routine.
+
+
+
+
+ Copy constructor
+
+ Circular queue to copy
+
+
+
diff --git a/bin/OpenMetaverseTypes.dll b/bin/OpenMetaverseTypes.dll
index 2337d8d..21e7538 100644
Binary files a/bin/OpenMetaverseTypes.dll and b/bin/OpenMetaverseTypes.dll differ
--
cgit v1.1