* 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
trunk
Teravus Ovares 2009-07-25 15:49:10 +00:00
parent 98687df56b
commit 64bd9a3354
34 changed files with 23561 additions and 88 deletions

View File

@ -659,8 +659,8 @@ namespace OpenSim.ApplicationPlugins.RemoteController
foreach (ILandObject parcel in parcels)
{
parcel.landData.Flags |= (uint) Parcel.ParcelFlags.AllowVoiceChat;
parcel.landData.Flags |= (uint) Parcel.ParcelFlags.UseEstateVoiceChan;
parcel.landData.Flags |= (uint) ParcelFlags.AllowVoiceChat;
parcel.landData.Flags |= (uint) ParcelFlags.UseEstateVoiceChan;
((Scene)newscene).LandChannel.UpdateLandObject(parcel.landData.LocalID, parcel.landData);
}
}
@ -911,13 +911,13 @@ namespace OpenSim.ApplicationPlugins.RemoteController
{
if (enableVoice)
{
parcel.landData.Flags |= (uint)Parcel.ParcelFlags.AllowVoiceChat;
parcel.landData.Flags |= (uint)Parcel.ParcelFlags.UseEstateVoiceChan;
parcel.landData.Flags |= (uint)ParcelFlags.AllowVoiceChat;
parcel.landData.Flags |= (uint)ParcelFlags.UseEstateVoiceChan;
}
else
{
parcel.landData.Flags &= ~(uint)Parcel.ParcelFlags.AllowVoiceChat;
parcel.landData.Flags &= ~(uint)Parcel.ParcelFlags.UseEstateVoiceChan;
parcel.landData.Flags &= ~(uint)ParcelFlags.AllowVoiceChat;
parcel.landData.Flags &= ~(uint)ParcelFlags.UseEstateVoiceChan;
}
scene.LandChannel.UpdateLandObject(parcel.landData.LocalID, parcel.landData);
}

View File

@ -875,13 +875,13 @@ VALUES
newData.IsGroupOwned = Convert.ToBoolean(row["IsGroupOwned"]);
newData.Area = Convert.ToInt32(row["Area"]);
newData.AuctionID = Convert.ToUInt32(row["AuctionID"]); //Unemplemented
newData.Category = (Parcel.ParcelCategory)Convert.ToInt32(row["Category"]);
newData.Category = (ParcelCategory)Convert.ToInt32(row["Category"]);
//Enum libsecondlife.Parcel.ParcelCategory
newData.ClaimDate = Convert.ToInt32(row["ClaimDate"]);
newData.ClaimPrice = Convert.ToInt32(row["ClaimPrice"]);
newData.GroupID = new UUID((Guid)row["GroupUUID"]);
newData.SalePrice = Convert.ToInt32(row["SalePrice"]);
newData.Status = (Parcel.ParcelStatus)Convert.ToInt32(row["LandStatus"]);
newData.Status = (ParcelStatus)Convert.ToInt32(row["LandStatus"]);
//Enum. libsecondlife.Parcel.ParcelStatus
newData.Flags = Convert.ToUInt32(row["LandFlags"]);
newData.LandingType = Convert.ToByte(row["LandingType"]);

View File

@ -1073,13 +1073,13 @@ namespace OpenSim.Data.MySQL
newData.IsGroupOwned = Convert.ToBoolean(row["IsGroupOwned"]);
newData.Area = Convert.ToInt32(row["Area"]);
newData.AuctionID = Convert.ToUInt32(row["AuctionID"]); //Unimplemented
newData.Category = (Parcel.ParcelCategory) Convert.ToInt32(row["Category"]);
newData.Category = (ParcelCategory) Convert.ToInt32(row["Category"]);
//Enum libsecondlife.Parcel.ParcelCategory
newData.ClaimDate = Convert.ToInt32(row["ClaimDate"]);
newData.ClaimPrice = Convert.ToInt32(row["ClaimPrice"]);
newData.GroupID = new UUID((String) row["GroupUUID"]);
newData.SalePrice = Convert.ToInt32(row["SalePrice"]);
newData.Status = (Parcel.ParcelStatus) Convert.ToInt32(row["LandStatus"]);
newData.Status = (ParcelStatus) Convert.ToInt32(row["LandStatus"]);
//Enum. libsecondlife.Parcel.ParcelStatus
newData.Flags = Convert.ToUInt32(row["LandFlags"]);
newData.LandingType = Convert.ToByte(row["LandingType"]);

View File

@ -1314,13 +1314,13 @@ namespace OpenSim.Data.SQLite
newData.IsGroupOwned = (Boolean) row["IsGroupOwned"];
newData.Area = Convert.ToInt32(row["Area"]);
newData.AuctionID = Convert.ToUInt32(row["AuctionID"]); //Unemplemented
newData.Category = (Parcel.ParcelCategory) Convert.ToInt32(row["Category"]);
newData.Category = (ParcelCategory) Convert.ToInt32(row["Category"]);
//Enum OpenMetaverse.Parcel.ParcelCategory
newData.ClaimDate = Convert.ToInt32(row["ClaimDate"]);
newData.ClaimPrice = Convert.ToInt32(row["ClaimPrice"]);
newData.GroupID = new UUID((String) row["GroupUUID"]);
newData.SalePrice = Convert.ToInt32(row["SalePrice"]);
newData.Status = (Parcel.ParcelStatus) Convert.ToInt32(row["LandStatus"]);
newData.Status = (ParcelStatus) Convert.ToInt32(row["LandStatus"]);
//Enum. OpenMetaverse.Parcel.ParcelStatus
newData.Flags = Convert.ToUInt32(row["LandFlags"]);
newData.LandingType = (Byte) row["LandingType"];

