/// <summary>
 /// Register entity component.
 /// </summary>
 internal void RegisterEntityComponent(MyAnimationControllerComponent entityComponent)
 {
     using (m_lock.AcquireExclusiveUsing())
     {
         m_skinnedEntityComponentsToAdd.Add(entityComponent);
     }
 }
 /// <summary>
 /// Unregister entity component.
 /// </summary>
 internal void UnregisterEntityComponent(MyAnimationControllerComponent entityComponent)
 {
     if (m_skinnedEntityComponents.Contains(entityComponent))
     {
         m_skinnedEntityComponents.Remove(entityComponent);
     }
     else
     {
         Debug.Assert(false, "Entity component was not found, cannot be unregistered.");
     }
 }
        public MySkinnedEntity()
        {
            this.Render = new MyRenderComponentSkinnedEntity();
            Render.EnableColorMaskHsv = true;
            Render.NeedsDraw = true;
            Render.CastShadows = true;
            Render.NeedsResolveCastShadow = false;
            Render.SkipIfTooSmall = false;

            m_compAnimationController = new MyAnimationControllerComponent();
            m_compAnimationController.ReloadBonesNeeded = ObtainBones;
            Components.Add(m_compAnimationController);
        }
        public MySkinnedEntity()
        {
            this.Render = new MyRenderComponentSkinnedEntity();
            Render.EnableColorMaskHsv = true;
            Render.NeedsDraw = true;
            Render.CastShadows = true;
            Render.NeedsResolveCastShadow = false;
            Render.SkipIfTooSmall = false;

            MyEntityTerrainHeightProviderComponent entityTerrainHeightComp = new MyEntityTerrainHeightProviderComponent();
            Components.Add(entityTerrainHeightComp);
            m_compAnimationController = new MyAnimationControllerComponent();
            m_compAnimationController.ReloadBonesNeeded = ObtainBones;
            m_compAnimationController.InverseKinematics.TerrainHeightProvider = entityTerrainHeightComp;
            Components.Add(m_compAnimationController);
        }
 /// <summary>
 /// Register entity component.
 /// </summary>
 internal void RegisterEntityComponent(MyAnimationControllerComponent entityComponent)
 {
     Debug.Assert(m_skinnedEntityComponents.Contains(entityComponent) == false, "Entity component was already registered.");
     m_skinnedEntityComponents.Add(entityComponent);
 }