using Framework; using TGS; using UnityEngine; namespace Gameplay.Level { public abstract class LevelBaseState : IState { protected Level _level; public LevelBaseState(Level level) { _level = level; } public void OnEnter() { InputManager.Instance.OnClick += _OnClick; _OnEnter(); } public void OnUpdate(float deltaTime) { _OnUpdate(deltaTime); } public void OnExit() { _OnExit(); // _level.Map.TerrainGridSystem.OnCellClick -= _OnCellClick; InputManager.Instance.OnClick -= _OnClick; } protected abstract void _OnEnter(); protected abstract void _OnUpdate(float deltaTime); protected abstract void _OnExit(); protected abstract void _OnCellClick(TerrainGridSystem tgs, int cellIndex, int buttonIndex); protected abstract void _OnClick(Vector2 screenPosition); } }