View File

@ -38,7 +38,7 @@ namespace OpenSim.Framework
private int _area = 0;
private uint _auctionID = 0; //Unemplemented. If set to 0, not being auctioned
private UUID _authBuyerID = UUID.Zero; //Unemplemented. Authorized Buyer's UUID
private Parcel.ParcelCategory _category = new Parcel.ParcelCategory(); //Unemplemented. Parcel's chosen category
private ParcelCategory _category = ParcelCategory.None; //Unemplemented. Parcel's chosen category
private int _claimDate = 0;
private int _claimPrice = 0; //Unemplemented
private UUID _globalID = UUID.Zero;
@ -49,15 +49,15 @@ namespace OpenSim.Framework
private string _description = String.Empty;
private uint _flags = (uint) Parcel.ParcelFlags.AllowFly | (uint) Parcel.ParcelFlags.AllowLandmark |
(uint) Parcel.ParcelFlags.AllowAPrimitiveEntry |
(uint) Parcel.ParcelFlags.AllowDeedToGroup | (uint) Parcel.ParcelFlags.AllowTerraform |
(uint) Parcel.ParcelFlags.CreateObjects | (uint) Parcel.ParcelFlags.AllowOtherScripts |
(uint) Parcel.ParcelFlags.SoundLocal;
private uint _flags = (uint) ParcelFlags.AllowFly | (uint) ParcelFlags.AllowLandmark |
(uint) ParcelFlags.AllowAPrimitiveEntry |
(uint) ParcelFlags.AllowDeedToGroup | (uint) ParcelFlags.AllowTerraform |
(uint) ParcelFlags.CreateObjects | (uint) ParcelFlags.AllowOtherScripts |
(uint) ParcelFlags.SoundLocal;
private byte _landingType = 0;
private string _name = "Your Parcel";
private Parcel.ParcelStatus _status = Parcel.ParcelStatus.Leased;
private ParcelStatus _status = ParcelStatus.Leased;
private int _localID = 0;
private byte _mediaAutoScale = 0;
private UUID _mediaID = UUID.Zero;
@ -125,7 +125,7 @@ namespace OpenSim.Framework
}
}
public Parcel.ParcelCategory Category {
public ParcelCategory Category {
get {
return _category;
}
@ -233,7 +233,7 @@ namespace OpenSim.Framework
}
}
public Parcel.ParcelStatus Status {
public ParcelStatus Status {
get {
return _status;
}

View File

@ -33,7 +33,7 @@ namespace OpenSim.Framework
public class LandUpdateArgs : EventArgs
{
public UUID AuthBuyerID;
public Parcel.ParcelCategory Category;
public ParcelCategory Category;
public string Desc;
public UUID GroupID;
public byte LandingType;

View File

@ -36,14 +36,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// </summary>
class KillPacket : Packet
{
private Header header;
public override int Length
{
get { return 0; }
}
public override void FromBytes(Header header, byte[] bytes, ref int i, ref int packetEnd, byte[] zeroBuffer)
public override void FromBytes(Header header, byte[] bytes, ref int i, ref int packetEnd)
{
}
@ -51,26 +49,23 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{
}
public override Header Header { get { return header; } set { header = value; }}
public override byte[] ToBytes()
{
return new byte[0];
}
public override byte[][] ToBytesMultiple()
{
return new byte[][] { new byte[0] };
}
public KillPacket()
{
Header = new LowHeader();
Type = PacketType.UseCircuitCode;
Header = new Header();
Header.Frequency = OpenMetaverse.PacketFrequency.Low;
Header.ID = 65531;
Header.Reliable = true;
}
public override PacketType Type
{
get
{
return PacketType.UseCircuitCode;
}
}
}
}

View File

@ -45,6 +45,7 @@ using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
using OpenSim.Services.Interfaces;
using Timer=System.Timers.Timer;
using AssetLandmark = OpenSim.Framework.AssetLandmark;
using Nini.Config;
namespace OpenSim.Region.ClientStack.LindenUDP
@ -1266,7 +1267,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
public void SendRegionHandshake(RegionInfo regionInfo, RegionHandshakeArgs args)
{
RegionHandshakePacket handshake = (RegionHandshakePacket)PacketPool.Instance.GetPacket(PacketType.RegionHandshake);
handshake.RegionInfo = new RegionHandshakePacket.RegionInfoBlock();
handshake.RegionInfo.BillableFactor = args.billableFactor;
handshake.RegionInfo.IsEstateManager = args.isEstateManager;
handshake.RegionInfo.TerrainHeightRange00 = args.terrainHeightRange0;
@ -1292,14 +1293,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP
handshake.RegionInfo.TerrainDetail2 = args.terrainDetail2;
handshake.RegionInfo.TerrainDetail3 = args.terrainDetail3;
handshake.RegionInfo.CacheID = UUID.Random(); //I guess this is for the client to remember an old setting?
handshake.RegionInfo2 = new RegionHandshakePacket.RegionInfo2Block();
handshake.RegionInfo2.RegionID = regionInfo.RegionID;
// handshake.RegionInfo3.ColoName = Utils.EmptyBytes;
// handshake.RegionInfo3.CPUClassID = 0;
// handshake.RegionInfo3.CPURatio = 0;
// handshake.RegionInfo3.ProductName = Utils.StringToBytes("OpenSim");
// handshake.RegionInfo3.ProductSKU = Utils.EmptyBytes;
handshake.RegionInfo3 = new RegionHandshakePacket.RegionInfo3Block();
handshake.RegionInfo3.CPUClassID = 9;
handshake.RegionInfo3.CPURatio = 1;
handshake.RegionInfo3.ColoName = Utils.EmptyBytes;
handshake.RegionInfo3.ProductName = Utils.EmptyBytes;
handshake.RegionInfo3.ProductSKU = Utils.EmptyBytes;
OutPacket(handshake, ThrottleOutPacketType.Task);
}
@ -3552,7 +3555,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP
rinfoblk.WaterHeight = args.waterHeight;
rinfoblk.SimName = Utils.StringToBytes(args.simName);
rinfopack.RegionInfo2 = new RegionInfoPacket.RegionInfo2Block();
rinfopack.RegionInfo2.HardMaxAgents = uint.MaxValue;
rinfopack.RegionInfo2.HardMaxObjects = uint.MaxValue;
rinfopack.RegionInfo2.MaxAgents32 = uint.MaxValue;
rinfopack.RegionInfo2.ProductName = Utils.EmptyBytes;
rinfopack.RegionInfo2.ProductSKU = Utils.EmptyBytes;
rinfopack.HasVariableBlocks = true;
rinfopack.RegionInfo = rinfoblk;
rinfopack.AgentData = new RegionInfoPacket.AgentDataBlock();
rinfopack.AgentData.AgentID = AgentId;
rinfopack.AgentData.SessionID = SessionId;
OutPacket(rinfopack, ThrottleOutPacketType.Task);
}
@ -7536,7 +7551,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
LandUpdateArgs args = new LandUpdateArgs();
args.AuthBuyerID = parcelPropertiesPacket.ParcelData.AuthBuyerID;
args.Category = (Parcel.ParcelCategory)parcelPropertiesPacket.ParcelData.Category;
args.Category = (ParcelCategory)parcelPropertiesPacket.ParcelData.Category;
args.Desc = Utils.BytesToString(parcelPropertiesPacket.ParcelData.Desc);
args.GroupID = parcelPropertiesPacket.ParcelData.GroupID;
args.LandingType = parcelPropertiesPacket.ParcelData.LandingType;
@ -10030,8 +10045,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// Bit 0: Mature, bit 7: on sale, other bits: no idea
reply.Data.Flags = (byte)(
((land.Flags & (uint)Parcel.ParcelFlags.MaturePublish) != 0 ? (1 << 0) : 0) +
((land.Flags & (uint)Parcel.ParcelFlags.ForSale) != 0 ? (1 << 7) : 0));
((land.Flags & (uint)ParcelFlags.MaturePublish) != 0 ? (1 << 0) : 0) +
((land.Flags & (uint)ParcelFlags.ForSale) != 0 ? (1 << 7) : 0));
Vector3 pos = land.UserLocation;
if (pos.Equals(Vector3.Zero))

