/// <summary> /// Adds an Appearance instance to this avatar. /// </summary> /// <param name="appearance">The Appearance instance to add.</param> /// <returns>An AvatarAppearanceInstance instance.</returns> protected AvatarAppearanceInstance AddAppearance(Appearance appearance) { var result = new AvatarAppearanceInstance(); result.Bindings = new List <AvatarBindingInstance>(); foreach (var bindingReference in appearance.Bindings) { var binding = TSO.Content.Content.Get().AvatarBindings.Get(bindingReference.TypeID, bindingReference.FileID); if (binding == null) { continue; } result.Bindings.Add(AddBinding(binding)); } return(result); }
/// <summary> /// Reloads the hand meshes. /// </summary> private void ReloadHandgroup() { if (m_LeftHandInstance != null) { base.RemoveAppearance(m_LeftHandInstance, true); } if (m_RightHandInstance != null) { base.RemoveAppearance(m_RightHandInstance, true); } if (m_Handgroup != null) { var HandgroupID = m_Handgroup.GetHandgroup(); var Handgroup = TSO.Content.Content.Get().AvatarHandgroups.Get(HandgroupID.TypeID, HandgroupID.FileID); TSO.Common.content.ContentID LeftID = null; TSO.Common.content.ContentID RightID = null; TSO.Vitaboy.HandSet HSet = null; switch (m_Appearance) { case AppearanceType.Light: HSet = Handgroup.LightSkin; break; case AppearanceType.Medium: HSet = Handgroup.MediumSkin; break; case AppearanceType.Dark: HSet = Handgroup.DarkSkin; break; } switch (m_LeftHandGesture) { case SimHandGesture.Idle: LeftID = HSet.LeftHand.Idle.ID; break; case SimHandGesture.Fist: LeftID = HSet.LeftHand.Fist.ID; break; case SimHandGesture.Pointing: LeftID = HSet.LeftHand.Pointing.ID; break; } switch (m_RightHandGesture) { case SimHandGesture.Idle: RightID = HSet.RightHand.Idle.ID; break; case SimHandGesture.Fist: RightID = HSet.RightHand.Fist.ID; break; case SimHandGesture.Pointing: RightID = HSet.RightHand.Pointing.ID; break; } Appearance LeftApr = TSO.Content.Content.Get().AvatarAppearances.Get(LeftID); Appearance RightApr = TSO.Content.Content.Get().AvatarAppearances.Get(RightID); if (LeftApr != null) { m_LeftHandInstance = base.AddAppearance(LeftApr); } if (RightApr != null) { m_RightHandInstance = base.AddAppearance(RightApr); } } }
/// <summary> /// Adds an Appearance instance to this avatar. /// </summary> /// <param name="appearance">The Appearance instance to add.</param> /// <returns>An AvatarAppearanceInstance instance.</returns> protected AvatarAppearanceInstance AddAppearance(Appearance appearance) { var result = new AvatarAppearanceInstance(); result.Bindings = new List<AvatarBindingInstance>(); foreach (var bindingReference in appearance.Bindings) { var binding = TSO.Content.Content.Get().AvatarBindings.Get(bindingReference.TypeID, bindingReference.FileID); if (binding == null) { continue; } result.Bindings.Add(AddBinding(binding)); } return result; }
/// <summary> /// Remove an accessory from this avatar. /// </summary> /// <param name="apr">The Appearance of the accessory to remove.</param> public void RemoveAccessory(Appearance apr) { if (Accessories.ContainsKey(apr)) { RemoveAppearance(Accessories[apr], true); Accessories.Remove(apr); } }
/// <summary> /// Adds an accessory to this avatar. /// </summary> /// <param name="apr">The Appearance instance of the accessory.</param> public void AddAccessory(Appearance apr) { if (Accessories.ContainsKey(apr)) { return; } var add = AddAppearance(apr); Accessories.Add(apr, add); }