private void UpdateDamagePP()
    {
        float num    = 0f;
        float weight = PostProcessManager.Get().GetWeight(PostProcessManager.Effect.Blood);

        if (PlayerConditionModule.Get().IsHPCriticalLevel())
        {
            num = CJTools.Math.GetProportionalClamp(0f, 1f, PlayerConditionModule.Get().GetHP(), PlayerConditionModule.Get().m_CriticalLevel, 0f);
        }
        if (this.m_LastDamageTime > 0f && Time.time - this.m_LastDamageTime < this.m_DamageEffectDuration)
        {
            num = 1f;
        }
        if (PlayerInjuryModule.Get().GetAllInjuriesOfState(InjuryState.Bleeding).Count > 0)
        {
            num = 1f;
        }
        if (weight > 0f && Time.time - this.m_LastDamageTime >= this.m_DamageEffectDuration)
        {
            num = Mathf.Max(num, weight - Time.deltaTime * 0.5f);
        }
        num = (Player.Get().m_DreamPPActive ? 0f : num);
        if (num != weight)
        {
            PostProcessManager.Get().SetWeight(PostProcessManager.Effect.Blood, num);
        }
    }
Example #2
0
        private void ToggleUI()
        {
            SetUIVisible(!uiVisible);

            if (uiVisible)
            {
                // Fetch components attached to MainCamera
                List <Component> cameraComponents = new List <Component>(32);
                CameraManager.Get().m_MainCamera.GetComponents <Component>(cameraComponents);
                for (int i = cameraComponents.Count - 1; i >= 0; i--)
                {
                    Component component = cameraComponents[i];
                    if (!component || excludedComponents.Contains(component.GetType()) || !(component is Behaviour))
                    {
                        cameraComponents.RemoveAt(i);
                    }

                    //ModAPI.Log.Write( "COMPONENT: " + component );
                }

                skyComponent   = TOD_Sky.Instance;
                components     = cameraComponents.ToArray();
                postProcessing = PostProcessManager.Get() ? PostProcessManager.Get().GetComponentsInChildren <PostProcessVolume>() : new PostProcessVolume[0];
            }
        }
 public void HideMenu()
 {
     if (this.m_CurrentScreen)
     {
         this.m_CurrentScreen.Hide();
         if (this.m_CurrentScreen.ShouldPauseGame())
         {
             MainLevel.Instance.Pause(false);
         }
     }
     foreach (Type key in this.m_Screens.Keys)
     {
         this.m_Screens[key].m_ActiveMenuOption = null;
     }
     this.m_CurrentScreen = null;
     this.m_PreviousScreens.Clear();
     Player.Get().UnblockMoves();
     Player.Get().UnblockRotation();
     CursorManager.Get().SetCursor(CursorManager.TYPE.Normal);
     if (this.m_CursorVisible)
     {
         CursorManager.Get().ShowCursor(false, false);
         this.m_CursorVisible = false;
     }
     this.m_OutlineCamera.enabled = true;
     PostProcessManager.Get().SetWeight(PostProcessManager.Effect.InGameMenu, 0f);
     InputsManager.Get().m_OmitMouseUp = true;
 }
Example #4
0
 public void Show(IYesNoDialogOwner owner, DialogWindowType type, string label = "label", string description = "description", bool change_effect = true)
 {
     this.m_DialogType                = type;
     this.m_DW.m_LabelText.text       = label;
     this.m_DW.m_DescriptionText.text = description;
     if (type == DialogWindowType.YesNo)
     {
         this.m_DW.m_Button1.gameObject.SetActive(true);
         this.m_DW.m_Button2.gameObject.SetActive(true);
         this.m_DW.m_Button3.gameObject.SetActive(false);
     }
     if (type == DialogWindowType.Ok)
     {
         this.m_DW.m_Button1.gameObject.SetActive(false);
         this.m_DW.m_Button2.gameObject.SetActive(false);
         this.m_DW.m_Button3.gameObject.SetActive(true);
     }
     base.gameObject.SetActive(true);
     this.m_Screen           = owner;
     this.m_MainCanvasObject = GameObject.Find("MainMenuCanvas");
     if (this.m_MainCanvasObject != null)
     {
         this.m_MainCanvas         = this.m_MainCanvasObject.GetComponent <Canvas>();
         this.m_MainCanvas.enabled = false;
     }
     this.m_ChangeEffect = change_effect;
     if (this.m_ChangeEffect)
     {
         PostProcessManager.Get().SetWeight(PostProcessManager.Effect.InGameMenu, 1f);
     }
     if (this.m_Screen is MainMenuScreen)
     {
         Time.timeScale = 0.5f;
     }
 }
