1
This commit is contained in:
@@ -19,6 +19,10 @@ namespace BITFALL.Game{
|
||||
}
|
||||
public sealed class GameService : StateBasedMonoBehaviour<IGameState>,IGameService
|
||||
{
|
||||
[Header(Constant.Header.Settings)]
|
||||
[SerializeReference,SubclassSelector] private IReference expectedMap;
|
||||
|
||||
[Header(Constant.Header.Providers)]
|
||||
[SerializeReference,SubclassSelector] private INetClient netClient;
|
||||
[SerializeReference,SubclassSelector] private INetProvider netProvider;
|
||||
[SerializeReference,SubclassSelector] private ISceneService sceneService;
|
||||
@@ -29,6 +33,8 @@ namespace BITFALL.Game{
|
||||
[SerializeField] private Optional<string> allowLoadOfflineMap;
|
||||
public static IGameService Singleton { get; set; }
|
||||
|
||||
private readonly Optional<string> _currentMap = new();
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
Singleton = this;
|
||||
@@ -51,6 +57,13 @@ namespace BITFALL.Game{
|
||||
private void ChangeMap(GameChangeMapCommand obj)
|
||||
{
|
||||
sceneService.LoadSceneAsync(obj.MapName,default,LoadSceneMode.Single).Forget();
|
||||
_currentMap.SetValueThenAllow(obj.MapName);
|
||||
}
|
||||
|
||||
public string ExpectMap
|
||||
{
|
||||
get => expectedMap.Value;
|
||||
set => expectedMap = new Reference(value);
|
||||
}
|
||||
|
||||
public void Play()
|
||||
@@ -61,14 +74,24 @@ namespace BITFALL.Game{
|
||||
}
|
||||
else
|
||||
{
|
||||
netProvider.ServerCommand(new GameRequestMapCommand(){MapName = "Map1"});
|
||||
if (netClient.IsConnected)
|
||||
{
|
||||
netProvider.ServerCommand(new GameRequestMapCommand(){MapName = "Map1"});
|
||||
}
|
||||
else
|
||||
{
|
||||
ChangeMap(new GameChangeMapCommand(){MapName =expectedMap.Value});
|
||||
}
|
||||
}
|
||||
}
|
||||
public void Stop()
|
||||
{
|
||||
//if (allowLoadOfflineMap.Allow)
|
||||
if (allowLoadOfflineMap.Allow)
|
||||
{
|
||||
sceneService.UnloadSceneAsync(allowLoadOfflineMap.Value,default).Forget();
|
||||
}else if (_currentMap.Allow)
|
||||
{
|
||||
sceneService.UnloadSceneAsync(_currentMap.Value,default).Forget();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user