void onClick_DeleteCutsceneButton(MyGuiControlButton sender)
        {
            var cutscenes = MySession.Static.GetComponent<MySessionComponentCutscenes>();

            if (m_selectedCutscene != null)
            {
                cutscenes.GetCutscenes().Remove(m_selectedCutscene.Name);
                m_comboCutscenes.RemoveItem(m_selectedCutscene.Name.GetHashCode());

                if (cutscenes.GetCutscenes().Count == 0)
                    m_selectedCutscene = null;
                else
                    m_comboCutscenes.SelectItemByIndex(cutscenes.GetCutscenes().Count - 1);
            }            
        }
        public bool PlayCutscene(string cutsceneName)
        {
            MySandboxGame.Log.WriteLineAndConsole("Cutscene start: " + cutsceneName);
            if (m_cutsceneLibrary.ContainsKey(cutsceneName))
            {
                if (IsCutsceneRunning)
                    CutsceneEnd(false);
                else
                    m_origHud = MyHud.MinimalHud;

                m_currentCutscene = m_cutsceneLibrary[cutsceneName];
                m_currentNode = null;
                m_currentNodeIndex = 0;
                m_currentTime = 0;
                m_nodeActivated = false;
                m_lookTarget = null;
                m_attachedPositionTo = null;
                m_attachedRotationTo = null;
                m_rotateTarget = null;
                m_moveTarget = null;
                m_currentFOV = MathHelper.Clamp(m_currentCutscene.StartingFOV, MINIMUM_FOV, MAXIMUM_FOV);
                MyGuiScreenGamePlay.DisableInput = true;
                if (MyCubeBuilder.Static.IsActivated)
                    MyCubeBuilder.Static.Deactivate();
                MyHud.MinimalHud = true;

                MatrixD startMatrix = MatrixD.Identity;
                MyEntity entity = m_currentCutscene.StartEntity.Length > 0 ? MyVisualScriptLogicProvider.GetEntityByName(m_currentCutscene.StartEntity) : null;
                if (entity != null)
                    startMatrix = entity.WorldMatrix;

                if (m_currentCutscene.StartLookAt.Length > 0 && !m_currentCutscene.StartLookAt.Equals(m_currentCutscene.StartEntity))
                {
                    entity = MyVisualScriptLogicProvider.GetEntityByName(m_currentCutscene.StartLookAt);
                    if (entity != null)
                        startMatrix = MatrixD.CreateLookAtInverse(startMatrix.Translation, entity.PositionComp.GetPosition(), startMatrix.Up);
                }
                m_nodeStartMatrix = startMatrix;
                m_currentCameraMatrix = startMatrix;
                m_originalCameraController = MySession.Static.CameraController;
                m_cameraEntity.WorldMatrix = startMatrix;
                MySession.Static.SetCameraController(MyCameraControllerEnum.Entity, m_cameraEntity);

                return true;
            }
            else
            {
                Debug.Fail("There is no cutscene named \"" + cutsceneName + "\".");
                return false;
            }
        }
        void m_comboCutscenes_ItemSelected()
        {
            m_selectedCutscene = MySession.Static.GetComponent<MySessionComponentCutscenes>().GetCutscene(m_comboCutscenes.GetSelectedValue().ToString());

            m_comboNodes.ClearItems();

            if (m_selectedCutscene.SequenceNodes != null)
            {
                int i = 0;
                foreach (var node in m_selectedCutscene.SequenceNodes)
                {
                    m_comboNodes.AddItem(i, node.Time.ToString());
                    i++;
                }
            }


            if (m_comboNodes.GetItemsCount() > 0)
                m_comboNodes.SelectItemByIndex(0);

         
        }
 public void CutsceneEnd(bool releaseCamera = true)
 {
     if (m_currentCutscene != null)
     {
         if (MyVisualScriptLogicProvider.CutsceneEnded != null)
             MyVisualScriptLogicProvider.CutsceneEnded(m_currentCutscene.Name);
         m_currentCutscene = null;
         if (releaseCamera)
         {
             MySession.Static.SetCameraController(MyCameraControllerEnum.Entity, MySession.Static.ControlledEntity.Entity);
             MyHud.MinimalHud = m_origHud;
             MyGuiScreenGamePlay.DisableInput = false;
         }
     }
 }