Example #5
0
    private void Close()
    {
        base.gameObject.SetActive(false);
        this.SetCanvasActive(true);
        UIAudioPlayer.Play(UIAudioPlayer.UISoundType.Click);
        if (this.m_ChangeEffect)
        {
            PostProcessManager.Get().SetWeight(PostProcessManager.Effect.InGameMenu, 0f);
        }
        MenuScreen menuScreen = this.m_Screen as MenuScreen;

        if (menuScreen != null && !menuScreen.m_IsIngame)
        {
            Time.timeScale = 1f;
        }
        EventSystem current = EventSystem.current;

        if (current != null)
        {
            current.SetSelectedGameObject(null);
        }
        InputsManager.Get().UnregisterReceiver(this);
        IYesNoDialogOwner screen = this.m_Screen;

        if (screen == null)
        {
            return;
        }
        screen.OnCloseDialog();
    }
 public override void OnAnimEvent(AnimEventID id)
 {
     base.OnAnimEvent(id);
     if (id == AnimEventID.DemoHitReaction)
     {
         PostProcessManager.Get().SetWeight(PostProcessManager.Effect.Blood, 1f);
     }
 }
Example #7
0
    public void Show(IYesNoDialogOwner owner, DialogWindowType type, string label = "label", string description = "description", bool change_effect = true)
    {
        this.m_DialogType                = type;
        this.m_DW.m_LabelText.text       = label;
        this.m_DW.m_DescriptionText.text = description;
        if (GreenHellGame.IsPadControllerActive())
        {
            this.m_DW.m_Button1.gameObject.SetActive(false);
            this.m_DW.m_Button2.gameObject.SetActive(false);
            this.m_DW.m_Button3.gameObject.SetActive(false);
            if (type == DialogWindowType.YesNo)
            {
                this.m_DW.m_PadButton1.gameObject.SetActive(true);
                this.m_DW.m_PadButton2.gameObject.SetActive(true);
                this.m_DW.m_PadButton3.gameObject.SetActive(false);
            }
            else if (type == DialogWindowType.Ok)
            {
                this.m_DW.m_PadButton1.gameObject.SetActive(false);
                this.m_DW.m_PadButton2.gameObject.SetActive(false);
                this.m_DW.m_PadButton3.gameObject.SetActive(true);
            }
        }
        else
        {
            this.m_DW.m_PadButton1.gameObject.SetActive(false);
            this.m_DW.m_PadButton2.gameObject.SetActive(false);
            this.m_DW.m_PadButton3.gameObject.SetActive(false);
            if (type == DialogWindowType.YesNo)
            {
                this.m_DW.m_Button1.gameObject.SetActive(true);
                this.m_DW.m_Button2.gameObject.SetActive(true);
                this.m_DW.m_Button3.gameObject.SetActive(false);
            }
            else if (type == DialogWindowType.Ok)
            {
                this.m_DW.m_Button1.gameObject.SetActive(false);
                this.m_DW.m_Button2.gameObject.SetActive(false);
                this.m_DW.m_Button3.gameObject.SetActive(true);
            }
        }
        base.gameObject.SetActive(true);
        this.m_Screen = owner;
        this.SetCanvasActive(false);
        this.m_ChangeEffect = change_effect;
        if (this.m_ChangeEffect)
        {
            PostProcessManager.Get().SetWeight(PostProcessManager.Effect.InGameMenu, 1f);
        }
        MenuScreen menuScreen = this.m_Screen as MenuScreen;

        if (menuScreen != null && !menuScreen.m_IsIngame)
        {
            Time.timeScale = 0.5f;
        }
        InputsManager.Get().RegisterReceiver(this);
    }
    private void UpdateDreamPP()
    {
        float num = Player.Get().m_DreamPPActive ? 1f : 0f;

        if (PostProcessManager.Get().GetWeight(PostProcessManager.Effect.Dream) != num)
        {
            PostProcessManager.Get().SetWeight(PostProcessManager.Effect.Dream, num);
        }
    }
    private void UpdateDebugDofPP()
    {
        float num = this.m_DebugDofPP ? 1f : 0f;

        if (PostProcessManager.Get().GetWeight(PostProcessManager.Effect.DebugDof) != num)
        {
            PostProcessManager.Get().SetWeight(PostProcessManager.Effect.DebugDof, num);
        }
    }
    private void UpdateNotepadPP()
    {
        float num    = Player.Get().GetComponent <NotepadController>().IsActive() ? 1f : 0f;
        float weight = PostProcessManager.Get().GetWeight(PostProcessManager.Effect.Notepad);

        if (weight != num)
        {
            PostProcessManager.Get().SetWeight(PostProcessManager.Effect.Notepad, weight + (num - weight) * Time.deltaTime * 2f);
        }
    }
Example #11
0
    private void UpdateSanityPP()
    {
        float proportionalClamp = CJTools.Math.GetProportionalClamp(0f, 1f, (float)PlayerSanityModule.Get().m_Sanity / 100f, 1f, 0f);
        float weight            = PostProcessManager.Get().GetWeight(PostProcessManager.Effect.Sanity);

        if (weight != proportionalClamp)
        {
            PostProcessManager.Get().SetWeight(PostProcessManager.Effect.Sanity, weight + (proportionalClamp - weight) * Time.deltaTime * 2f);
        }
    }
