/// <summary>
 /// Sets control scheme when user interacts with a toggle
 /// </summary>
 /// <param name="newScheme">bounded index of selected control scheme
 /// within ControlSchemes enum</param>
 public void SelectControlScheme(int newScheme)
 {
     // update control scheme and diagram
     ControlSchemeManager.SetControlScheme((ControlSchemes)Mathf.Max(0,
                                                                     Mathf.Min(System.Enum.GetNames(typeof(ControlSchemes)).Length, newScheme)));
     AudioManager.Play(AudioClipNames.UI_buttonPress, true);
     UpdateDiagram();
 }
    private void OnEnable()
    {
        spriteRenderer = GetComponent <SpriteRenderer>();

        GameObject player = GameObject.FindWithTag("Player");

        playerInput = player.GetComponent <PlayerInput>();

        if (playerInput != null)
        {
            ControlSchemeManager.Instance.ControlSchemeChanged += OnControlSchemeChanged;
            ControlSchemeManager.SetControlScheme(playerInput, ControlSchemeManager.Instance.LastUsedControlScheme);
            OnControlSchemeChanged(playerInput.currentControlScheme);
        }
    }
示例#3
0
        /// <summary>
        /// Submit a control scheme to the ControlSchemeManager.
        /// </summary>
        public void SubmitScheme()
        {
            switch (Mode)
            {
            case ControlSchemeCreatorMode.Create:
            {
                ControlSchemeManager.Schemes.Add(_currentlyEditingScheme);
                ControlSchemeManager.UseScheme(ControlSchemeManager.Schemes.Count - 1);
                break;
            }

            case ControlSchemeCreatorMode.Edit:
            {
                ControlSchemeManager.Schemes[ControlSchemeManager.CurrentSchemeIndex] = _currentlyEditingScheme;
                break;
            }
            }
            ControlSchemeManager.SerializeControlSchemes(ControlSchemeManager.Schemes);
            ControlSchemeManager.ReloadSchemes();
            ControlSchemeDropdownPopulator.PopulateDropdown();
            Hide();
        }
示例#4
0
        /// <summary>
        /// Apply the game settings. This function propagates the given settings to all game systems that need them.
        /// </summary>
        /// <param name="settings">The settings to apply.</param>
        public static void ApplySettings(GameSettings settings)
        {
            // TODO: try and catch exceptions for erroneous loaded values (i.e. array idx) and reset to default if error

            // set the control scheme
            ControlSchemeManager.UseScheme(settings.CurrentControlSchemeIndex);

            // set the resolution
            if (settings.CurrentResolutionIndex > Screen.resolutions.Length)
            {
                // if the resolution is invalid, set it to the lowest resolution
                Screen.SetResolution(Screen.resolutions[0].width, Screen.resolutions[0].height, settings.Fullscreen);
            }
            else
            {
                Screen.SetResolution(Screen.resolutions[settings.CurrentResolutionIndex].width,
                                     Screen.resolutions[settings.CurrentResolutionIndex].height, settings.Fullscreen);
            }

            // set framerate to limit or not
            Application.targetFrameRate = settings.LimitFramerate ? FRAMERATE_LIMIT : -1;

            // set retro shader affine intensity
            Shader.SetGlobalFloat("AffineIntensity", settings.AffineIntensity);

            // set the current dream journal
            DreamJournalManager.SetJournal(settings.CurrentJournalIndex);

            // set volumes
            SetMusicVolume(settings.MusicVolume);
            SetSFXVolume(settings.SFXVolume);

            // set the graphics quality
            QualitySettings.SetQualityLevel(settings.CurrentQualityIndex, true);

            Debug.Log("Applying game settings...");
            Debug.Log("Affine intensity: " + settings.AffineIntensity);
        }
示例#5
0
        public IEnumerator LoadGameCoroutine()
        {
            // do game startup stuff here

            GameSettings.Initialize();

            TResourceManager.RegisterHandler(new LBDHandler());
            TResourceManager.RegisterHandler(new TIXHandler());
            TResourceManager.RegisterHandler(new Texture2DHandler());
            TResourceManager.RegisterHandler(new MaterialHandler());

            ControlSchemeManager.Initialize();

            DreamJournalManager.Initialize();

            MapReader.MapScaleFactor = 1F;

            GameSettings.LoadSettings();

            Shader.SetGlobalFloat("_FogStep", 0.08F);
            Shader.SetGlobalFloat("AffineIntensity", 0.5F);

            PsxVram.Initialize();

            if (Application.isEditor)
            {
                // if we're running inside the editor, we want to have the mouse!
                GameSettings.SetCursorViewState(true);
            }

            yield return(LBDTilePool.InitialiseCoroutine());

            // TODO
            //SaveGameManager.LoadGame();

            OnGameDataLoaded.Raise();
        }
示例#6
0
 /// <summary>
 /// Used for initialization
 /// </summary>
 void Awake()
 {
     // initialize data
     CraftableItemsRegistry.Initialize();
     ControlSchemeManager.Initialize();
 }