Initial Commit

This commit is contained in:
2026-03-16 14:38:46 +02:00
commit b8f7327a21
2327 changed files with 253610 additions and 0 deletions
@@ -0,0 +1,57 @@
using System;
using UnityEngine;
using UnityEngine.SceneManagement;
namespace Zenject.SpaceFighter
{
public class GameRestartHandler : IInitializable, IDisposable, ITickable
{
readonly SignalBus _signalBus;
readonly Settings _settings;
bool _isDelaying;
float _delayStartTime;
public GameRestartHandler(
Settings settings,
SignalBus signalBus)
{
_signalBus = signalBus;
_settings = settings;
}
public void Initialize()
{
_signalBus.Subscribe<PlayerDiedSignal>(OnPlayerDied);
}
public void Dispose()
{
_signalBus.Unsubscribe<PlayerDiedSignal>(OnPlayerDied);
}
public void Tick()
{
if (_isDelaying)
{
if (Time.realtimeSinceStartup - _delayStartTime > _settings.RestartDelay)
{
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
}
}
}
void OnPlayerDied()
{
// Wait a bit before restarting the scene
_delayStartTime = Time.realtimeSinceStartup;
_isDelaying = true;
}
[Serializable]
public class Settings
{
public float RestartDelay;
}
}
}