Example #12
0
    private void UpdateLowEnergyPP()
    {
        float num    = (PlayerConditionModule.Get().m_Energy >= 10f) ? 0f : 1f;
        float weight = PostProcessManager.Get().GetWeight(PostProcessManager.Effect.LowEnergy);

        if (weight != num)
        {
            PostProcessManager.Get().SetWeight(PostProcessManager.Effect.LowEnergy, weight + (num - weight) * Time.deltaTime * 2f);
        }
    }
    private void UpdateUnderwaterPP()
    {
        float num = Player.Get().IsCameraUnderwater() ? 1f : 0f;

        num = (Player.Get().m_DreamPPActive ? 0f : num);
        if (PostProcessManager.Get().GetWeight(PostProcessManager.Effect.Underwater) != num)
        {
            PostProcessManager.Get().SetWeight(PostProcessManager.Effect.Underwater, num);
        }
    }
 public void Update()
 {
     if (!this.m_EndDemo && Input.GetKey(KeyCode.RightControl) && Input.GetKeyDown(KeyCode.G))
     {
         PlayableDirector cutscene = CutscenesManager.Get().GetCutscene("DemoEnd_Cutscene");
         cutscene.transform.rotation = Player.Get().transform.rotation;
         cutscene.transform.position = Player.Get().transform.position;
         Item currentItem = Player.Get().GetCurrentItem(Hand.Right);
         if (currentItem != null)
         {
             Player.Get().SetWantedItem(Hand.Right, null, true);
             InventoryBackpack.Get().InsertItem(currentItem, null, null, true, true, true, true, true);
         }
         currentItem = Player.Get().GetCurrentItem(Hand.Left);
         if (currentItem != null)
         {
             Player.Get().SetWantedItem(Hand.Left, null, true);
             InventoryBackpack.Get().InsertItem(currentItem, null, null, true, true, true, true, true);
         }
         Player.Get().BlockMoves();
         Player.Get().BlockRotation();
         PlayableDirector cutscene2 = CutscenesManager.Get().GetCutscene("DemoEnd_Cutscene");
         this.m_CutsceneDuration = (float)cutscene2.duration - 4.5f;
         CutscenesManager.Get().PlayCutscene("DemoEnd_Cutscene");
         this.m_StartCutsceneTime = Time.time;
         this.m_EndDemo           = true;
         Player.Get().StartController(PlayerControllerType.PlayerCutscene);
     }
     if (this.m_EndDemo)
     {
         if (!this.m_FirstHit && Time.time - this.m_StartCutsceneTime >= this.m_FirstHitTime)
         {
             PostProcessManager.Get().SetWeight(PostProcessManager.Effect.Blood, 1f);
             PlayerConditionModule.Get().DecreaseEnergy(PlayerConditionModule.Get().GetEnergy() * 0.5f);
             this.m_FirstHit = true;
         }
         if (!this.m_SecondHit && Time.time - this.m_StartCutsceneTime >= this.m_SecondHitTime)
         {
             PostProcessManager.Get().SetWeight(PostProcessManager.Effect.Blood, 1f);
             HUDManager.Get().SetActiveGroup(HUDManager.HUDGroup.TwitchDemo);
             HUDEndDemo.Get().gameObject.SetActive(false);
             this.m_SecondHit = true;
         }
         if (this.m_SecondHit)
         {
             PostProcessManager.Get().SetWeight(PostProcessManager.Effect.Blood, 1f);
         }
         if (Time.time - this.m_StartCutsceneTime >= this.m_CutsceneDuration)
         {
             HUDManager.Get().ShowDemoEnd();
             this.m_EndDemo = true;
         }
     }
 }
    private void UpdateSanityPP()
    {
        float num = CJTools.Math.GetProportionalClamp(0f, 1f, (float)PlayerSanityModule.Get().m_Sanity / 100f, 1f, 0f);

        num = (Player.Get().m_DreamPPActive ? 0f : num);
        float weight = PostProcessManager.Get().GetWeight(PostProcessManager.Effect.Sanity);

        if (weight != num)
        {
            PostProcessManager.Get().SetWeight(PostProcessManager.Effect.Sanity, weight + (num - weight) * Time.deltaTime * 2f);
        }
    }
Example #16
0
    private void UpdateGamePP()
    {
        float num = (!Player.Get().GetComponent <NotepadController>().IsActive()) ? 1f : 0f;

        num = (((float)PlayerSanityModule.Get().m_Sanity >= 10f) ? num : 0f);
        float weight = PostProcessManager.Get().GetWeight(PostProcessManager.Effect.Game);

        if (weight != num)
        {
            PostProcessManager.Get().SetWeight(PostProcessManager.Effect.Game, weight + (num - weight) * Time.deltaTime * 2f);
        }
    }
    private void UpdateLowHPPP()
    {
        float num = (PlayerConditionModule.Get().m_HP < 10f) ? 1f : 0f;

        num = (Player.Get().m_DreamPPActive ? 0f : num);
        float weight = PostProcessManager.Get().GetWeight(PostProcessManager.Effect.LowHP);

        if (weight != num)
        {
            PostProcessManager.Get().SetWeight(PostProcessManager.Effect.LowHP, weight + (num - weight) * Time.deltaTime * 2f);
        }
    }
 public override void OnTakeDamage(DamageInfo info)
 {
     base.OnTakeDamage(info);
     if (info.m_Blocked)
     {
         return;
     }
     if (info.m_DamageType != DamageType.Insects && info.m_DamageType != DamageType.Cut && info.m_DamageType != DamageType.Thrust && info.m_DamageType != DamageType.None)
     {
         this.m_LastDamageTime = Time.time;
         PostProcessManager.Get().SetWeight(PostProcessManager.Effect.Blood, 1f);
     }
 }
    private void UpdateGamePP()
    {
        float num = Player.Get().GetComponent <NotepadController>().IsActive() ? 0f : 1f;

        num = (((float)PlayerSanityModule.Get().m_Sanity < 10f) ? 0f : num);
        num = (Player.Get().IsCameraUnderwater() ? 0f : num);
        num = (Player.Get().m_DreamPPActive ? 0f : num);
        float weight = PostProcessManager.Get().GetWeight(PostProcessManager.Effect.Game);

        if (weight != num)
        {
            PostProcessManager.Get().SetWeight(PostProcessManager.Effect.Game, weight + (num - weight) * Time.deltaTime * 2f);
        }
    }
