54 lines
1.8 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|