public bool TryChangeCameraAttachedTo(MyCameraAttachedToEnum cameraAttachedTo)
        {
            if (DetachingForbidden)
            {
                return false;
            }

            CameraAttachedTo = cameraAttachedTo;
            return true;
        }
Esempio n. 2
0
        //  Draw class is in two passes, because first pass is drawn before we draw back camera. So it's about having sorting.
        public static void Draw(MyHudDrawPassEnum pass, MyCameraAttachedToEnum cameraAttachedTo, bool backCamera)
        {
            MyRender.GetRenderProfiler().StartProfilingBlock("Clear");
            MyCamera.EnableHud();

            ClearQuads();
            ClearTexts();

            MyRender.GetRenderProfiler().EndProfilingBlock();

            MyHudDrawElementEnum drawForCameraAttachedTo = m_drawForCameraAttachedTo[(int)cameraAttachedTo];

            if (pass == MyHudDrawPassEnum.FIRST)
            {
                if ((drawForCameraAttachedTo & MyHudDrawElementEnum.DIRECTION_INDICATORS) != 0)
                {
                    MyRender.GetRenderProfiler().StartProfilingBlock("AddDirectionIndicators");
                    AddDirectionIndicators();
                    MyRender.GetRenderProfiler().EndProfilingBlock();

                    MyRender.GetRenderProfiler().StartProfilingBlock("AddOreMarkers");
                    if (MyFakes.ENABLE_DISPLAYING_ORE_ON_HUD)
                    {
                        AddOreMarkers();
                    }
                    MyRender.GetRenderProfiler().EndProfilingBlock();
                }
                if ((drawForCameraAttachedTo & MyHudDrawElementEnum.DAMAGE_INDICATORS) != 0)
                {
                    MyRender.GetRenderProfiler().StartProfilingBlock("AddDamageIndicators");
                    AddDamageIndicators();
                    MyRender.GetRenderProfiler().EndProfilingBlock();
                }
            }
            else if (pass == MyHudDrawPassEnum.SECOND)
            {

                if ((drawForCameraAttachedTo & MyHudDrawElementEnum.CROSSHAIR) != 0 || MyFakes.CUBE_EDITOR)
                {
                    if (!MySession.Is25DSector)
                    {
                        MyRender.GetRenderProfiler().StartProfilingBlock("AddHorisontalAngleLine");
                        AddHorisontalAngleLine();
                        MyRender.GetRenderProfiler().EndProfilingBlock();

                        MyRender.GetRenderProfiler().StartProfilingBlock("AddCrosshair");
                        if (CanDrawCrossHair())
                        {
                            AddCrosshair();
                        }
                        MyRender.GetRenderProfiler().EndProfilingBlock();
                    }
                }
                if ((drawForCameraAttachedTo & MyHudDrawElementEnum.CROSSHAIR_DYNAMIC) != 0)
                {
                    MyRender.GetRenderProfiler().StartProfilingBlock("AddCrosshairDynamic");
                    if (CanDrawCrossHair())
                    {
                        AddCrosshairDynamic();
                    }
                    MyRender.GetRenderProfiler().EndProfilingBlock();
                }
                if (backCamera && (drawForCameraAttachedTo & MyHudDrawElementEnum.BACK_CAMERA) != 0)
                {
                    MyRender.GetRenderProfiler().StartProfilingBlock("AddBackCameraBorders");
                    AddBackCameraBorders();
                    MyRender.GetRenderProfiler().EndProfilingBlock();
                }
                if ((drawForCameraAttachedTo & MyHudDrawElementEnum.AMMO) != 0)
                {
                    MyRender.GetRenderProfiler().StartProfilingBlock("AddAmountOfAmmo");
                    AddAmountOfAmmo();
                    MyRender.GetRenderProfiler().EndProfilingBlock();
                }
                if ((drawForCameraAttachedTo & MyHudDrawElementEnum.HARVEST_MATERIAL) != 0)
                {
                    MyRender.GetRenderProfiler().StartProfilingBlock("AddHarvestedMaterial");
                    AddHarvestedMaterial();
                    MyRender.GetRenderProfiler().EndProfilingBlock();
                }

                bool drawBargraphsForPlayerShip = (drawForCameraAttachedTo & MyHudDrawElementEnum.BARGRAPHS_PLAYER_SHIP) != 0;
                bool drawBargraphsForLargeWeapon = (drawForCameraAttachedTo & MyHudDrawElementEnum.BARGRAPHS_LARGE_WEAPON) != 0;
                if (drawBargraphsForPlayerShip || drawBargraphsForLargeWeapon) 
                {
                    MyRender.GetRenderProfiler().StartProfilingBlock("AddBargraphsHUD");
                    AddBargraphsHUD(drawBargraphsForPlayerShip, drawBargraphsForLargeWeapon);
                    MyRender.GetRenderProfiler().EndProfilingBlock();
                }

                if ((drawForCameraAttachedTo & MyHudDrawElementEnum.DIALOGUES) != 0 && MySubtitles.Enabled) 
                {
                    MyRender.GetRenderProfiler().StartProfilingBlock("AddDialogues");
                    AddDialogues();
                    MyRender.GetRenderProfiler().EndProfilingBlock();
                }

                if ((drawForCameraAttachedTo & MyHudDrawElementEnum.MISSION_OBJECTIVES) != 0) 
                {
                    MyRender.GetRenderProfiler().StartProfilingBlock("AddMissionObjectives");
                    AddMissionObjectives();
                    MyRender.GetRenderProfiler().EndProfilingBlock();
                }

                MyRender.GetRenderProfiler().StartProfilingBlock("MyHudWarnings.Update");
                MyHudWarnings.Update();
                MyRender.GetRenderProfiler().EndProfilingBlock();

                MyRender.GetRenderProfiler().StartProfilingBlock("MyHudWarnings.Draw");
                MyHudWarnings.Draw();
                MyRender.GetRenderProfiler().EndProfilingBlock();
            }
            else
            {
                throw new MyMwcExceptionApplicationShouldNotGetHere();
            }

            MyRender.GetRenderProfiler().StartProfilingBlock("DrawVertices");
            DrawVertices();
            MyRender.GetRenderProfiler().EndProfilingBlock();

            MyRender.GetRenderProfiler().StartProfilingBlock("DrawTexts");
            DrawTexts();
            MyRender.GetRenderProfiler().EndProfilingBlock();
        }
        void OnMeDied(byte? killerId)
        {
            if (IsStory())
            {
                // Player has same ship and inventory, with minimum of 20% armor, health, oxygen...
                StoredShip = MySession.PlayerShip.GetObjectBuilder(false) as MyMwcObjectBuilder_SmallShip;
                StoredShip.ClearEntityId();
            }

            m_lastConfig = MySession.PlayerShip.Config.GetObjectBuilder();
            m_lastAmmoAssignment = MySession.PlayerShip.Weapons.AmmoAssignments.GetObjectBuilder();
            m_lastCamera = MyGuiScreenGamePlay.Static.CameraAttachedTo;
            if (m_lastCamera != MyCameraAttachedToEnum.PlayerMinerShip
                && m_lastCamera != MyCameraAttachedToEnum.PlayerMinerShip_ThirdPersonDynamic
                && m_lastCamera != MyCameraAttachedToEnum.PlayerMinerShip_ThirdPersonFollowing
                && m_lastCamera != MyCameraAttachedToEnum.PlayerMinerShip_ThirdPersonStatic)
            {
                m_lastCamera = MyCameraAttachedToEnum.PlayerMinerShip;
            }

            PlayerStatistics.Deaths++;
            UpdateStats();

            DisplayDeathNotification(killerId);

            // This is really SICK!
            MyGuiManager.CloseIngameScreens();

            m_respawnTime = MyMinerGame.TotalGamePlayTimeInMilliseconds + (int)m_multiplayerConfig.RespawnTime.TotalMilliseconds;
            Log("DIE, respawn in: " + m_multiplayerConfig.RespawnTime.TotalMilliseconds + " ms");
        }
Esempio n. 4
0
 public static bool CanDrawElement(MyCameraAttachedToEnum cameraAttachedTo, MyHudDrawElementEnum element)
 {
     return (m_drawForCameraAttachedTo[(int)cameraAttachedTo] & element) != 0;
 }