Example #20
0
    private void UpdatePoisonPP()
    {
        float num = 0f;
        PlayerDiseasesModule playerDiseasesModule = PlayerDiseasesModule.Get();
        int num2 = (!playerDiseasesModule.GetDisease(ConsumeEffect.FoodPoisoning).IsActive()) ? 0 : playerDiseasesModule.GetDisease(ConsumeEffect.FoodPoisoning).m_Level;

        if ((float)num2 > 0f)
        {
            num = CJTools.Math.GetProportionalClamp(0f, 1f, (float)num2, 0f, this.m_PoisonLevelToMaxEffect);
        }
        float weight = PostProcessManager.Get().GetWeight(PostProcessManager.Effect.Poison);

        if (weight != num)
        {
            PostProcessManager.Get().SetWeight(PostProcessManager.Effect.Poison, weight + (num - weight) * Time.deltaTime * 2f);
        }
    }
Example #21
0
 private void Close()
 {
     base.gameObject.SetActive(false);
     this.m_MainCanvasObject = GameObject.Find("MainMenuCanvas");
     if (this.m_MainCanvasObject != null)
     {
         this.m_MainCanvas         = this.m_MainCanvasObject.GetComponent <Canvas>();
         this.m_MainCanvas.enabled = true;
     }
     if (this.m_ChangeEffect)
     {
         PostProcessManager.Get().SetWeight(PostProcessManager.Effect.InGameMenu, 0f);
     }
     if (this.m_Screen is MainMenuScreen)
     {
         Time.timeScale = 1f;
     }
 }
Example #22
0
 public void HideMenu()
 {
     if (this.m_CurrentScreen)
     {
         this.m_CurrentScreen.Hide();
         if (this.m_CurrentScreen.ShouldPauseGame())
         {
             MainLevel.Instance.Pause(false);
         }
     }
     this.m_CurrentScreen  = null;
     this.m_PrevoiusScreen = null;
     Player.Get().UnblockMoves();
     Player.Get().UnblockRotation();
     CursorManager.Get().SetCursor(CursorManager.TYPE.Normal);
     CursorManager.Get().ShowCursor(false);
     this.m_OutlineCamera.enabled = true;
     PostProcessManager.Get().SetWeight(PostProcessManager.Effect.InGameMenu, 0f);
 }
Example #23
0
    public void ShowScreen(Type screen_type)
    {
        if (LoadingScreen.Get().m_Active)
        {
            return;
        }
        if (!this.m_Initialized)
        {
            this.Init();
        }
        MenuScreen menuScreen = null;

        this.m_Screens.TryGetValue(screen_type, out menuScreen);
        if (!menuScreen)
        {
            DebugUtils.Assert("[MenuInGameManager::ShowScreen] Can't find screen " + screen_type.ToString() + "!", true, DebugUtils.AssertType.Info);
            return;
        }
        if (menuScreen == this.m_CurrentScreen)
        {
            return;
        }
        PostProcessManager.Get().SetWeight(PostProcessManager.Effect.InGameMenu, 1f);
        this.m_OutlineCamera.enabled = false;
        this.m_PrevoiusScreen        = this.m_CurrentScreen;
        if (this.m_CurrentScreen)
        {
            this.m_CurrentScreen.Hide();
        }
        else
        {
            Player.Get().BlockMoves();
            Player.Get().BlockRotation();
            CursorManager.Get().ShowCursor(true);
            if (menuScreen.ShouldPauseGame())
            {
                MainLevel.Instance.Pause(true);
            }
        }
        menuScreen.Show();
        this.m_CurrentScreen = menuScreen;
    }
Example #24
0
    public override void Update()
    {
        base.Update();
        if (this.m_Active && MainLevel.Instance.m_TODSky.Cycle.GameTime - this.m_StartTime >= this.m_Duration)
        {
            this.m_Active = false;
        }
        float weight = PostProcessManager.Get().GetWeight(PostProcessManager.Effect.Coca);

        if (this.m_Active && weight < 1f)
        {
            PostProcessManager.Get().SetWeight(PostProcessManager.Effect.Coca, weight + Time.deltaTime * 3f);
        }
        else if (!this.m_Active && weight > 0f)
        {
            PostProcessManager.Get().SetWeight(PostProcessManager.Effect.Coca, weight - Time.deltaTime * 3f);
        }
        if (this.m_Active && this.m_IncreaseEnergyPerSec > 0f)
        {
            PlayerConditionModule.Get().IncreaseEnergy(this.m_IncreaseEnergyPerSec * Time.deltaTime);
        }
    }
