* Moved OpenMetaverse/Resources to bin/openmetaverse_data until we have a working xbuild and reorganize SVN
* Complete rewrite of AppearanceManager. Appearance editing has not been (re)implemented yet, but the normal appearance setting is much more reliable * Added a setting (defaulted to true) for automatically setting appearance * Various baking hacks to get slightly less ugly avatars * Added baked texture uploading through CAPS in AssetManager.RequestUploadBakedTexture(). UDP fallback is not implemented yet * Added Parallel.Invoke() and overloads for all three methods that take a threadCount git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@3038 52acb1d6-8a22-11de-b505-999d5b087335
This commit is contained in:
@@ -12,35 +12,14 @@ namespace OpenMetaverse.TestClient
|
||||
public AppearanceCommand(TestClient testClient)
|
||||
{
|
||||
Name = "appearance";
|
||||
Description = "Set your current appearance to your last saved appearance";
|
||||
Description = "Set your current appearance to your last saved appearance. Usage: appearance [rebake]";
|
||||
Category = CommandCategory.Appearance;
|
||||
}
|
||||
|
||||
public override string Execute(string[] args, UUID fromAgentID)
|
||||
{
|
||||
bool success = false;
|
||||
|
||||
// Register a handler for the appearance event
|
||||
AutoResetEvent appearanceEvent = new AutoResetEvent(false);
|
||||
AppearanceManager.AppearanceUpdatedCallback callback =
|
||||
delegate(Primitive.TextureEntry te) { appearanceEvent.Set(); };
|
||||
Client.Appearance.OnAppearanceUpdated += callback;
|
||||
|
||||
// Start the appearance setting process (with baking enabled or disabled)
|
||||
Client.Appearance.SetPreviousAppearance(!(args.Length > 0 && args[0].Equals("nobake")));
|
||||
|
||||
// Wait for the process to complete or time out
|
||||
if (appearanceEvent.WaitOne(1000 * 120, false))
|
||||
success = true;
|
||||
|
||||
// Unregister the handler
|
||||
Client.Appearance.OnAppearanceUpdated -= callback;
|
||||
|
||||
// Return success or failure message
|
||||
if (success)
|
||||
return "Successfully set appearance";
|
||||
else
|
||||
return "Timed out while setting appearance";
|
||||
Client.Appearance.RequestSetAppearance((args.Length > 0 && args[0].Equals("rebake")));
|
||||
return "Appearance sequence started";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace OpenMetaverse.TestClient.Commands.Appearance
|
||||
if (foundAv.Textures.FaceTextures[i] != null)
|
||||
{
|
||||
Primitive.TextureEntryFace face = foundAv.Textures.FaceTextures[i];
|
||||
AppearanceManager.TextureIndex type = (AppearanceManager.TextureIndex)i;
|
||||
AvatarTextureIndex type = (AvatarTextureIndex)i;
|
||||
|
||||
output.AppendFormat("{0}: {1}", type, face.TextureID);
|
||||
output.AppendLine();
|
||||
|
||||
@@ -31,16 +31,9 @@ namespace OpenMetaverse.TestClient
|
||||
|
||||
target = target.TrimEnd();
|
||||
|
||||
try
|
||||
{
|
||||
Client.Appearance.WearOutfit(target.Split('/'), bake);
|
||||
}
|
||||
catch (InvalidOutfitException ex)
|
||||
{
|
||||
return "Invalid outfit (" + ex.Message + ")";
|
||||
}
|
||||
//Client.Appearance.WearOutfit(target.Split('/'), bake);
|
||||
|
||||
return String.Empty;
|
||||
return "FIXME: Implement this";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,22 +31,19 @@ namespace OpenMetaverse.TestClient
|
||||
|
||||
// initialize results list
|
||||
List<InventoryBase> found = new List<InventoryBase>();
|
||||
try
|
||||
|
||||
// find the folder
|
||||
found = Client.Inventory.LocalFind(Client.Inventory.Store.RootFolder.UUID, target.Split('/'), 0, true);
|
||||
|
||||
if (found.Count.Equals(1))
|
||||
{
|
||||
// find the folder
|
||||
found = Client.Inventory.LocalFind(Client.Inventory.Store.RootFolder.UUID, target.Split('/'), 0, true);
|
||||
if (found.Count.Equals(1))
|
||||
{
|
||||
// move the folder to the trash folder
|
||||
Client.Inventory.MoveFolder(found[0].UUID, Client.Inventory.FindFolderForType(AssetType.TrashFolder));
|
||||
return String.Format("Moved folder {0} to Trash", found[0].Name);
|
||||
}
|
||||
// move the folder to the trash folder
|
||||
Client.Inventory.MoveFolder(found[0].UUID, Client.Inventory.FindFolderForType(AssetType.TrashFolder));
|
||||
|
||||
return String.Format("Moved folder {0} to Trash", found[0].Name);
|
||||
}
|
||||
catch (InvalidOutfitException ex)
|
||||
{
|
||||
return "Folder Not Found: (" + ex.Message + ")";
|
||||
}
|
||||
return string.Empty;
|
||||
|
||||
return String.Empty;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -55,20 +55,20 @@ namespace OpenMetaverse.TestClient
|
||||
{
|
||||
ImageType type = ImageType.Normal;
|
||||
|
||||
switch ((AppearanceManager.TextureIndex)j)
|
||||
switch ((AvatarTextureIndex)j)
|
||||
{
|
||||
case AppearanceManager.TextureIndex.HeadBaked:
|
||||
case AppearanceManager.TextureIndex.EyesBaked:
|
||||
case AppearanceManager.TextureIndex.UpperBaked:
|
||||
case AppearanceManager.TextureIndex.LowerBaked:
|
||||
case AppearanceManager.TextureIndex.SkirtBaked:
|
||||
case AvatarTextureIndex.HeadBaked:
|
||||
case AvatarTextureIndex.EyesBaked:
|
||||
case AvatarTextureIndex.UpperBaked:
|
||||
case AvatarTextureIndex.LowerBaked:
|
||||
case AvatarTextureIndex.SkirtBaked:
|
||||
type = ImageType.Baked;
|
||||
break;
|
||||
}
|
||||
|
||||
OutfitAssets.Add(face.TextureID);
|
||||
Client.Assets.RequestImage(face.TextureID, type, Assets_OnImageReceived);
|
||||
output.Append(((AppearanceManager.TextureIndex)j).ToString());
|
||||
output.Append(((AvatarTextureIndex)j).ToString());
|
||||
output.Append(" ");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,14 +60,14 @@ namespace OpenMetaverse.TestClient
|
||||
|
||||
// Determine if this is a baked outfit texture or a normal texture
|
||||
ImageType type = ImageType.Normal;
|
||||
AppearanceManager.TextureIndex index = (AppearanceManager.TextureIndex)i;
|
||||
AvatarTextureIndex index = (AvatarTextureIndex)i;
|
||||
switch (index)
|
||||
{
|
||||
case AppearanceManager.TextureIndex.EyesBaked:
|
||||
case AppearanceManager.TextureIndex.HeadBaked:
|
||||
case AppearanceManager.TextureIndex.LowerBaked:
|
||||
case AppearanceManager.TextureIndex.SkirtBaked:
|
||||
case AppearanceManager.TextureIndex.UpperBaked:
|
||||
case AvatarTextureIndex.EyesBaked:
|
||||
case AvatarTextureIndex.HeadBaked:
|
||||
case AvatarTextureIndex.LowerBaked:
|
||||
case AvatarTextureIndex.SkirtBaked:
|
||||
case AvatarTextureIndex.UpperBaked:
|
||||
type = ImageType.Baked;
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user