private void SetAppearanceAssets(CachedUserInfo profile, ref List<AvatarWearable> wearables, IClientAPI clientView) { foreach (AvatarWearable wearable in wearables) { // Skip it if its empty if (wearable.ItemID == UUID.Zero) continue; // Ignore ruth's assets if (((wearable.WearableType == AvatarWearable.BODY) && (wearable.ItemID == AvatarWearable.DEFAULT_BODY_ITEM)) || ((wearable.WearableType == AvatarWearable.SKIN) && (wearable.ItemID == AvatarWearable.DEFAULT_SKIN_ITEM)) || ((wearable.WearableType == AvatarWearable.HAIR) && (wearable.ItemID == AvatarWearable.DEFAULT_HAIR_ITEM)) || ((wearable.WearableType == AvatarWearable.EYES) && (wearable.ItemID == AvatarWearable.DEFAULT_EYES_ITEM)) || ((wearable.WearableType == AvatarWearable.SHIRT) && (wearable.ItemID == AvatarWearable.DEFAULT_SHIRT_ITEM)) || ((wearable.WearableType == AvatarWearable.PANTS) && (wearable.ItemID == AvatarWearable.DEFAULT_PANTS_ITEM))) { continue; } // Otherwise look up the asset and store the translated value // XXX dont look up stuff we already know about.. save a trip to the asset server InventoryItemBase baseItem = profile.FindItem(wearable.ItemID); baseItem = profile.ResolveLink(baseItem); if (baseItem != null) { wearable.AssetID = baseItem.AssetID; } else { m_log.ErrorFormat("[APPEARANCE]: Can't find inventory item {0}", wearable.ItemID); } } }