Example #25
0
    public static void SaveScreenshot(string save_name)
    {
        string text   = save_name + ".png";
        float  weight = PostProcessManager.Get().GetWeight(PostProcessManager.Effect.InGameMenu);

        PostProcessManager.Get().SetWeight(PostProcessManager.Effect.InGameMenu, 0f);
        Camera        main      = Camera.main;
        Transform     transform = Camera.main.gameObject.transform.FindDeepChild("HorizonCamera");
        Camera        camera    = (transform != null) ? transform.GetComponent <Camera>() : null;
        Texture2D     texture2D = new Texture2D(SaveGame.s_ScreenshotWidth, SaveGame.s_ScreenshotHeight, TextureFormat.RGB24, false);
        RenderTexture temporary = RenderTexture.GetTemporary(SaveGame.s_ScreenshotWidth, SaveGame.s_ScreenshotHeight, 24, RenderTextureFormat.ARGB32);
        RenderTexture active    = RenderTexture.active;

        RenderTexture.active = temporary;
        Camera camera2 = GreenHellGame.Instance.gameObject.AddComponent <Camera>();

        if (camera2 == null || camera == null)
        {
            if (camera2)
            {
                UnityEngine.Object.Destroy(camera2);
            }
            RenderTexture.active = active;
            RenderTexture.ReleaseTemporary(temporary);
            return;
        }
        camera2.CopyFrom(camera);
        SaveGame.RenderCamera(camera2, temporary);
        camera2.CopyFrom(main);
        SaveGame.RenderCamera(camera2, temporary);
        UnityEngine.Object.Destroy(camera2);
        texture2D.ReadPixels(new Rect(0f, 0f, (float)SaveGame.s_ScreenshotWidth, (float)SaveGame.s_ScreenshotHeight), 0, 0);
        RenderTexture.active = active;
        RenderTexture.ReleaseTemporary(temporary);
        byte[] data = texture2D.EncodeToPNG();
        Debug.Log(string.Format("Took screenshot to: {0}", text));
        PostProcessManager.Get().SetWeight(PostProcessManager.Effect.InGameMenu, weight);
        GreenHellGame.Instance.m_RemoteStorage.FileWrite(text, data);
    }
    private void InterpolatePP()
    {
        PostProcessManager.Effect effect = this.m_PPInterpolatorObjects[0].m_Effect;
        float b = Player.Get().transform.position.Distance(this.m_PPInterpolatorObjects[0].transform.position);

        PostProcessManager.Effect effect2 = this.m_PPInterpolatorObjects[1].m_Effect;
        float b2 = Player.Get().transform.position.Distance(this.m_PPInterpolatorObjects[1].transform.position);
        float proportionalClamp  = CJTools.Math.GetProportionalClamp(0f, 1f, b, this.m_PPInterpolatorObjects[0].m_MaxRadius, this.m_PPInterpolatorObjects[0].m_Radius);
        float proportionalClamp2 = CJTools.Math.GetProportionalClamp(0f, 1f, b2, this.m_PPInterpolatorObjects[1].m_MaxRadius, this.m_PPInterpolatorObjects[1].m_Radius);

        PostProcessManager.Get().SetWeight(effect, proportionalClamp);
        PostProcessManager.Get().SetWeight(effect2, proportionalClamp2);
        PostProcessManager.Get().SetWeight(this.m_DefaultEffect, 1f - (proportionalClamp + proportionalClamp2));
        for (int i = 0; i < 12; i++)
        {
            PostProcessManager.Effect effect3 = (PostProcessManager.Effect)i;
            if (effect3 != effect && effect3 != effect2 && effect3 != this.m_DefaultEffect)
            {
                PostProcessManager.Get().SetWeight(effect3, 0f);
            }
        }
    }
    public void ShowScreen(Type screen_type)
    {
        if (LoadingScreen.Get().m_Active)
        {
            return;
        }
        if (!this.m_Initialized)
        {
            this.Init();
        }
        MenuScreen menuScreen = null;

        this.m_Screens.TryGetValue(screen_type, out menuScreen);
        if (!menuScreen)
        {
            DebugUtils.Assert("[MenuInGameManager::ShowScreen] Can't find screen " + screen_type.ToString() + "!", true, DebugUtils.AssertType.Info);
            return;
        }
        if (menuScreen == this.m_CurrentScreen)
        {
            return;
        }
        PostProcessManager.Get().SetWeight(PostProcessManager.Effect.InGameMenu, 1f);
        this.m_OutlineCamera.enabled = false;
        if (this.m_PreviousScreens.Contains(screen_type))
        {
            while (this.m_PreviousScreens.Peek() != screen_type)
            {
                this.m_PreviousScreens.Pop();
            }
        }
        else
        {
            this.m_PreviousScreens.Push(screen_type);
        }
        if (this.m_CurrentScreen)
        {
            this.m_CurrentScreen.Hide();
        }
        else
        {
            Player.Get().BlockMoves();
            Player.Get().BlockRotation();
            if (GreenHellGame.IsPCControllerActive() || menuScreen.IsDebugScreen())
            {
                CursorManager.Get().ShowCursor(true, false);
                this.m_CursorVisible = true;
            }
            if (menuScreen.ShouldPauseGame())
            {
                MainLevel.Instance.Pause(true);
            }
        }
        menuScreen.Show();
        this.m_CurrentScreen = menuScreen;
        if (GreenHellGame.IsPadControllerActive() && screen_type == typeof(MenuInGame))
        {
            foreach (Type type in this.m_Screens.Keys)
            {
                if (screen_type != type)
                {
                    this.m_Screens[type].m_ActiveMenuOption = null;
                }
            }
        }
    }
