61 lines
3.5 KiB
C#
61 lines
3.5 KiB
C#
using System.Threading.Tasks;
|
|
using Code.Configs;
|
|
using Code.Constants;
|
|
using Cysharp.Threading.Tasks;
|
|
using UnityEngine;
|
|
using UnityEngine.AddressableAssets;
|
|
|
|
namespace Code.StaticData
|
|
{
|
|
public class StaticDataService : IStaticDataService
|
|
{
|
|
public AppConfig AppConfig { get; private set; }
|
|
public InputConfig InputConfig { get; private set; }
|
|
public CameraConfig CameraConfig { get; private set; }
|
|
public CharacterConfig CharacterConfig { get; private set; }
|
|
public UIConfig UIConfig { get; private set; }
|
|
public PlayerConfig PlayerConfig { get; private set; }
|
|
public AudioMixerConfig AudioMixerConfig { get; private set; }
|
|
public SoundtrackListConfig SoundtrackListConfig { get; private set; }
|
|
public SFXListConfig SFXListConfig { get; private set; }
|
|
public DispatcherSoundListConfig DispatcherSoundListConfig { get; private set; }
|
|
public EnemiesSoundListConfig EnemiesSoundListConfig { get; private set; }
|
|
public DrunkenGrandpaConfig DrunkenGrandpaConfig {get; private set;}
|
|
public CockroachConfig CockroachConfig { get; private set; }
|
|
public FogConfig FogConfig { get; private set; }
|
|
|
|
public void Load()
|
|
{
|
|
InputConfig = Resources.Load<InputConfig>(string.Format(StringPaths.ConfigSingle, "App", "InputConfig"));
|
|
AppConfig = Resources.Load<AppConfig>(string.Format(StringPaths.ConfigSingle, "App", "AppConfig"));
|
|
CameraConfig = Resources.Load<CameraConfig>(string.Format(StringPaths.ConfigSingle, "App", "CameraConfig"));
|
|
CharacterConfig = Resources.Load<CharacterConfig>(string.Format(StringPaths.ConfigSingle, "App", "CharacterConfig"));
|
|
UIConfig = Resources.Load<UIConfig>(string.Format(StringPaths.ConfigSingle, "App", "UIConfig"));
|
|
PlayerConfig = Resources.Load<PlayerConfig>(string.Format(StringPaths.ConfigSingle, "App", "PlayerConfig"));
|
|
|
|
LoadAudioConfigs();
|
|
LoadEnemiesConfigs();
|
|
}
|
|
|
|
private void LoadAudioConfigs()
|
|
{
|
|
AudioMixerConfig = Resources.Load<AudioMixerConfig>(string.Format(StringPaths.ConfigSingle, "Audio", "AudioMixerConfig"));
|
|
SoundtrackListConfig = Resources.Load<SoundtrackListConfig>(string.Format(StringPaths.ConfigSingle, "Audio", "SoundtrackListConfig"));
|
|
SFXListConfig = Resources.Load<SFXListConfig>(string.Format(StringPaths.ConfigSingle, "Audio", "SFXListConfig"));
|
|
DispatcherSoundListConfig = Resources.Load<DispatcherSoundListConfig>(string.Format(StringPaths.ConfigSingle, "Audio", "DispatcherSoundListConfig"));
|
|
EnemiesSoundListConfig = Resources.Load<EnemiesSoundListConfig>(string.Format(StringPaths.ConfigSingle, "Audio", "EnemiesSoundListConfig"));
|
|
}
|
|
|
|
private void LoadEnemiesConfigs()
|
|
{
|
|
DrunkenGrandpaConfig = Resources.Load<DrunkenGrandpaConfig>(string.Format(StringPaths.ConfigSingle, "Enemies", "DrunkenGrandpaConfig"));
|
|
CockroachConfig = Resources.Load<CockroachConfig>(string.Format(StringPaths.ConfigSingle, "Enemies", "CockroachConfig"));
|
|
FogConfig = Resources.Load<FogConfig>(string.Format(StringPaths.ConfigSingle, "Enemies", "FogConfig"));
|
|
}
|
|
|
|
public async Task<T> InstantiateAsset<T>(AssetReference assetReference) where T : Behaviour
|
|
{
|
|
return (await Addressables.InstantiateAsync(assetReference).ToUniTask()).GetComponent<T>();
|
|
}
|
|
}
|
|
} |