/// <summary> /// Removes an Appearance instance from this avatar. /// </summary> /// <param name="appearance">The Appearance instance to remove.</param> /// <param name="dispose">Should the appearance be disposed?</param> public void RemoveAppearance(AvatarAppearanceInstance appearance, bool dispose) { foreach (var binding in appearance.Bindings) { RemoveBinding(binding, dispose); } }
/// <summary> /// Reloads the body mesh. /// </summary> private void ReloadBody() { if (m_BodyInstance != null) { base.RemoveAppearance(m_BodyInstance, true); } if (m_Body != null) { var AppearanceID = m_Body.GetAppearance(m_Appearance); var Appearance = TSO.Content.Content.Get().AvatarAppearances.Get(AppearanceID); if (Appearance != null) { m_BodyInstance = base.AddAppearance(Appearance); } } }
/// <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> /// Reloads the head mesh. /// </summary> private void ReloadHead() { if (m_HeadInstance != null){ base.RemoveAppearance(m_HeadInstance, true); } if (m_Head != null) { var AppearanceID = m_Head.GetAppearance(m_Appearance); var Appearance = TSO.Content.Content.Get().AvatarAppearances.Get(AppearanceID); if (Appearance != null) { m_HeadInstance = base.AddAppearance(Appearance); } } }
/// <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); } }