Example #28
0
        private void LoadSettings()
        {
            // Must be invoked from OnGUI
            if (!uiVisible)
            {
                return;
            }

            string saveFilePath = SaveFilePath;

            if (!File.Exists(saveFilePath))
            {
                return;
            }

            SaveData saveData = null;

            using (FileStream stream = new FileStream(saveFilePath, FileMode.Open, FileAccess.Read))
            {
                saveData = (SaveData) new XmlSerializer(typeof(SaveData)).Deserialize(stream);
            }

            if (saveData == null)
            {
                return;
            }

            numberFieldStrValues.Clear();
            numberFieldUpdateStrValues.Clear();

            if (saveData.DisabledCameraComponents != null)
            {
                for (int i = 0; i < components.Length; i++)
                {
                    Behaviour component = components[i] as Behaviour;
                    if (component && Array.IndexOf(saveData.DisabledCameraComponents, component.GetType().FullName) >= 0)
                    {
                        component.enabled = false;
                    }
                }
            }

            if (saveData.AntiAliasingMode.HasValue)
            {
                PostProcessLayer ppLayer = CameraManager.Get().m_MainCamera.GetComponent <PostProcessLayer>();
                if (ppLayer)
                {
                    ppLayer.antialiasingMode = saveData.AntiAliasingMode.Value;
                }
            }

            if (saveData.DisabledPostProcessingFX != null)
            {
                PostProcessVolume mainPP = PostProcessManager.Get().GetVolume(PostProcessManager.Effect.Game);
                if (mainPP && mainPP.profile)
                {
                    List <PostProcessEffectSettings> mainPP_FX = mainPP.profile.settings;
                    for (int i = 0; i < mainPP_FX.Count; i++)
                    {
                        if (Array.IndexOf(saveData.DisabledPostProcessingFX, mainPP_FX[i].name) >= 0)
                        {
                            mainPP_FX[i].enabled.value = false;
                        }
                    }
                }
            }

            if (saveData.DisabledPostProcessingVolumes != null)
            {
                for (int i = 0; i < postProcessing.Length; i++)
                {
                    PostProcessVolume pp = postProcessing[i];
                    if (pp && Array.IndexOf(saveData.DisabledPostProcessingVolumes, pp.name) >= 0)
                    {
                        pp.enabled = false;
                    }
                }
            }

            if (skyComponent)
            {
                if (saveData.DayAmbientIntensity.HasValue)
                {
                    skyComponent.Day.AmbientMultiplier = saveData.DayAmbientIntensity.Value;
                }
                if (saveData.NightAmbientIntensity.HasValue)
                {
                    skyComponent.Night.AmbientMultiplier = saveData.NightAmbientIntensity.Value;
                }
                if (saveData.LightSaturation.HasValue)
                {
                    skyComponent.Ambient.Saturation = saveData.LightSaturation.Value;
                }
            }

            if (saveData.AnisotropicFiltering.HasValue)
            {
                QualitySettings.anisotropicFiltering = saveData.AnisotropicFiltering.Value;
            }
            if (saveData.LODDistanceMultiplier.HasValue)
            {
                QualitySettings.lodBias = saveData.LODDistanceMultiplier.Value;
            }
            if (saveData.LODAggressiveness.HasValue)
            {
                QualitySettings.maximumLODLevel = saveData.LODAggressiveness.Value;
            }
            if (saveData.MaximumPixelLights.HasValue)
            {
                QualitySettings.pixelLightCount = saveData.MaximumPixelLights.Value;
            }
            if (saveData.Shadows.HasValue)
            {
                QualitySettings.shadows = saveData.Shadows.Value;
            }
            if (saveData.SoftParticles.HasValue)
            {
                QualitySettings.softParticles = saveData.SoftParticles.Value;
            }
            if (saveData.SoftVegetation.HasValue)
            {
                QualitySettings.softVegetation = saveData.SoftVegetation.Value;
            }
            if (saveData.AnimatedSkinQuality.HasValue)
            {
                QualitySettings.skinWeights = saveData.AnimatedSkinQuality.Value;
            }

            GUIUtility.ExitGUI();
        }
