Files
A-Fairytale-Gone-Bad-Briar-…/Assets/Scripts/Framework/Services/Puzzles/Base/BasePuzzle.cs

54 lines
1.8 KiB
C#

using BriarQueen.Framework.Coordinators.Events;
using BriarQueen.Framework.Managers.Assets;
using BriarQueen.Framework.Managers.Audio;
using BriarQueen.Framework.Managers.IO;
using BriarQueen.Framework.Registries;
using BriarQueen.Framework.Services.Destruction;
using Cysharp.Threading.Tasks;
using UnityEngine;
using VContainer;
namespace BriarQueen.Framework.Services.Puzzles.Base
{
public abstract class BasePuzzle : MonoBehaviour
{
protected AddressableManager AddressableManager;
protected AssetRegistry AssetRegistry;
protected AudioManager AudioManager;
protected DestructionService DestructionService;
protected EventCoordinator EventCoordinator;
protected ItemRegistry ItemRegistry;
protected PuzzleService PuzzleService;
protected SaveManager SaveManager;
public abstract string PuzzleID { get; }
public abstract UniTask CompletePuzzle();
public virtual UniTask PostLoad()
{
return UniTask.CompletedTask;
}
public virtual UniTask PreUnload()
{
return UniTask.CompletedTask;
}
[Inject]
public void Construct(EventCoordinator eventCoordinator, AudioManager audioManager,
SaveManager saveManager, ItemRegistry itemRegistry, AddressableManager addressableManager,
AssetRegistry assetRegistry, PuzzleService puzzleService, DestructionService destructionService)
{
EventCoordinator = eventCoordinator;
AudioManager = audioManager;
SaveManager = saveManager;
ItemRegistry = itemRegistry;
AddressableManager = addressableManager;
AssetRegistry = assetRegistry;
PuzzleService = puzzleService;
DestructionService = destructionService;
}
}
}