View File

@ -827,7 +827,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
sendbuffer.Length, SocketFlags.None, m_Client.CircuitCode);
}
}
catch (NullReferenceException)
catch (NullReferenceException n)
{
m_log.Debug("[PACKET] Detected reuse of a returned packet");
m_PacketQueue.Cancel(item.Sequence);

View File

@ -33,6 +33,7 @@ using System.Text;
using log4net;
using Nini.Config;
using OpenMetaverse;
using OpenMetaverse.Assets;
using OpenMetaverse.Imaging;
using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces;
@ -391,7 +392,7 @@ namespace OpenSim.Region.CoreModules.Agent.TextureSender
if (i == (Layers.Length - 1))
strEnd = "";
stringResult.AppendFormat("{0}|{1}|{2}{3}", Layers[i].Start, Layers[i].End, Layers[i].Size, strEnd);
stringResult.AppendFormat("{0}|{1}|{2}{3}", Layers[i].Start, Layers[i].End, Layers[i].End - Layers[i].Start, strEnd);
}
fsSWCache.Write(stringResult.ToString());
fsSWCache.Close();

View File

@ -146,7 +146,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Combat.CombatModule
private void AvatarEnteringParcel(ScenePresence avatar, int localLandID, UUID regionID)
{
ILandObject obj = avatar.Scene.LandChannel.GetLandObject(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y);
if ((obj.landData.Flags & (uint)Parcel.ParcelFlags.AllowDamage) != 0)
if ((obj.landData.Flags & (uint)ParcelFlags.AllowDamage) != 0)
{
avatar.Invulnerable = false;
}

View File

@ -301,12 +301,12 @@ namespace OpenSim.Region.CoreModules.World.Land
{
if (checkBan.isBannedFromLand(avatar.AgentId))
{
checkBan.sendLandProperties((int)ParcelStatus.CollisionBanned, false, (int)ParcelResult.Single, avatar);
checkBan.sendLandProperties((int)ParcelPropertiesStatus.CollisionBanned, false, (int)ParcelResult.Single, avatar);
return; //Only send one
}
if (checkBan.isRestrictedFromLand(avatar.AgentId))
{
checkBan.sendLandProperties((int)ParcelStatus.CollisionNotOnAccessList, false, (int)ParcelResult.Single, avatar);
checkBan.sendLandProperties((int)ParcelPropertiesStatus.CollisionNotOnAccessList, false, (int)ParcelResult.Single, avatar);
return; //Only send one
}
}
@ -1116,7 +1116,7 @@ namespace OpenSim.Region.CoreModules.World.Land
UUID pOwnerID = lob.landData.OwnerID;
bool landforsale = ((lob.landData.Flags &
(uint)(Parcel.ParcelFlags.ForSale | Parcel.ParcelFlags.ForSaleObjects | Parcel.ParcelFlags.SellParcelObjects)) != 0);
(uint)(ParcelFlags.ForSale | ParcelFlags.ForSaleObjects | ParcelFlags.SellParcelObjects)) != 0);
if ((AuthorizedID == UUID.Zero || AuthorizedID == e.agentId) && e.parcelPrice >= saleprice && landforsale)
{
// TODO I don't think we have to lock it here, no?

View File

@ -167,7 +167,7 @@ namespace OpenSim.Region.CoreModules.World.Land
// In a perfect world, this would have worked.
//
// if ((landData.Flags & (uint)Parcel.ParcelFlags.AllowLandmark) != 0)
// if ((landData.Flags & (uint)ParcelFlags.AllowLandmark) != 0)
// regionFlags |= (uint)RegionFlags.AllowLandmark;
// if (landData.OwnerID == remote_client.AgentId)
// regionFlags |= (uint)RegionFlags.AllowSetHome;
@ -226,7 +226,7 @@ namespace OpenSim.Region.CoreModules.World.Land
newData.ClaimPrice = claimprice;
newData.SalePrice = 0;
newData.AuthBuyerID = UUID.Zero;
newData.Flags &= ~(uint) (Parcel.ParcelFlags.ForSale | Parcel.ParcelFlags.ForSaleObjects | Parcel.ParcelFlags.SellParcelObjects);
newData.Flags &= ~(uint) (ParcelFlags.ForSale | ParcelFlags.ForSaleObjects | ParcelFlags.SellParcelObjects);
m_scene.LandChannel.UpdateLandObject(landData.LocalID, newData);
sendLandUpdateToAvatarsOverMe();
@ -259,7 +259,7 @@ namespace OpenSim.Region.CoreModules.World.Land
public bool isBannedFromLand(UUID avatar)
{
if ((landData.Flags & (uint) Parcel.ParcelFlags.UseBanList) > 0)
if ((landData.Flags & (uint) ParcelFlags.UseBanList) > 0)
{
ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry();
entry.AgentID = avatar;
@ -276,7 +276,7 @@ namespace OpenSim.Region.CoreModules.World.Land
public bool isRestrictedFromLand(UUID avatar)
{
if ((landData.Flags & (uint) Parcel.ParcelFlags.UseAccessList) > 0)
if ((landData.Flags & (uint) ParcelFlags.UseAccessList) > 0)
{
ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry();
entry.AgentID = avatar;
@ -318,7 +318,7 @@ namespace OpenSim.Region.CoreModules.World.Land
{
if (over.landData.LocalID == landData.LocalID)
{
if (((over.landData.Flags & (uint)Parcel.ParcelFlags.AllowDamage) != 0) && m_scene.RegionInfo.RegionSettings.AllowDamage)
if (((over.landData.Flags & (uint)ParcelFlags.AllowDamage) != 0) && m_scene.RegionInfo.RegionSettings.AllowDamage)
avatars[i].Invulnerable = false;
else
avatars[i].Invulnerable = true;

View File

@ -1186,7 +1186,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
return false;
}
if ((land.landData.Flags & ((int)Parcel.ParcelFlags.AllowAPrimitiveEntry)) != 0)
if ((land.landData.Flags & ((int)ParcelFlags.AllowAPrimitiveEntry)) != 0)
{
return true;
}
@ -1230,8 +1230,8 @@ namespace OpenSim.Region.CoreModules.World.Permissions
ILandObject land = m_scene.LandChannel.GetLandObject(objectPosition.X, objectPosition.Y);
if (land == null) return false;
if ((land.landData.Flags & ((int)Parcel.ParcelFlags.CreateObjects)) ==
(int)Parcel.ParcelFlags.CreateObjects)
if ((land.landData.Flags & ((int)ParcelFlags.CreateObjects)) ==
(int)ParcelFlags.CreateObjects)
permission = true;
if (IsAdministrator(owner))
@ -1357,7 +1357,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
return false;
// Others allowed to terraform?
if ((parcel.landData.Flags & ((int)Parcel.ParcelFlags.AllowTerraform)) != 0)
if ((parcel.landData.Flags & ((int)ParcelFlags.AllowTerraform)) != 0)
return true;
// Land owner can terraform too

View File

@ -87,7 +87,7 @@ namespace OpenSim.Region.DataSnapshot.Providers
//Index sim land
foreach (KeyValuePair<int, Land> curLand in m_scene.LandManager.landList)
{
//if ((curLand.Value.landData.landFlags & (uint)Parcel.ParcelFlags.ShowDirectory) == (uint)Parcel.ParcelFlags.ShowDirectory)
//if ((curLand.Value.landData.landFlags & (uint)ParcelFlags.ShowDirectory) == (uint)ParcelFlags.ShowDirectory)
//{
m_landIndexed.Add(curLand.Key, curLand.Value.Copy());
//}
@ -138,7 +138,7 @@ namespace OpenSim.Region.DataSnapshot.Providers
LandData parcel = land.landData;
if (m_parent.ExposureLevel.Equals("all") ||
(m_parent.ExposureLevel.Equals("minimum") &&
(parcel.Flags & (uint)Parcel.ParcelFlags.ShowDirectory) == (uint)Parcel.ParcelFlags.ShowDirectory))
(parcel.Flags & (uint)ParcelFlags.ShowDirectory) == (uint)ParcelFlags.ShowDirectory))
{
//TODO: make better method of marshalling data from LandData to XmlNode
@ -315,7 +315,7 @@ namespace OpenSim.Region.DataSnapshot.Providers
private string GetScriptsPermissions(LandData parcel)
{
if ((parcel.Flags & (uint)Parcel.ParcelFlags.AllowOtherScripts) == (uint)Parcel.ParcelFlags.AllowOtherScripts)
if ((parcel.Flags & (uint)ParcelFlags.AllowOtherScripts) == (uint)ParcelFlags.AllowOtherScripts)
return "true";
else
return "false";
@ -324,7 +324,7 @@ namespace OpenSim.Region.DataSnapshot.Providers
private string GetPublicPermissions(LandData parcel)
{
if ((parcel.Flags & (uint)Parcel.ParcelFlags.UseAccessList) == (uint)Parcel.ParcelFlags.UseAccessList)
if ((parcel.Flags & (uint)ParcelFlags.UseAccessList) == (uint)ParcelFlags.UseAccessList)
return "false";
else
return "true";
@ -333,7 +333,7 @@ namespace OpenSim.Region.DataSnapshot.Providers
private string GetBuildPermissions(LandData parcel)
{
if ((parcel.Flags & (uint)Parcel.ParcelFlags.CreateObjects) == (uint)Parcel.ParcelFlags.CreateObjects)
if ((parcel.Flags & (uint)ParcelFlags.CreateObjects) == (uint)ParcelFlags.CreateObjects)
return "true";
else
return "false";
@ -342,7 +342,7 @@ namespace OpenSim.Region.DataSnapshot.Providers
private string CheckForSale(LandData parcel)
{
if ((parcel.Flags & (uint)Parcel.ParcelFlags.ForSale) == (uint)Parcel.ParcelFlags.ForSale)
if ((parcel.Flags & (uint)ParcelFlags.ForSale) == (uint)ParcelFlags.ForSale)
return "true";
else
return "false";
@ -350,7 +350,7 @@ namespace OpenSim.Region.DataSnapshot.Providers
private string GetShowInSearch(LandData parcel)
{
if ((parcel.Flags & (uint)Parcel.ParcelFlags.ShowDirectory) == (uint)Parcel.ParcelFlags.ShowDirectory)
if ((parcel.Flags & (uint)ParcelFlags.ShowDirectory) == (uint)ParcelFlags.ShowDirectory)
return "true";
else
return "false";

View File

@ -3097,11 +3097,11 @@ namespace OpenSim.Region.Framework.Scenes
{
if (parcel != null)
{
if ((parcel.landData.Flags & (uint)Parcel.ParcelFlags.AllowOtherScripts) != 0)
if ((parcel.landData.Flags & (uint)ParcelFlags.AllowOtherScripts) != 0)
{
return true;
}
else if ((parcel.landData.Flags & (uint)Parcel.ParcelFlags.AllowGroupScripts) != 0)
else if ((parcel.landData.Flags & (uint)ParcelFlags.AllowGroupScripts) != 0)
{
if (part.OwnerID == parcel.landData.OwnerID
|| (parcel.landData.IsGroupOwned && part.GroupID == parcel.landData.GroupID)

View File

@ -32,6 +32,7 @@ using System.Text.RegularExpressions;
using System.Threading;
using log4net;
using OpenMetaverse;
using OpenMetaverse.Assets;
using OpenSim.Framework;
using OpenSim.Region.Framework.Scenes.Serialization;
using OpenSim.Services.Interfaces;

View File

@ -443,7 +443,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
// }
// else
if ((land.Flags & (uint)Parcel.ParcelFlags.AllowVoiceChat) == 0)
if ((land.Flags & (uint)ParcelFlags.AllowVoiceChat) == 0)
{
m_log.DebugFormat("[FreeSwitchVoice][PARCELVOICE]: region \"{0}\": Parcel \"{1}\" ({2}): avatar \"{3}\": voice not enabled for parcel",
scene.RegionInfo.RegionName, land.Name, land.LocalID, avatarName);
@ -777,7 +777,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
// Create parcel voice channel. If no parcel exists, then the voice channel ID is the same
// as the directory ID. Otherwise, it reflects the parcel's ID.
if (land.LocalID != 1 && (land.Flags & (uint)Parcel.ParcelFlags.UseEstateVoiceChan) == 0)
if (land.LocalID != 1 && (land.Flags & (uint)ParcelFlags.UseEstateVoiceChan) == 0)
{
landName = String.Format("{0}:{1}", scene.RegionInfo.RegionName, land.Name);
landUUID = land.GlobalID.ToString();

View File

@ -651,7 +651,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.VivoxVoice
channel_uri = String.Empty;
}
if ((land.Flags & (uint)Parcel.ParcelFlags.AllowVoiceChat) == 0)
if ((land.Flags & (uint)ParcelFlags.AllowVoiceChat) == 0)
{
m_log.DebugFormat("[VivoxVoice][PARCELVOICE]: region \"{0}\": Parcel \"{1}\" ({2}): avatar \"{3}\": voice not enabled for parcel",
scene.RegionInfo.RegionName, land.Name, land.LocalID, avatarName);
@ -722,7 +722,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.VivoxVoice
// Create parcel voice channel. If no parcel exists, then the voice channel ID is the same
// as the directory ID. Otherwise, it reflects the parcel's ID.
if (land.LocalID != 1 && (land.Flags & (uint)Parcel.ParcelFlags.UseEstateVoiceChan) == 0)
if (land.LocalID != 1 && (land.Flags & (uint)ParcelFlags.UseEstateVoiceChan) == 0)
{
landName = String.Format("{0}:{1}", scene.RegionInfo.RegionName, land.Name);
landUUID = land.GlobalID.ToString();

View File

@ -27,6 +27,7 @@
using System;
using OpenMetaverse;
using OpenMetaverse.Assets;
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
{
@ -38,6 +39,6 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
{
int Type { get; }
UUID AssetID { get; }
T RetreiveAsset<T>() where T : OpenMetaverse.Asset, new();
T RetreiveAsset<T>() where T : Asset, new();
}
}

View File

@ -32,6 +32,7 @@ using OpenSim.Framework;
using OpenSim.Region.Framework.Scenes;
//using OpenSim.Services.AssetService;
using OpenMetaverse;
using OpenMetaverse.Assets;
namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
{
@ -80,7 +81,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
public int Type { get { return m_privateItem.Type; } }
public UUID AssetID { get { return m_privateItem.AssetID; } }
public T RetreiveAsset<T>() where T : OpenMetaverse.Asset, new()
public T RetreiveAsset<T>() where T : OpenMetaverse.Assets.Asset, new()
{
AssetBase a = m_rootSceene.AssetService.Get(AssetID.ToString());
T result = new T();

View File

@ -51,6 +51,8 @@ using OpenSim.Region.ScriptEngine.Shared.ScriptBase;
using OpenSim.Region.ScriptEngine.Interfaces;
using OpenSim.Region.ScriptEngine.Shared.Api.Interfaces;
using AssetLandmark = OpenSim.Framework.AssetLandmark;
using LSL_Float = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLFloat;
using LSL_Integer = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger;
using LSL_Key = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
@ -4058,7 +4060,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
else
{
// Parcel push restriction
if ((targetlandObj.landData.Flags & (uint)Parcel.ParcelFlags.RestrictPushObject) == (uint)Parcel.ParcelFlags.RestrictPushObject)
if ((targetlandObj.landData.Flags & (uint)ParcelFlags.RestrictPushObject) == (uint)ParcelFlags.RestrictPushObject)
{
// Need provisions for Group Owned here
if (m_host.OwnerID == targetlandObj.landData.OwnerID || targetlandObj.landData.IsGroupOwned || m_host.OwnerID == targetID)
@ -4066,7 +4068,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
pushAllowed = true;
}
//Parcel.ParcelFlags.RestrictPushObject
//ParcelFlags.RestrictPushObject
//pushAllowed = true;
}
else

View File

@ -32,6 +32,7 @@ using System.IO;
using System.Threading;
using System.Timers;
using OpenMetaverse;
using OpenMetaverse.Assets;
using Nini.Config;
using OpenSim.Framework;
using OpenSim.Framework.Console;
@ -142,7 +143,7 @@ namespace pCampBot
client.Settings.SEND_AGENT_THROTTLE = true;
client.Settings.SEND_PINGS = true;
client.Settings.STORE_LAND_PATCHES = false;
client.Settings.USE_TEXTURE_CACHE = false;
client.Settings.USE_ASSET_CACHE = false;
client.Settings.MULTIPLE_SIMS = true;
client.Throttle.Asset = 100000;
client.Throttle.Land = 100000;
@ -154,8 +155,7 @@ namespace pCampBot
client.Network.OnSimConnected += new NetworkManager.SimConnectedCallback(this.Network_OnConnected);
client.Network.OnDisconnected += new NetworkManager.DisconnectedCallback(this.Network_OnDisconnected);
client.Objects.OnNewPrim += Objects_NewPrim;
client.Assets.OnImageReceived += Asset_TextureCallback;
client.Assets.OnAssetReceived += Asset_ReceivedCallback;
//client.Assets.OnAssetReceived += Asset_ReceivedCallback;
if (client.Network.Login(firstname, lastname, password, "pCampBot", "Your name"))
{
if (OnConnected != null)
@ -202,8 +202,8 @@ namespace pCampBot
UUID wearable = client.Appearance.GetWearableAsset(wtype);
if (wearable != UUID.Zero)
{
client.Assets.RequestAsset(wearable, AssetType.Clothing, false);
client.Assets.RequestAsset(wearable, AssetType.Bodypart, false);
client.Assets.RequestAsset(wearable, AssetType.Clothing, false, Asset_ReceivedCallback);
client.Assets.RequestAsset(wearable, AssetType.Bodypart, false, Asset_ReceivedCallback);
}
}
}
@ -377,7 +377,7 @@ namespace pCampBot
{
if (prim.Textures.DefaultTexture.TextureID != UUID.Zero)
{
client.Assets.RequestImage(prim.Textures.DefaultTexture.TextureID, ImageType.Normal);
client.Assets.RequestImage(prim.Textures.DefaultTexture.TextureID, ImageType.Normal, Asset_TextureCallback_Texture);
}
for (int i = 0; i < prim.Textures.FaceTextures.Length; i++)
{
@ -385,7 +385,7 @@ namespace pCampBot
{
if (prim.Textures.FaceTextures[i].TextureID != UUID.Zero)
{
client.Assets.RequestImage(prim.Textures.FaceTextures[i].TextureID, ImageType.Normal);
client.Assets.RequestImage(prim.Textures.FaceTextures[i].TextureID, ImageType.Normal, Asset_TextureCallback_Texture);
}
}
@ -393,12 +393,14 @@ namespace pCampBot
}
if (prim.Sculpt.SculptTexture != UUID.Zero)
{
client.Assets.RequestImage(prim.Sculpt.SculptTexture, ImageType.Normal);
client.Assets.RequestImage(prim.Sculpt.SculptTexture, ImageType.Normal, Asset_TextureCallback_Texture);
}
}
}
public void Asset_TextureCallback(ImageDownload image, AssetTexture asset)
public void Asset_TextureCallback_Texture(TextureRequestState state, AssetTexture assetTexture)
{
//TODO: Implement texture saving and applying
}

Binary file not shown.

View File

@ -0,0 +1,57 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>OpenMetaverse.Http</name>
</assembly>
<members>
<member name="T:OpenMetaverse.Http.Logger">
<summary>
Singleton logging class for the entire library
</summary>
</member>
<member name="F:OpenMetaverse.Http.Logger.Log">
<summary>log4net logging engine</summary>
</member>
<member name="F:OpenMetaverse.Http.log4netLogWriter.Instance">
<summary>
Singleton instance of this class
</summary>
</member>
<member name="F:OpenMetaverse.Http.EventQueueClient.REQUEST_TIMEOUT">
<summary>=</summary>
</member>
<member name="F:OpenMetaverse.Http.EventQueueClient._errorCount">
<summary>Number of times we've received an unknown CAPS exception in series.</summary>
</member>
<member name="F:OpenMetaverse.Http.EventQueueClient._random">
<summary>For exponential backoff on error.</summary>
</member>
<member name="F:OpenMetaverse.Http.EventQueueServer.CONNECTION_TIMEOUT">
<summary>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</summary>
</member>
<member name="F:OpenMetaverse.Http.EventQueueServer.BATCH_WAIT_INTERVAL">
<summary>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</summary>
</member>
<member name="F:OpenMetaverse.Http.EventQueueServer.MAX_EVENTS_PER_RESPONSE">
<summary>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</summary>
</member>
<member name="T:OpenMetaverse.Http.CapsRequestCallback">
<summary>
Delegate for handling incoming HTTP requests through a capability
</summary>
<param name="context">Client context</param>
<param name="request">HTTP request</param>
<param name="response">HTTP response</param>
<param name="state">User-defined state object</param>
</member>
</members>
</doc>

Binary file not shown.

View File

@ -0,0 +1,333 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>OpenMetaverse.StructuredData</name>
</assembly>
<members>
<member name="T:OpenMetaverse.StructuredData.OSDParser">
<summary>
</summary>
<summary>
</summary>
<summary>
</summary>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.DeserializeLLSDXml(System.Byte[])">
<summary>
</summary>
<param name="xmlData"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.DeserializeLLSDXml(System.String)">
<summary>
</summary>
<param name="xmlData"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.DeserializeLLSDXml(System.Xml.XmlTextReader)">
<summary>
</summary>
<param name="xmlData"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.SerializeLLSDXmlBytes(OpenMetaverse.StructuredData.OSD)">
<summary>
</summary>
<param name="data"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.SerializeLLSDXmlString(OpenMetaverse.StructuredData.OSD)">
<summary>
</summary>
<param name="data"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.SerializeLLSDXmlElement(System.Xml.XmlTextWriter,OpenMetaverse.StructuredData.OSD)">
<summary>
</summary>
<param name="writer"></param>
<param name="data"></param>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.TryValidateLLSDXml(System.Xml.XmlTextReader,System.String@)">
<summary>
</summary>
<param name="xmlData"></param>
<param name="error"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.ParseLLSDXmlElement(System.Xml.XmlTextReader)">
<summary>
</summary>
<param name="reader"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.DeserializeLLSDBinary(System.Byte[])">
<summary>
</summary>
<param name="binaryData"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.DeserializeLLSDBinary(System.IO.Stream)">
<summary>
</summary>
<param name="stream"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.SerializeLLSDBinary(OpenMetaverse.StructuredData.OSD)">
<summary>
</summary>
<param name="osd"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.SerializeLLSDBinaryStream(OpenMetaverse.StructuredData.OSD)">
<summary>
</summary>
<param name="data"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.SkipWhiteSpace(System.IO.Stream)">
<summary>
</summary>
<param name="stream"></param>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.FindByte(System.IO.Stream,System.Byte)">
<summary>
</summary>
<param name="stream"></param>
<param name="toFind"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.FindByteArray(System.IO.Stream,System.Byte[])">
<summary>
</summary>
<param name="stream"></param>
<param name="toFind"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.ConsumeBytes(System.IO.Stream,System.Int32)">
<summary>
</summary>
<param name="stream"></param>
<param name="consumeBytes"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.NetworkToHostInt(System.Byte[])">
<summary>
</summary>
<param name="binaryNetEnd"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.NetworkToHostDouble(System.Byte[])">
<summary>
</summary>
<param name="binaryNetEnd"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.HostToNetworkIntBytes(System.Int32)">
<summary>
</summary>
<param name="intHostEnd"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.DeserializeLLSDNotationElement(System.IO.StringReader)">
<summary>
</summary>
<param name="reader"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.PeekAndSkipWhitespace(System.IO.StringReader)">
<summary>
</summary>
<param name="reader"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.ReadAndSkipWhitespace(System.IO.StringReader)">
<summary>
</summary>
<param name="reader"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.GetLengthInBrackets(System.IO.StringReader)">
<summary>
</summary>
<param name="reader"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.GetStringDelimitedBy(System.IO.StringReader,System.Char)">
<summary>
</summary>
<param name="reader"></param>
<param name="delimiter"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.BufferCharactersEqual(System.IO.StringReader,System.Char[],System.Int32)">
<summary>
</summary>
<param name="reader"></param>
<param name="buffer"></param>
<param name="offset"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.UnescapeCharacter(System.String,System.Char)">
<summary>
</summary>
<param name="s"></param>
<param name="c"></param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSDParser.EscapeCharacter(System.String,System.Char)">
<summary>
</summary>
<param name="s"></param>
<param name="c"></param>
<returns></returns>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDType">
<summary>
</summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Unknown">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Boolean">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Integer">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Real">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.String">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.UUID">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Date">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.URI">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Binary">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Map">
<summary></summary>
</member>
<member name="F:OpenMetaverse.StructuredData.OSDType.Array">
<summary></summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDException">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSD">
<summary>
</summary>
</member>
<member name="M:OpenMetaverse.StructuredData.OSD.SerializeMembers(System.Object)">
<summary>
Uses reflection to create an SDMap from all of the SD
serializable types in an object
</summary>
<param name="obj">Class or struct containing serializable types</param>
<returns>An SDMap holding the serialized values from the
container object</returns>
</member>
<member name="M:OpenMetaverse.StructuredData.OSD.DeserializeMembers(System.Object@,OpenMetaverse.StructuredData.OSDMap)">
<summary>
Uses reflection to deserialize member variables in an object from
an SDMap
</summary>
<param name="obj">Reference to an object to fill with deserialized
values</param>
<param name="serialized">Serialized values to put in the target
object</param>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDBoolean">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDInteger">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDReal">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDString">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDUUID">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDDate">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDUri">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDBinary">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDMap">
<summary>
</summary>
</member>
<member name="T:OpenMetaverse.StructuredData.OSDArray">
<summary>
</summary>
</member>
</members>
</doc>

Binary file not shown.

View File

@ -0,0 +1,98 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>OpenMetaverse.Utilities</name>
</assembly>
<members>
<member name="F:OpenMetaverse.Utilities.VoiceManager.BlockingTimeout">
<summary>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</summary>
</member>
<member name="M:OpenMetaverse.Utilities.VoiceManager.RequestRenderAudioStart(System.String,System.Boolean)">
<summary>
Does not appear to be working
</summary>
<param name="fileName"></param>
<param name="loop"></param>
</member>
<member name="M:OpenMetaverse.RegistrationApi.CreateUser(OpenMetaverse.RegistrationApi.CreateUserParam)">
<summary>
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
</summary>
<param name="user">New user account to create</param>
<returns>The UUID of the new user account</returns>
</member>
<member name="T:OpenMetaverse.RegistrationApi.CreateUserParam">
<summary>
See https://secure-web6.secondlife.com/developers/third_party_reg/#service_create_user or
https://wiki.secondlife.com/wiki/RegAPIDoc for description
</summary>
</member>
<member name="T:OpenMetaverse.Utilities.WaterType">
<summary>
</summary>
</member>
<member name="F:OpenMetaverse.Utilities.WaterType.Unknown">
<summary></summary>
</member>
<member name="F:OpenMetaverse.Utilities.WaterType.Dry">
<summary></summary>
</member>
<member name="F:OpenMetaverse.Utilities.WaterType.Waterfront">
<summary></summary>
</member>
<member name="F:OpenMetaverse.Utilities.WaterType.Underwater">
<summary></summary>
</member>
<member name="M:OpenMetaverse.Utilities.Realism.Shoot(OpenMetaverse.GridClient,OpenMetaverse.Vector3)">
<summary>
Aims at the specified position, enters mouselook, presses and
releases the left mouse button, and leaves mouselook
</summary>
<param name="client"></param>
<param name="target">Target to shoot at</param>
<returns></returns>
</member>
<member name="M:OpenMetaverse.Utilities.Realism.Shoot(OpenMetaverse.GridClient)">
<summary>
Enters mouselook, presses and releases the left mouse button, and leaves mouselook
</summary>
<returns></returns>
</member>
<member name="M:OpenMetaverse.Utilities.Realism.Chat(OpenMetaverse.GridClient,System.String)">
<summary>
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
</summary>
<param name="client">A reference to the client that will chat</param>
<param name="message">The chat message to send</param>
</member>
<member name="M:OpenMetaverse.Utilities.Realism.Chat(OpenMetaverse.GridClient,System.String,OpenMetaverse.ChatType,System.Int32)">
<summary>
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
</summary>
<param name="client">A reference to the client that will chat</param>
<param name="message">The chat message to send</param>
<param name="type">The chat type (usually Normal, Whisper or Shout)</param>
<param name="cps">Characters per second rate for chatting</param>
</member>
<member name="F:OpenMetaverse.Utilities.VoiceServiceType.Unknown">
<summary>Unknown voice service level</summary>
</member>
<member name="F:OpenMetaverse.Utilities.VoiceServiceType.TypeA">
<summary>Spatialized local chat</summary>
</member>
<member name="F:OpenMetaverse.Utilities.VoiceServiceType.TypeB">
<summary>Remote multi-party chat</summary>
</member>
<member name="F:OpenMetaverse.Utilities.VoiceServiceType.TypeC">
<summary>One-to-one and small group chat</summary>
</member>
</members>
</doc>

Binary file not shown.

21115
bin/OpenMetaverse.XML Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

1852
bin/OpenMetaverseTypes.XML Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.