Example #29
0
        private void SaveSettings()
        {
            // Must be invoked from OnGUI
            if (!uiVisible)
            {
                return;
            }

            SaveData saveData = new SaveData();

            List <string> disabledCameraComponents = new List <string>(components.Length);

            for (int i = 0; i < components.Length; i++)
            {
                Behaviour component = components[i] as Behaviour;
                if (component && !component.enabled)
                {
                    disabledCameraComponents.Add(component.GetType().FullName);
                }
            }

            saveData.DisabledCameraComponents = disabledCameraComponents.ToArray();

            PostProcessLayer ppLayer = CameraManager.Get().m_MainCamera.GetComponent <PostProcessLayer>();

            if (ppLayer)
            {
                saveData.AntiAliasingMode = ppLayer.antialiasingMode;
            }

            PostProcessVolume mainPP = PostProcessManager.Get().GetVolume(PostProcessManager.Effect.Game);

            if (mainPP && mainPP.profile)
            {
                List <PostProcessEffectSettings> mainPP_FX = mainPP.profile.settings;
                List <string> disabledPostProcessingFX     = new List <string>(mainPP_FX.Count);
                for (int i = 0; i < mainPP_FX.Count; i++)
                {
                    if (!mainPP_FX[i].enabled)
                    {
                        disabledPostProcessingFX.Add(mainPP_FX[i].name);
                    }
                }

                saveData.DisabledPostProcessingFX = disabledPostProcessingFX.ToArray();
            }

            List <string> disabledPostProcessingVolumes = new List <string>(postProcessing.Length);

            for (int i = 0; i < postProcessing.Length; i++)
            {
                PostProcessVolume pp = postProcessing[i];
                if (pp && !pp.enabled)
                {
                    disabledPostProcessingVolumes.Add(pp.name);
                }
            }

            saveData.DisabledPostProcessingVolumes = disabledPostProcessingVolumes.ToArray();

            if (skyComponent)
            {
                saveData.DayAmbientIntensity   = skyComponent.Day.AmbientMultiplier;
                saveData.NightAmbientIntensity = skyComponent.Night.AmbientMultiplier;
                saveData.LightSaturation       = skyComponent.Ambient.Saturation;
            }

            saveData.AnisotropicFiltering  = QualitySettings.anisotropicFiltering;
            saveData.LODDistanceMultiplier = QualitySettings.lodBias;
            saveData.LODAggressiveness     = QualitySettings.maximumLODLevel;
            saveData.MaximumPixelLights    = QualitySettings.pixelLightCount;
            saveData.Shadows             = QualitySettings.shadows;
            saveData.SoftParticles       = QualitySettings.softParticles;
            saveData.SoftVegetation      = QualitySettings.softVegetation;
            saveData.AnimatedSkinQuality = QualitySettings.skinWeights;

            string saveFilePath = SaveFilePath;

            Directory.CreateDirectory(Path.GetDirectoryName(saveFilePath));
            using (TextWriter stream = new StreamWriter(saveFilePath))
            {
                new XmlSerializer(typeof(SaveData)).Serialize(stream, saveData);
            }
        }
