LIBOMV-686 Implements new event patterns based on the Microsoft Framework Design Guidelines in ObjectManager
LIBOMV-726 Adds stubs in LindenMessages for new WebFetchInventoryDescendents Capability git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@3175 52acb1d6-8a22-11de-b505-999d5b087335
This commit is contained in:
@@ -9,20 +9,12 @@ namespace OpenMetaverse.TestClient
|
||||
{
|
||||
public class PlayAnimationCommand : Command
|
||||
{
|
||||
private Dictionary<UUID, string> m_BuiltInAnimations = new Dictionary<UUID, string>();
|
||||
private Dictionary<UUID, string> m_BuiltInAnimations = new Dictionary<UUID, string>(Animations.ToDictionary());
|
||||
public PlayAnimationCommand(TestClient testClient)
|
||||
{
|
||||
Name = "play";
|
||||
Description = "Attempts to play an animation";
|
||||
Category = CommandCategory.Appearance;
|
||||
|
||||
Type t = typeof(Animations);
|
||||
FieldInfo[] f = t.GetFields(BindingFlags.Public | BindingFlags.Static);
|
||||
foreach (FieldInfo field in f)
|
||||
{
|
||||
m_BuiltInAnimations.Add((UUID)field.GetValue(t), field.Name);
|
||||
}
|
||||
Console.WriteLine(f);
|
||||
Category = CommandCategory.Appearance;
|
||||
}
|
||||
|
||||
private string Usage()
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace OpenMetaverse.TestClient.Commands.Movement
|
||||
Description = "Fly the avatar toward the specified position for a maximum of seconds. Usage: FlyTo x y z [seconds]";
|
||||
Category = CommandCategory.Movement;
|
||||
|
||||
client.Objects.OnObjectUpdated += new ObjectManager.ObjectUpdatedCallback(Objects_OnObjectUpdated);
|
||||
client.Objects.ObjectUpdated += Objects_OnObjectUpdated;
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID)
|
||||
@@ -54,10 +54,10 @@ namespace OpenMetaverse.TestClient.Commands.Movement
|
||||
return string.Format("flying to {0} in {1} seconds", target.ToString(), duration / 1000);
|
||||
}
|
||||
|
||||
private void Objects_OnObjectUpdated(Simulator simulator, ObjectUpdate update, ulong regionHandle, ushort timeDilation)
|
||||
private void Objects_OnObjectUpdated(object sender, ObjectUpdatedEventArgs e)
|
||||
{
|
||||
if (startTime == 0) return;
|
||||
if (update.LocalID == Client.Self.LocalID)
|
||||
if (e.Update.LocalID == Client.Self.LocalID)
|
||||
{
|
||||
XYMovement();
|
||||
ZMovement();
|
||||
|
||||
@@ -13,8 +13,8 @@ namespace OpenMetaverse.TestClient
|
||||
private int PermCount;
|
||||
|
||||
public ChangePermsCommand(TestClient testClient)
|
||||
{
|
||||
testClient.Objects.OnObjectProperties += new ObjectManager.ObjectPropertiesCallback(Objects_OnObjectProperties);
|
||||
{
|
||||
testClient.Objects.ObjectProperties += new EventHandler<ObjectPropertiesEventArgs>(Objects_OnObjectProperties);
|
||||
|
||||
Name = "changeperms";
|
||||
Description = "Recursively changes all of the permissions for child and task inventory objects. Usage prim-uuid [copy] [mod] [xfer]";
|
||||
@@ -152,11 +152,11 @@ namespace OpenMetaverse.TestClient
|
||||
return "Set permissions to " + Perms.ToString() + " on " + localIDs.Count + " objects and " + taskItems + " inventory items";
|
||||
}
|
||||
|
||||
void Objects_OnObjectProperties(Simulator simulator, Primitive.ObjectProperties properties)
|
||||
void Objects_OnObjectProperties(object sender, ObjectPropertiesEventArgs e)
|
||||
{
|
||||
if (PermsSent)
|
||||
{
|
||||
if (Objects.ContainsKey(properties.ObjectID))
|
||||
if (Objects.ContainsKey(e.Properties.ObjectID))
|
||||
{
|
||||
// FIXME: Confirm the current operation against properties.Permissions.NextOwnerMask
|
||||
|
||||
|
||||
@@ -21,14 +21,15 @@ namespace OpenMetaverse.TestClient
|
||||
|
||||
public ExportCommand(TestClient testClient)
|
||||
{
|
||||
testClient.Objects.OnObjectPropertiesFamily += new ObjectManager.ObjectPropertiesFamilyCallback(Objects_OnObjectPropertiesFamily);
|
||||
testClient.Objects.OnObjectProperties += new ObjectManager.ObjectPropertiesCallback(Objects_OnObjectProperties);
|
||||
testClient.Objects.ObjectPropertiesFamily += new EventHandler<ObjectPropertiesFamilyEventArgs>(Objects_OnObjectPropertiesFamily);
|
||||
|
||||
testClient.Objects.ObjectProperties += new EventHandler<ObjectPropertiesEventArgs>(Objects_OnObjectProperties);
|
||||
testClient.Avatars.ViewerEffectPointAt += new EventHandler<ViewerEffectPointAtEventArgs>(Avatars_ViewerEffectPointAt);
|
||||
|
||||
Name = "export";
|
||||
Description = "Exports an object to an xml file. Usage: export uuid outputfile.xml";
|
||||
Category = CommandCategory.Objects;
|
||||
}
|
||||
}
|
||||
|
||||
void Avatars_ViewerEffectPointAt(object sender, ViewerEffectPointAtEventArgs e)
|
||||
{
|
||||
@@ -220,20 +221,19 @@ namespace OpenMetaverse.TestClient
|
||||
}
|
||||
}
|
||||
|
||||
void Objects_OnObjectPropertiesFamily(Simulator simulator, Primitive.ObjectProperties properties,
|
||||
ReportType type)
|
||||
void Objects_OnObjectPropertiesFamily(object sender, ObjectPropertiesFamilyEventArgs e)
|
||||
{
|
||||
Properties = new Primitive.ObjectProperties();
|
||||
Properties.SetFamilyProperties(properties);
|
||||
Properties.SetFamilyProperties(e.Properties);
|
||||
GotPermissions = true;
|
||||
GotPermissionsEvent.Set();
|
||||
}
|
||||
|
||||
void Objects_OnObjectProperties(Simulator simulator, Primitive.ObjectProperties properties)
|
||||
void Objects_OnObjectProperties(object sender, ObjectPropertiesEventArgs e)
|
||||
{
|
||||
lock (PrimsWaiting)
|
||||
{
|
||||
PrimsWaiting.Remove(properties.ObjectID);
|
||||
PrimsWaiting.Remove(e.Properties.ObjectID);
|
||||
|
||||
if (PrimsWaiting.Count == 0)
|
||||
AllPropertiesReceived.Set();
|
||||
|
||||
@@ -14,7 +14,7 @@ namespace OpenMetaverse.TestClient
|
||||
|
||||
public FindObjectsCommand(TestClient testClient)
|
||||
{
|
||||
testClient.Objects.OnObjectProperties += new ObjectManager.ObjectPropertiesCallback(Objects_OnObjectProperties);
|
||||
testClient.Objects.ObjectProperties += new EventHandler<ObjectPropertiesEventArgs>(Objects_OnObjectProperties);
|
||||
|
||||
Name = "findobjects";
|
||||
Description = "Finds all objects, which name contains search-string. " +
|
||||
@@ -83,16 +83,16 @@ namespace OpenMetaverse.TestClient
|
||||
return AllPropertiesReceived.WaitOne(2000 + msPerRequest * objects.Count, false);
|
||||
}
|
||||
|
||||
void Objects_OnObjectProperties(Simulator simulator, Primitive.ObjectProperties properties)
|
||||
void Objects_OnObjectProperties(object sender, ObjectPropertiesEventArgs e)
|
||||
{
|
||||
lock (PrimsWaiting)
|
||||
{
|
||||
Primitive prim;
|
||||
if (PrimsWaiting.TryGetValue(properties.ObjectID, out prim))
|
||||
if (PrimsWaiting.TryGetValue(e.Properties.ObjectID, out prim))
|
||||
{
|
||||
prim.Properties = properties;
|
||||
prim.Properties = e.Properties;
|
||||
}
|
||||
PrimsWaiting.Remove(properties.ObjectID);
|
||||
PrimsWaiting.Remove(e.Properties.ObjectID);
|
||||
|
||||
if (PrimsWaiting.Count == 0)
|
||||
AllPropertiesReceived.Set();
|
||||
|
||||
@@ -46,8 +46,8 @@ namespace OpenMetaverse.TestClient
|
||||
Name = "import";
|
||||
Description = "Import prims from an exported xml file. Usage: import inputfile.xml [usegroup]";
|
||||
Category = CommandCategory.Objects;
|
||||
|
||||
testClient.Objects.OnNewPrim += new ObjectManager.NewPrimCallback(Objects_OnNewPrim);
|
||||
|
||||
testClient.Objects.NewPrim += Objects_OnNewPrim;
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID)
|
||||
@@ -182,8 +182,10 @@ namespace OpenMetaverse.TestClient
|
||||
return "Import complete.";
|
||||
}
|
||||
|
||||
void Objects_OnNewPrim(Simulator simulator, Primitive prim, ulong regionHandle, ushort timeDilation)
|
||||
void Objects_OnNewPrim(object sender, PrimEventArgs e)
|
||||
{
|
||||
Primitive prim = e.Prim;
|
||||
|
||||
if ((prim.Flags & PrimFlags.CreateSelected) == 0)
|
||||
return; // We received an update for an object we didn't create
|
||||
|
||||
@@ -197,23 +199,23 @@ namespace OpenMetaverse.TestClient
|
||||
{
|
||||
Console.WriteLine("Setting properties for " + prim.LocalID);
|
||||
// TODO: Is there a way to set all of this at once, and update more ObjectProperties stuff?
|
||||
Client.Objects.SetPosition(simulator, prim.LocalID, currentPosition);
|
||||
Client.Objects.SetTextures(simulator, prim.LocalID, currentPrim.Textures);
|
||||
Client.Objects.SetPosition(e.Simulator, prim.LocalID, currentPosition);
|
||||
Client.Objects.SetTextures(e.Simulator, prim.LocalID, currentPrim.Textures);
|
||||
|
||||
if (currentPrim.Light.Intensity > 0) {
|
||||
Client.Objects.SetLight(simulator, prim.LocalID, currentPrim.Light);
|
||||
Client.Objects.SetLight(e.Simulator, prim.LocalID, currentPrim.Light);
|
||||
}
|
||||
|
||||
Client.Objects.SetFlexible(simulator, prim.LocalID, currentPrim.Flexible);
|
||||
Client.Objects.SetFlexible(e.Simulator, prim.LocalID, currentPrim.Flexible);
|
||||
|
||||
if (currentPrim.Sculpt.SculptTexture != UUID.Zero) {
|
||||
Client.Objects.SetSculpt(simulator, prim.LocalID, currentPrim.Sculpt);
|
||||
Client.Objects.SetSculpt(e.Simulator, prim.LocalID, currentPrim.Sculpt);
|
||||
}
|
||||
|
||||
if (!String.IsNullOrEmpty(currentPrim.Properties.Name))
|
||||
Client.Objects.SetName(simulator, prim.LocalID, currentPrim.Properties.Name);
|
||||
Client.Objects.SetName(e.Simulator, prim.LocalID, currentPrim.Properties.Name);
|
||||
if (!String.IsNullOrEmpty(currentPrim.Properties.Description))
|
||||
Client.Objects.SetDescription(simulator, prim.LocalID, currentPrim.Properties.Description);
|
||||
Client.Objects.SetDescription(e.Simulator, prim.LocalID, currentPrim.Properties.Description);
|
||||
|
||||
primsCreated.Add(prim);
|
||||
primDone.Set();
|
||||
|
||||
@@ -57,21 +57,22 @@ namespace OpenMetaverse.TestClient
|
||||
}
|
||||
|
||||
AutoResetEvent propsEvent = new AutoResetEvent(false);
|
||||
ObjectManager.ObjectPropertiesCallback propsCallback =
|
||||
delegate(Simulator simulator, Primitive.ObjectProperties props)
|
||||
EventHandler<ObjectPropertiesEventArgs> propsCallback =
|
||||
delegate(object sender, ObjectPropertiesEventArgs e)
|
||||
{
|
||||
Logger.Log(String.Format(
|
||||
"Category: {0}\nFolderID: {1}\nFromTaskID: {2}\nInventorySerial: {3}\nItemID: {4}\nCreationDate: {5}",
|
||||
props.Category, props.FolderID, props.FromTaskID, props.InventorySerial, props.ItemID, props.CreationDate), Helpers.LogLevel.Info);
|
||||
e.Properties.Category, e.Properties.FolderID, e.Properties.FromTaskID, e.Properties.InventorySerial,
|
||||
e.Properties.ItemID, e.Properties.CreationDate), Helpers.LogLevel.Info);
|
||||
propsEvent.Set();
|
||||
};
|
||||
|
||||
Client.Objects.OnObjectProperties += propsCallback;
|
||||
Client.Objects.ObjectProperties += propsCallback;
|
||||
|
||||
Client.Objects.SelectObject(Client.Network.CurrentSim, target.LocalID, true);
|
||||
|
||||
propsEvent.WaitOne(1000 * 10, false);
|
||||
Client.Objects.OnObjectProperties -= propsCallback;
|
||||
Client.Objects.ObjectProperties -= propsCallback;
|
||||
|
||||
return "Done.";
|
||||
}
|
||||
|
||||
@@ -17,9 +17,9 @@ namespace OpenMetaverse.TestClient
|
||||
Name = "textures";
|
||||
Description = "Turns automatic texture downloading on or off. Usage: textures [on/off]";
|
||||
Category = CommandCategory.Objects;
|
||||
|
||||
testClient.Objects.OnNewPrim += new ObjectManager.NewPrimCallback(Objects_OnNewPrim);
|
||||
testClient.Objects.OnNewAvatar += new ObjectManager.NewAvatarCallback(Objects_OnNewAvatar);
|
||||
|
||||
testClient.Objects.NewPrim += new EventHandler<PrimEventArgs>(Objects_OnNewPrim);
|
||||
testClient.Objects.NewAvatar += Objects_OnNewAvatar;
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID)
|
||||
@@ -43,8 +43,9 @@ namespace OpenMetaverse.TestClient
|
||||
}
|
||||
}
|
||||
|
||||
void Objects_OnNewAvatar(Simulator simulator, Avatar avatar, ulong regionHandle, ushort timeDilation)
|
||||
void Objects_OnNewAvatar(object sender, NewAvatarEventArgs e)
|
||||
{
|
||||
Avatar avatar = e.Avatar;
|
||||
if (enabled)
|
||||
{
|
||||
// Search this avatar for textures
|
||||
@@ -79,8 +80,10 @@ namespace OpenMetaverse.TestClient
|
||||
}
|
||||
}
|
||||
|
||||
void Objects_OnNewPrim(Simulator simulator, Primitive prim, ulong regionHandle, ushort timeDilation)
|
||||
void Objects_OnNewPrim(object sender, PrimEventArgs e)
|
||||
{
|
||||
Primitive prim = e.Prim;
|
||||
|
||||
if (enabled)
|
||||
{
|
||||
// Search this prim for textures
|
||||
|
||||
Reference in New Issue
Block a user