state 로직 롤백
This commit is contained in:
parent
e7cb187068
commit
b8eec075ab
BIN
Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset
(Stored with Git LFS)
BIN
Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset
(Stored with Git LFS)
Binary file not shown.
@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 713d65ef3d932164c97b5250f647bf77
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/_DDD/_Addressables/So/GameState/GameLevelState.asset
(Stored with Git LFS)
BIN
Assets/_DDD/_Addressables/So/GameState/GameLevelState.asset
(Stored with Git LFS)
Binary file not shown.
@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fc0639e78dfcb4b47ac6ec82ee0d6213
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/_DDD/_Addressables/So/GameState/GameState.asset
(Stored with Git LFS)
BIN
Assets/_DDD/_Addressables/So/GameState/GameState.asset
(Stored with Git LFS)
Binary file not shown.
@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 57f96cac976cace4b8107ab44edb0f71
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3afa6356ede647e47a79b8b1cd285b5e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/_DDD/_Addressables/So/RestaurantState/RestaurantCustomerState.asset
(Stored with Git LFS)
BIN
Assets/_DDD/_Addressables/So/RestaurantState/RestaurantCustomerState.asset
(Stored with Git LFS)
Binary file not shown.
@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eade044ef7a61604d8dcf56168d40026
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/_DDD/_Addressables/So/RestaurantState/RestaurantEnvironmentState.asset
(Stored with Git LFS)
BIN
Assets/_DDD/_Addressables/So/RestaurantState/RestaurantEnvironmentState.asset
(Stored with Git LFS)
Binary file not shown.
@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 93204a2af0c46094696d74538897e540
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/_DDD/_Addressables/So/RestaurantState/RestaurantManagementState.asset
(Stored with Git LFS)
BIN
Assets/_DDD/_Addressables/So/RestaurantState/RestaurantManagementState.asset
(Stored with Git LFS)
Binary file not shown.
@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b2b9375a9a66227409de828e13255ea2
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/_DDD/_Addressables/So/RestaurantState/RestaurantPlayerState.asset
(Stored with Git LFS)
BIN
Assets/_DDD/_Addressables/So/RestaurantState/RestaurantPlayerState.asset
(Stored with Git LFS)
Binary file not shown.
@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d6b2937b862326145a9a94a56e7c3192
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/_DDD/_Addressables/So/RestaurantState/RestaurantRunState.asset
(Stored with Git LFS)
BIN
Assets/_DDD/_Addressables/So/RestaurantState/RestaurantRunState.asset
(Stored with Git LFS)
Binary file not shown.
@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3d463f7458658794396953c3bd77ad57
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/_DDD/_Addressables/So/RestaurantState/RestaurantState.asset
(Stored with Git LFS)
BIN
Assets/_DDD/_Addressables/So/RestaurantState/RestaurantState.asset
(Stored with Git LFS)
Binary file not shown.
@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9cd28a9cdddf5dd4e9c729431a345509
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -9,7 +9,6 @@ namespace DDD
|
||||
public class GameController : Singleton<GameController>, IManager, IGameFlowHandler
|
||||
{
|
||||
[SerializeField] private AssetReference _gameData;
|
||||
[SerializeField] private AssetReference _gameState;
|
||||
|
||||
public GameData GameData { get; private set; }
|
||||
public GameState GameState { get; private set; }
|
||||
@ -19,6 +18,7 @@ public class GameController : Singleton<GameController>, IManager, IGameFlowHand
|
||||
|
||||
public void PreInit()
|
||||
{
|
||||
LoadOrCreateRestaurantState();
|
||||
RegisterFlowHandler();
|
||||
}
|
||||
|
||||
@ -26,7 +26,6 @@ public async Task Init()
|
||||
{
|
||||
await LoadData();
|
||||
await GameData.LoadData();
|
||||
await GameState.LoadData();
|
||||
await InitializeAllFlowControllers();
|
||||
}
|
||||
|
||||
@ -34,6 +33,12 @@ public void PostInit()
|
||||
{
|
||||
}
|
||||
|
||||
private void LoadOrCreateRestaurantState()
|
||||
{
|
||||
// TODO : Load states from saved files. if none, create them.
|
||||
GameState = ScriptableObject.CreateInstance<GameState>();
|
||||
}
|
||||
|
||||
private void RegisterFlowHandler()
|
||||
{
|
||||
GameFlowManager.Instance.FlowHandlers.Add(this);
|
||||
@ -60,16 +65,12 @@ private async Task InitializeAllFlowControllers()
|
||||
private async Task LoadData()
|
||||
{
|
||||
var gameDataHandle = _gameData.LoadAssetAsync<GameData>();
|
||||
var gameStateHandle = _gameState.LoadAssetAsync<GameState>();
|
||||
|
||||
await gameDataHandle.Task;
|
||||
await gameStateHandle.Task;
|
||||
|
||||
GameData = gameDataHandle.Result;
|
||||
GameState = gameStateHandle.Result;
|
||||
|
||||
Debug.Assert(GameData != null, "GameData is null");
|
||||
Debug.Assert(GameState != null, "GameState is null");
|
||||
|
||||
await Task.CompletedTask;
|
||||
}
|
||||
|
@ -2,7 +2,6 @@
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
[CreateAssetMenu(fileName = "GameLevelState", menuName = "GameState/GameLevelState")]
|
||||
public class GameLevelState : ScriptableObject
|
||||
{
|
||||
public int Level = 1;
|
||||
|
@ -1,40 +1,17 @@
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
using UnityEngine.AddressableAssets;
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
[CreateAssetMenu(fileName = "GameState", menuName = "GameState/GameState")]
|
||||
public class GameState : ScriptableObject
|
||||
{
|
||||
[SerializeField] private AssetReference _gameLevelState;
|
||||
|
||||
public GameLevelState LevelState { get; private set; }
|
||||
|
||||
private bool _isLoaded;
|
||||
|
||||
private void OnDisable()
|
||||
private void OnEnable()
|
||||
{
|
||||
if (_isLoaded == false) return;
|
||||
|
||||
_gameLevelState.ReleaseAsset();
|
||||
_isLoaded = false;
|
||||
}
|
||||
|
||||
public async Task LoadData()
|
||||
{
|
||||
if (_isLoaded)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var gameLevelStateHandle = _gameLevelState.LoadAssetAsync<GameLevelState>();
|
||||
await gameLevelStateHandle.Task;
|
||||
|
||||
LevelState = gameLevelStateHandle.Result;
|
||||
Debug.Assert(LevelState != null, "GameLevelState is null");
|
||||
|
||||
_isLoaded = true;
|
||||
LevelState = CreateInstance<GameLevelState>();
|
||||
}
|
||||
}
|
||||
}
|
@ -9,7 +9,6 @@ namespace DDD
|
||||
public class RestaurantController : Singleton<RestaurantController>, IManager, IGameFlowHandler
|
||||
{
|
||||
[SerializeField] private AssetReference _restaurantData;
|
||||
[SerializeField] private AssetReference _restaurantState;
|
||||
|
||||
public RestaurantData RestaurantData { get; private set; }
|
||||
public RestaurantState RestaurantState { get; private set; }
|
||||
@ -28,6 +27,7 @@ public class RestaurantController : Singleton<RestaurantController>, IManager, I
|
||||
|
||||
public void PreInit()
|
||||
{
|
||||
LoadOrCreateRestaurantState();
|
||||
RegisterFlowHandler();
|
||||
}
|
||||
|
||||
@ -35,7 +35,6 @@ public async Task Init()
|
||||
{
|
||||
await LoadData();
|
||||
await RestaurantData.LoadData();
|
||||
await RestaurantState.LoadData();
|
||||
await InitializeAllFlowControllers();
|
||||
}
|
||||
|
||||
@ -43,6 +42,12 @@ public void PostInit()
|
||||
{
|
||||
}
|
||||
|
||||
private void LoadOrCreateRestaurantState()
|
||||
{
|
||||
// TODO : Load states from saved files. if none, create them.
|
||||
RestaurantState = ScriptableObject.CreateInstance<RestaurantState>();
|
||||
}
|
||||
|
||||
private void RegisterFlowHandler()
|
||||
{
|
||||
GameFlowManager.Instance.FlowHandlers.Add(this);
|
||||
@ -69,16 +74,12 @@ private async Task InitializeAllFlowControllers()
|
||||
private async Task LoadData()
|
||||
{
|
||||
var restaurantDataHandle = _restaurantData.LoadAssetAsync<RestaurantData>();
|
||||
var restaurantStateHandle = _restaurantState.LoadAssetAsync<RestaurantState>();
|
||||
|
||||
await restaurantDataHandle.Task;
|
||||
await restaurantStateHandle.Task;
|
||||
|
||||
RestaurantData = restaurantDataHandle.Result;
|
||||
RestaurantState = restaurantStateHandle.Result;
|
||||
|
||||
Debug.Assert(RestaurantData != null, "RestaurantData is null");
|
||||
Debug.Assert(RestaurantState != null, "RestaurantState is null");
|
||||
}
|
||||
|
||||
public async Task OnReadyNewFlow(GameFlowState newFlowState)
|
||||
|
@ -8,7 +8,6 @@
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
[CreateAssetMenu(fileName = "RestaurantCustomerState", menuName = "RestaurantState/RestaurantCustomerState")]
|
||||
public class RestaurantCustomerState : ScriptableObject, IGameFlowHandler
|
||||
{
|
||||
[Title("스폰 제어")]
|
||||
|
@ -17,7 +17,6 @@ public RestaurantPropLocation(string id, Vector2 position)
|
||||
}
|
||||
}
|
||||
|
||||
[CreateAssetMenu(fileName = "RestaurantEnvironmentState", menuName = "RestaurantState/RestaurantEnvironmentState")]
|
||||
public class RestaurantEnvironmentState : ScriptableObject
|
||||
{
|
||||
public List<RestaurantPropLocation> Props = new List<RestaurantPropLocation>();
|
||||
|
@ -5,7 +5,6 @@
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
[CreateAssetMenu(fileName = "RestaurantManagementState", menuName = "RestaurantState/RestaurantManagementState")]
|
||||
public class RestaurantManagementState : ScriptableObject
|
||||
{
|
||||
// TODO : 데이터에서 초기화하고, 동적으로 변경
|
||||
|
@ -2,7 +2,6 @@
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
[CreateAssetMenu(fileName = "RestaurantPlayerState", menuName = "RestaurantState/RestaurantPlayerState")]
|
||||
public class RestaurantPlayerState : ScriptableObject
|
||||
{
|
||||
|
||||
|
@ -2,7 +2,6 @@
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
[CreateAssetMenu(fileName = "RestaurantRunState", menuName = "RestaurantState/RestaurantRunState")]
|
||||
public class RestaurantRunState : ScriptableObject
|
||||
{
|
||||
|
||||
|
@ -1,70 +1,22 @@
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
using UnityEngine.AddressableAssets;
|
||||
|
||||
namespace DDD
|
||||
{
|
||||
[CreateAssetMenu(fileName = "RestaurantState", menuName = "RestaurantState/RestaurantState", order = 0)]
|
||||
public class RestaurantState : ScriptableObject
|
||||
{
|
||||
[SerializeField] private AssetReference _restaurantManagementState;
|
||||
[SerializeField] private AssetReference _restaurantRunState;
|
||||
[SerializeField] private AssetReference _restaurantEnvironmentState;
|
||||
[SerializeField] private AssetReference _restaurantPlayerState;
|
||||
[SerializeField] private AssetReference _restaurantCustomerState;
|
||||
|
||||
public RestaurantManagementState ManagementState { get; private set; }
|
||||
public RestaurantRunState RunState { get; private set; }
|
||||
public RestaurantEnvironmentState EnvironmentState { get; private set; }
|
||||
public RestaurantPlayerState PlayerState { get; private set; }
|
||||
public RestaurantCustomerState CustomerState { get; private set; }
|
||||
|
||||
private bool _isLoaded;
|
||||
|
||||
private void OnDisable()
|
||||
private void OnEnable()
|
||||
{
|
||||
if (_isLoaded == false) return;
|
||||
|
||||
_restaurantManagementState.ReleaseAsset();
|
||||
_restaurantRunState.ReleaseAsset();
|
||||
_restaurantEnvironmentState.ReleaseAsset();
|
||||
_restaurantPlayerState.ReleaseAsset();
|
||||
_restaurantCustomerState.ReleaseAsset();
|
||||
_isLoaded = false;
|
||||
}
|
||||
|
||||
public async Task LoadData()
|
||||
{
|
||||
if (_isLoaded)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var restaurantManagementStateHandle = _restaurantManagementState.LoadAssetAsync<RestaurantManagementState>();
|
||||
var restaurantRunStateHandle = _restaurantRunState.LoadAssetAsync<RestaurantRunState>();
|
||||
var restaurantEnvironmentStateHandle = _restaurantEnvironmentState.LoadAssetAsync<RestaurantEnvironmentState>();
|
||||
var restaurantPlayerStateHandle = _restaurantPlayerState.LoadAssetAsync<RestaurantPlayerState>();
|
||||
var restaurantCustomerStateHandle = _restaurantCustomerState.LoadAssetAsync<RestaurantCustomerState>();
|
||||
|
||||
await restaurantManagementStateHandle.Task;
|
||||
await restaurantRunStateHandle.Task;
|
||||
await restaurantEnvironmentStateHandle.Task;
|
||||
await restaurantPlayerStateHandle.Task;
|
||||
await restaurantCustomerStateHandle.Task;
|
||||
|
||||
ManagementState = restaurantManagementStateHandle.Result;
|
||||
RunState = restaurantRunStateHandle.Result;
|
||||
EnvironmentState = restaurantEnvironmentStateHandle.Result;
|
||||
PlayerState = restaurantPlayerStateHandle.Result;
|
||||
CustomerState = restaurantCustomerStateHandle.Result;
|
||||
|
||||
Debug.Assert(ManagementState != null, "RestaurantManagementState is null");
|
||||
Debug.Assert(RunState != null, "RestaurantRunState is null");
|
||||
Debug.Assert(EnvironmentState != null, "RestaurantEnvironmentState is null");
|
||||
Debug.Assert(PlayerState != null, "RestaurantPlayerState is null");
|
||||
Debug.Assert(CustomerState != null, "RestaurantCustomerState is null");
|
||||
|
||||
_isLoaded = true;
|
||||
ManagementState = CreateInstance<RestaurantManagementState>();
|
||||
RunState = CreateInstance<RestaurantRunState>();
|
||||
EnvironmentState = CreateInstance<RestaurantEnvironmentState>();
|
||||
PlayerState = CreateInstance<RestaurantPlayerState>();
|
||||
CustomerState = CreateInstance<RestaurantCustomerState>();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user