Example #30
0
        private void WindowOnGUI(int id)
        {
            numberFieldIndex = 0;

            GUILayout.BeginVertical(GUI.skin.box);
            GUILayout.BeginHorizontal(GUILayout.Height(40f));

            // Show save & load buttons at the top left corner
            if (GUILayout.Button("SAVE", GUILayout.Width(100f), GUILayout.Height(40f)))
            {
                SaveSettings();
                GUI.FocusControl(null);                   // Release keyboard focus from TextFields
            }

            if (GUILayout.Button("LOAD", GUILayout.Width(100f), GUILayout.Height(40f)))
            {
                LoadSettings();
                GUI.FocusControl(null);                   // Release keyboard focus from TextFields
            }

            GUILayout.FlexibleSpace();

            // Show a close button at the top right corner
            if (GUILayout.Button("X", GUILayout.Width(40f), GUILayout.Height(40f)))
            {
                SetUIVisible(false);
                GUI.FocusControl(null);                   // Release keyboard focus from TextFields
            }

            GUILayout.EndHorizontal();
            GUILayout.Space(5f);

            scrollPos = GUILayout.BeginScrollView(scrollPos);

            // Allow toggling components attached to MainCamera
            GUILayout.Space(15f);
            GUILayout.Label("= CAMERA COMPONENTS =");

            for (int i = 0; i < components.Length; i++)
            {
                Behaviour component = components[i] as Behaviour;
                if (!component)
                {
                    continue;
                }

                bool wasEnabled = component.enabled;
                bool isEnabled  = GUILayout.Toggle(wasEnabled, component.GetType().FullName);
                if (isEnabled != wasEnabled)
                {
                    component.enabled = isEnabled;
                }
            }

            // Allow toggling main post processing volume's effects
            GUILayout.Space(15f);
            GUILayout.Label("= POST PROCESSING =");

            bool             _guiEnabled = GUI.enabled;
            PostProcessLayer ppLayer     = CameraManager.Get().m_MainCamera.GetComponent <PostProcessLayer>();

            if (ppLayer)
            {
                if (!ppLayer.enabled)
                {
                    GUILayout.Box("Camera's PostProcessLayer component must be enabled to modify these values.", wordWrappingBoxStyle);
                    GUI.enabled = false;
                }

                GUILayout.BeginHorizontal();
                GUILayout.Label("Anti Aliasing: ", GUILayout.ExpandWidth(false));
                ppLayer.antialiasingMode = (PostProcessLayer.Antialiasing)GUILayout.Toolbar((int)ppLayer.antialiasingMode, antiAliasingModes);
                GUILayout.EndHorizontal();
            }

            PostProcessVolume mainPP = PostProcessManager.Get().GetVolume(PostProcessManager.Effect.Game);

            if (mainPP && mainPP.profile)
            {
                bool _guiEnabled2 = GUI.enabled;
                if (!mainPP.enabled)
                {
                    GUI.enabled = true;
                    GUILayout.Box("Game post processing volume must be enabled to modify these values.", wordWrappingBoxStyle);
                    GUI.enabled = false;
                }

                List <PostProcessEffectSettings> mainPP_FX = mainPP.profile.settings;
                for (int i = 0; i < mainPP_FX.Count; i++)
                {
                    mainPP_FX[i].enabled.value = GUILayout.Toggle(mainPP_FX[i].enabled.value, mainPP_FX[i].name.Replace("(Clone)", ""));
                }

                GUI.enabled = _guiEnabled2;
            }

            // Allow toggling post processing volumes (has no effect if PostProcessLayer is disabled in CAMERA COMPONENTS)
            if (postProcessing.Length > 0)
            {
                GUILayout.Space(15f);
                GUILayout.Label("= POST PROCESSING VOLUMES =");

                for (int i = 0; i < postProcessing.Length; i++)
                {
                    PostProcessVolume pp = postProcessing[i];
                    if (!pp)
                    {
                        continue;
                    }

                    bool wasEnabled = pp.enabled;
                    bool isEnabled  = GUILayout.Toggle(wasEnabled, pp.name.Replace("PostProcess_", ""));
                    if (isEnabled != wasEnabled)
                    {
                        pp.enabled = isEnabled;
                    }
                }
            }

            GUI.enabled = _guiEnabled;

            // Allow changing light intensity
            if (skyComponent)
            {
                GUILayout.Space(15f);
                GUILayout.Label("= LIGHTING SETTINGS =");

                skyComponent.Day.AmbientMultiplier   = FloatField("Day Ambient Intensity: ", skyComponent.Day.AmbientMultiplier);
                skyComponent.Night.AmbientMultiplier = FloatField("Night Ambient Intensity: ", skyComponent.Night.AmbientMultiplier);
                skyComponent.Ambient.Saturation      = FloatField("Light Saturation: ", skyComponent.Ambient.Saturation);
            }

            // Allow changing QualitySettings parameters
            GUILayout.Space(15f);
            GUILayout.Label("= QUALITY SETTINGS =");

            bool aniso = GUILayout.Toggle(QualitySettings.anisotropicFiltering != AnisotropicFiltering.Disable, "Anisotrophic Filtering");

            if (!aniso)
            {
                QualitySettings.anisotropicFiltering = AnisotropicFiltering.Disable;
            }
            else if (QualitySettings.anisotropicFiltering == AnisotropicFiltering.Disable)
            {
                QualitySettings.anisotropicFiltering = AnisotropicFiltering.Enable;
            }

            QualitySettings.lodBias         = Mathf.Max(0.01f, FloatField("LOD Distance Multiplier: ", QualitySettings.lodBias));
            QualitySettings.maximumLODLevel = IntField("LOD Aggressiveness: ", QualitySettings.maximumLODLevel);
            QualitySettings.pixelLightCount = Mathf.Max(0, IntField("Maximum Pixel Lights: ", QualitySettings.pixelLightCount));

            bool shadows = GUILayout.Toggle(QualitySettings.shadows != ShadowQuality.Disable, "Shadows");

            if (!shadows)
            {
                QualitySettings.shadows = ShadowQuality.Disable;
            }
            else if (QualitySettings.shadows == ShadowQuality.Disable)
            {
                QualitySettings.shadows = ShadowQuality.All;
            }

            QualitySettings.softParticles  = GUILayout.Toggle(QualitySettings.softParticles, "Soft Particles");
            QualitySettings.softVegetation = GUILayout.Toggle(QualitySettings.softVegetation, "Soft Vegetation");

            int skinWeights = Mathf.Max(1, IntField("Animated Skin Quality: ", (int)QualitySettings.skinWeights));

            if (skinWeights == 1)
            {
                QualitySettings.skinWeights = SkinWeights.OneBone;
            }
            else if (skinWeights == 2)
            {
                QualitySettings.skinWeights = SkinWeights.TwoBones;
            }
            else if (skinWeights <= 4)
            {
                QualitySettings.skinWeights = SkinWeights.FourBones;
            }
            else
            {
                QualitySettings.skinWeights = SkinWeights.Unlimited;
            }

            GUILayout.EndScrollView();
            GUILayout.EndVertical();

            GUI.DragWindow();
        }