51 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.Collections;
 | 
						|
using System.Collections.Generic;
 | 
						|
using TMPro;
 | 
						|
using UnityEngine;
 | 
						|
 | 
						|
[CreateAssetMenu(menuName = "KernelPanic/Dialogue/Settings")]
 | 
						|
public class DialogueSettings : ScriptableObject
 | 
						|
{
 | 
						|
    [Serializable]
 | 
						|
    public struct InputPromptSpriteIndices
 | 
						|
    {
 | 
						|
        public int blink;
 | 
						|
        public int boost;
 | 
						|
        public int timeFreeze;
 | 
						|
    }
 | 
						|
    
 | 
						|
    public InputPromptSpriteIndices GamepadInputPrompts => _gamepadInputPrompts;
 | 
						|
    [SerializeField] private InputPromptSpriteIndices _gamepadInputPrompts;
 | 
						|
    
 | 
						|
    public InputPromptSpriteIndices KeyboardInputPrompts => _keyboardInputPrompts;
 | 
						|
    [SerializeField] private InputPromptSpriteIndices _keyboardInputPrompts;
 | 
						|
    
 | 
						|
    public float HideAfter => _hideAfter;
 | 
						|
    [SerializeField] private float _hideAfter;
 | 
						|
 | 
						|
    public string RadioDialogueKey => _radioDialogueKey;
 | 
						|
    [SerializeField] private string _radioDialogueKey;
 | 
						|
 | 
						|
    [SerializeField] private AudioClip[] _dialogueClips;
 | 
						|
    private readonly Dictionary<string, AudioClip> _keyClips = new Dictionary<string, AudioClip>();
 | 
						|
 | 
						|
    public AudioClip GetDialogueClip(string key)
 | 
						|
    {
 | 
						|
        if (!_keyClips.ContainsKey(key))
 | 
						|
        {
 | 
						|
            Debug.LogError($"no clip for key {key}");
 | 
						|
            return null;
 | 
						|
        }
 | 
						|
 | 
						|
        return _keyClips[key];
 | 
						|
    }
 | 
						|
    
 | 
						|
    private void OnEnable()
 | 
						|
    {
 | 
						|
        foreach (var dialogueClip in _dialogueClips)
 | 
						|
        {
 | 
						|
            _keyClips[dialogueClip.name] = dialogueClip;
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |