From 2d48d1b6032a1734d23edf2064a49059c73ca0f1 Mon Sep 17 00:00:00 2001 From: Jeonghyeon Ha Date: Thu, 14 Aug 2025 20:35:16 +0900 Subject: [PATCH] =?UTF-8?q?RestaurantController=20=EA=B5=AC=EC=A1=B0=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD,=20State/Data=20=EB=B6=84=EB=A6=AC,=20?= =?UTF-8?q?=EB=8B=A8=EC=9D=BC=20RestaurantDataSo=20=EB=B0=8F=20RestaurantS?= =?UTF-8?q?tateSo=20=EC=9D=B8=EC=8A=A4=ED=84=B4=EC=8A=A4=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Environments/Props/Prop_Open.prefab | 2 +- .../Prop/MenuBoard/PropMenuBoard.prefab | 4 +- .../_Addressables/So/RestaurantDataSo.asset | 3 + .../So/RestaurantDataSo.asset.meta | 8 ++ .../_ScriptAssets/Prefabs/UiManager.prefab | 2 +- .../InventoryUi/InventoryView.cs | 13 +-- .../RestaurantManagementUi/ItemDetailView.cs | 16 ++-- .../ItemUi/IItemSlotInteractorStrategy.cs | 4 +- .../ItemUi/ItemSlotInteractor.cs | 10 +- .../TodayMenuInteractorStrategy.cs | 8 +- .../TodayMenuUi/TodayMenuSlotUiStrategy.cs | 6 +- .../TodayMenuUi/TodayMenuView.cs | 24 ++--- .../TodayCookwareInteractorStrategy.cs | 8 +- .../TodayCookwareSlotUiStrategy.cs | 2 +- .../TodayRestaurantStateView.cs | 24 ++--- .../TodayWorkerSlotUiStrategy.cs | 2 +- .../Player/RestaurantPlayerInput.cs | 2 +- .../Player/RestaurantPlayerInteraction.cs | 2 +- .../Player/RestaurantPlayerMovement.cs | 3 +- .../RestaurantController/Conrtollers.meta | 3 + .../RestaurantEnvironmentController.cs | 46 ++++++++++ .../RestaurantEnvironmentController.cs.meta | 3 + .../RestaurantManagementController.cs | 26 ++++++ .../RestaurantManagementController.cs.meta | 3 + .../Conrtollers/RestaurantPlayerController.cs | 42 +++++++++ .../RestaurantPlayerController.cs.meta | 3 + .../Conrtollers/RestaurantRunController.cs | 30 ++++++ .../RestaurantRunController.cs.meta | 3 + .../RestaurantController/Conrtollers/Run.meta | 3 + .../Conrtollers/Run}/Customer.meta | 0 .../Run}/Customer/CustomerFactory.cs | 0 .../Run}/Customer/CustomerFactory.cs.meta | 0 .../Customer/RandomSpawnScheduleBuilder.cs | 0 .../RandomSpawnScheduleBuilder.cs.meta | 0 .../Customer/RegularSpawnScheduleBuilder.cs | 0 .../RegularSpawnScheduleBuilder.cs.meta | 0 .../Customer/RestaurantCustomerStateSo.cs | 0 .../RestaurantCustomerStateSo.cs.meta | 0 .../Run}/Customer/SpawnPointProvider.cs | 0 .../Run}/Customer/SpawnPointProvider.cs.meta | 0 .../Run}/Customer/SpawnSchedule.cs | 0 .../Run}/Customer/SpawnSchedule.cs.meta | 0 .../Run}/Customer/SpawnScheduleUtils.cs | 0 .../Run}/Customer/SpawnScheduleUtils.cs.meta | 0 .../Conrtollers/Tasks.meta | 3 + .../Tasks/CreateRestaurantEnvironment.cs | 23 +++++ .../CreateRestaurantEnvironment.cs.meta} | 0 .../Tasks/CreateRestaurantPlayer.cs | 30 ++++++ .../Tasks/CreateRestaurantPlayer.cs.meta} | 0 .../CreateRestaurantPlayerSo.cs | 25 ----- .../RestaurantController.cs | 92 +++++++++---------- .../RestaurantControllerDataSo.cs | 10 ++ .../RestaurantControllerDataSo.cs.meta | 3 + .../RestaurantFlowController.cs | 16 ++++ .../RestaurantFlowController.cs.meta | 3 + .../RestaurantFlowTask.cs | 10 ++ .../RestaurantFlowTask.cs.meta | 3 + Assets/_DDD/_Scripts/RestaurantData.meta | 3 + .../_Scripts/RestaurantData/DataObjects.meta | 3 + .../DataObjects/RestaurantManagementDataSo.cs | 17 ++++ .../RestaurantManagementDataSo.cs.meta | 3 + .../DataObjects}/RestaurantPlayerDataSo.cs | 2 +- .../RestaurantPlayerDataSo.cs.meta | 0 .../RestaurantData/RestaurantDataSo.cs | 49 ++++++++++ .../RestaurantData/RestaurantDataSo.cs.meta | 3 + .../CreateEnvironmentSo.cs | 26 ------ .../RestaurantEnvironment.cs | 8 +- .../RestaurantOpenEventSolver.cs | 20 ++-- .../_Scripts/RestaurantState/FlowStates.meta | 3 + .../RestaurantEnvironmentStateSo.cs | 25 +++++ .../RestaurantEnvironmentStateSo.cs.meta | 0 .../RestaurantManagementStateSo.cs} | 36 ++------ .../RestaurantManagementStateSo.cs.meta} | 0 .../FlowStates/RestaurantPlayerStateSo.cs | 9 ++ .../RestaurantPlayerStateSo.cs.meta | 3 + .../FlowStates/RestaurantRunStateSo.cs | 9 ++ .../FlowStates/RestaurantRunStateSo.cs.meta | 3 + .../RestaurantEnvironmentData.cs | 18 ---- .../RestaurantEnvironmentData.cs.meta | 2 - .../RestaurantEnvironmentStateSo.cs | 12 --- .../RestaurantState/RestaurantState.cs | 22 +++++ .../RestaurantState/RestaurantState.cs.meta | 3 + Assets/_DDD/_Scripts/Utilities/Constants.cs | 6 +- 83 files changed, 565 insertions(+), 243 deletions(-) create mode 100644 Assets/_DDD/_Addressables/So/RestaurantDataSo.asset create mode 100644 Assets/_DDD/_Addressables/So/RestaurantDataSo.asset.meta create mode 100644 Assets/_DDD/_Scripts/RestaurantController/Conrtollers.meta create mode 100644 Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantEnvironmentController.cs create mode 100644 Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantEnvironmentController.cs.meta create mode 100644 Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantManagementController.cs create mode 100644 Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantManagementController.cs.meta create mode 100644 Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantPlayerController.cs create mode 100644 Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantPlayerController.cs.meta create mode 100644 Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantRunController.cs create mode 100644 Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantRunController.cs.meta create mode 100644 Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run.meta rename Assets/_DDD/_Scripts/{RestaurantState => RestaurantController/Conrtollers/Run}/Customer.meta (100%) rename Assets/_DDD/_Scripts/{RestaurantState => RestaurantController/Conrtollers/Run}/Customer/CustomerFactory.cs (100%) rename Assets/_DDD/_Scripts/{RestaurantState => RestaurantController/Conrtollers/Run}/Customer/CustomerFactory.cs.meta (100%) rename Assets/_DDD/_Scripts/{RestaurantState => RestaurantController/Conrtollers/Run}/Customer/RandomSpawnScheduleBuilder.cs (100%) rename Assets/_DDD/_Scripts/{RestaurantState => RestaurantController/Conrtollers/Run}/Customer/RandomSpawnScheduleBuilder.cs.meta (100%) rename Assets/_DDD/_Scripts/{RestaurantState => RestaurantController/Conrtollers/Run}/Customer/RegularSpawnScheduleBuilder.cs (100%) rename Assets/_DDD/_Scripts/{RestaurantState => RestaurantController/Conrtollers/Run}/Customer/RegularSpawnScheduleBuilder.cs.meta (100%) rename Assets/_DDD/_Scripts/{RestaurantState => RestaurantController/Conrtollers/Run}/Customer/RestaurantCustomerStateSo.cs (100%) rename Assets/_DDD/_Scripts/{RestaurantState => RestaurantController/Conrtollers/Run}/Customer/RestaurantCustomerStateSo.cs.meta (100%) rename Assets/_DDD/_Scripts/{RestaurantState => RestaurantController/Conrtollers/Run}/Customer/SpawnPointProvider.cs (100%) rename Assets/_DDD/_Scripts/{RestaurantState => RestaurantController/Conrtollers/Run}/Customer/SpawnPointProvider.cs.meta (100%) rename Assets/_DDD/_Scripts/{RestaurantState => RestaurantController/Conrtollers/Run}/Customer/SpawnSchedule.cs (100%) rename Assets/_DDD/_Scripts/{RestaurantState => RestaurantController/Conrtollers/Run}/Customer/SpawnSchedule.cs.meta (100%) rename Assets/_DDD/_Scripts/{RestaurantState => RestaurantController/Conrtollers/Run}/Customer/SpawnScheduleUtils.cs (100%) rename Assets/_DDD/_Scripts/{RestaurantState => RestaurantController/Conrtollers/Run}/Customer/SpawnScheduleUtils.cs.meta (100%) create mode 100644 Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Tasks.meta create mode 100644 Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Tasks/CreateRestaurantEnvironment.cs rename Assets/_DDD/_Scripts/{RestaurantEnvironment/CreateEnvironmentSo.cs.meta => RestaurantController/Conrtollers/Tasks/CreateRestaurantEnvironment.cs.meta} (100%) create mode 100644 Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Tasks/CreateRestaurantPlayer.cs rename Assets/_DDD/_Scripts/RestaurantController/{CreateRestaurantPlayerSo.cs.meta => Conrtollers/Tasks/CreateRestaurantPlayer.cs.meta} (100%) delete mode 100644 Assets/_DDD/_Scripts/RestaurantController/CreateRestaurantPlayerSo.cs create mode 100644 Assets/_DDD/_Scripts/RestaurantController/RestaurantControllerDataSo.cs create mode 100644 Assets/_DDD/_Scripts/RestaurantController/RestaurantControllerDataSo.cs.meta create mode 100644 Assets/_DDD/_Scripts/RestaurantController/RestaurantFlowController.cs create mode 100644 Assets/_DDD/_Scripts/RestaurantController/RestaurantFlowController.cs.meta create mode 100644 Assets/_DDD/_Scripts/RestaurantController/RestaurantFlowTask.cs create mode 100644 Assets/_DDD/_Scripts/RestaurantController/RestaurantFlowTask.cs.meta create mode 100644 Assets/_DDD/_Scripts/RestaurantData.meta create mode 100644 Assets/_DDD/_Scripts/RestaurantData/DataObjects.meta create mode 100644 Assets/_DDD/_Scripts/RestaurantData/DataObjects/RestaurantManagementDataSo.cs create mode 100644 Assets/_DDD/_Scripts/RestaurantData/DataObjects/RestaurantManagementDataSo.cs.meta rename Assets/_DDD/_Scripts/{RestaurantCharacter/Player => RestaurantData/DataObjects}/RestaurantPlayerDataSo.cs (97%) rename Assets/_DDD/_Scripts/{RestaurantCharacter/Player => RestaurantData/DataObjects}/RestaurantPlayerDataSo.cs.meta (100%) create mode 100644 Assets/_DDD/_Scripts/RestaurantData/RestaurantDataSo.cs create mode 100644 Assets/_DDD/_Scripts/RestaurantData/RestaurantDataSo.cs.meta delete mode 100644 Assets/_DDD/_Scripts/RestaurantEnvironment/CreateEnvironmentSo.cs create mode 100644 Assets/_DDD/_Scripts/RestaurantState/FlowStates.meta create mode 100644 Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantEnvironmentStateSo.cs rename Assets/_DDD/_Scripts/RestaurantState/{ => FlowStates}/RestaurantEnvironmentStateSo.cs.meta (100%) rename Assets/_DDD/_Scripts/RestaurantState/{RestaurantManagementSo.cs => FlowStates/RestaurantManagementStateSo.cs} (90%) rename Assets/_DDD/_Scripts/RestaurantState/{RestaurantManagementSo.cs.meta => FlowStates/RestaurantManagementStateSo.cs.meta} (100%) create mode 100644 Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantPlayerStateSo.cs create mode 100644 Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantPlayerStateSo.cs.meta create mode 100644 Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantRunStateSo.cs create mode 100644 Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantRunStateSo.cs.meta delete mode 100644 Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentData.cs delete mode 100644 Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentData.cs.meta delete mode 100644 Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentStateSo.cs create mode 100644 Assets/_DDD/_Scripts/RestaurantState/RestaurantState.cs create mode 100644 Assets/_DDD/_Scripts/RestaurantState/RestaurantState.cs.meta diff --git a/Assets/_DDD/Restaurant/Environments/Props/Prop_Open.prefab b/Assets/_DDD/Restaurant/Environments/Props/Prop_Open.prefab index 0eb79e709..70731a3a1 100644 --- a/Assets/_DDD/Restaurant/Environments/Props/Prop_Open.prefab +++ b/Assets/_DDD/Restaurant/Environments/Props/Prop_Open.prefab @@ -98,5 +98,5 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _interactionType: 2 - _holdTime: 1.3 + _holdTime: 0 _interactionMessageKey: Test diff --git a/Assets/_DDD/_Addressables/Environments/Prop/MenuBoard/PropMenuBoard.prefab b/Assets/_DDD/_Addressables/Environments/Prop/MenuBoard/PropMenuBoard.prefab index 3dcee641a..57270ba08 100644 --- a/Assets/_DDD/_Addressables/Environments/Prop/MenuBoard/PropMenuBoard.prefab +++ b/Assets/_DDD/_Addressables/Environments/Prop/MenuBoard/PropMenuBoard.prefab @@ -74,7 +74,6 @@ PrefabInstance: m_AddedComponents: - targetCorrespondingSourceObject: {fileID: 4438924429928472453, guid: 1d634c3376e4a4684bc984ced9134847, type: 3} insertIndex: -1 - addedObject: {fileID: 2285326470091144097} addedObject: {fileID: 8104602334973352575} m_SourcePrefab: {fileID: 100100000, guid: 1d634c3376e4a4684bc984ced9134847, type: 3} --- !u!1 &580268897300907643 stripped @@ -82,7 +81,6 @@ GameObject: m_CorrespondingSourceObject: {fileID: 4438924429928472453, guid: 1d634c3376e4a4684bc984ced9134847, type: 3} m_PrefabInstance: {fileID: 3861763275173960190} m_PrefabAsset: {fileID: 0} ---- !u!114 &2285326470091144097 --- !u!114 &8104602334973352575 MonoBehaviour: m_ObjectHideFlags: 0 @@ -96,5 +94,5 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _interactionType: 1 - _holdTime: 1 + _holdTime: 0 _interactionMessageKey: Test diff --git a/Assets/_DDD/_Addressables/So/RestaurantDataSo.asset b/Assets/_DDD/_Addressables/So/RestaurantDataSo.asset new file mode 100644 index 000000000..094dfb49c --- /dev/null +++ b/Assets/_DDD/_Addressables/So/RestaurantDataSo.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5a5ef3a8df040601bdc67f5e7263d5901dbc8b6e874c138876b00df1da7a2d4 +size 749 diff --git a/Assets/_DDD/_Addressables/So/RestaurantDataSo.asset.meta b/Assets/_DDD/_Addressables/So/RestaurantDataSo.asset.meta new file mode 100644 index 000000000..0f70d8cd2 --- /dev/null +++ b/Assets/_DDD/_Addressables/So/RestaurantDataSo.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c702efebbff4144429b6f07cf841bc42 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_DDD/_ScriptAssets/Prefabs/UiManager.prefab b/Assets/_DDD/_ScriptAssets/Prefabs/UiManager.prefab index c14cde3ca..49e85f6a1 100644 --- a/Assets/_DDD/_ScriptAssets/Prefabs/UiManager.prefab +++ b/Assets/_DDD/_ScriptAssets/Prefabs/UiManager.prefab @@ -2390,7 +2390,7 @@ MonoBehaviour: _menuCategoryTabs: {fileID: 8937672504025748459} _cookwareCategoryTabs: {fileID: 195952124745473889} _completeBatchFilledImage: {fileID: 4012160685168048845} - _holdCompleteTime: 1 + _holdCompleteTime: 10 --- !u!225 &1368992355976611131 CanvasGroup: m_ObjectHideFlags: 0 diff --git a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/InventoryUi/InventoryView.cs b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/InventoryUi/InventoryView.cs index fb715f15e..944ba72c2 100644 --- a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/InventoryUi/InventoryView.cs +++ b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/InventoryUi/InventoryView.cs @@ -10,7 +10,8 @@ public class InventoryView : MonoBehaviour, IEventHandler { [SerializeField] private Transform _slotParent; - private RestaurantManagementSo _restaurantManagementSo; + private RestaurantManagementDataSo restaurantManagementDataSo; + private RestaurantManagementStateSo restaurantManagementStateSo; private InventoryCategoryType _currenInventoryCategoryType = InventoryCategoryType.Food; private readonly Dictionary _slotLookup = new(); @@ -37,9 +38,9 @@ private void OnDisable() public async Task Initialize() { - _restaurantManagementSo = - await AssetManager.LoadAsset(DataConstants.RestaurantManagementSo); - Debug.Assert(_restaurantManagementSo != null, "_todayMenuDataSo != null"); + restaurantManagementStateSo = RestaurantState.instance.ManagementState; + restaurantManagementDataSo = RestaurantDataSo.instance.ManagementData; + Debug.Assert(restaurantManagementDataSo != null, "_todayMenuDataSo != null"); Clear(); @@ -48,7 +49,7 @@ public async Task Initialize() _slotLookup.Clear(); foreach (var model in models) { - var itemSlotUi = Instantiate(_restaurantManagementSo.ItemSlotUiPrefab, _slotParent); + var itemSlotUi = Instantiate(restaurantManagementDataSo.ItemSlotUiPrefab, _slotParent); var slot = itemSlotUi.GetComponent(); await slot.Initialize(model, new InventorySlotUiStrategy()); itemSlotUi.name = ItemSlotUiName + model.Id; @@ -104,7 +105,7 @@ public void UpdateCategoryView(InventoryCategoryType category) var model = slot.Model; string id = model.Id; - bool isRegisteredTodayMenu = model.ItemType == ItemType.Recipe && _restaurantManagementSo.IsContainTodayMenu(id); + bool isRegisteredTodayMenu = model.ItemType == ItemType.Recipe && restaurantManagementStateSo.IsContainTodayMenu(id); bool matchCategory = MatchesCategory(model, _currenInventoryCategoryType); bool shouldShow = !isRegisteredTodayMenu && matchCategory; diff --git a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/ItemDetailView.cs b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/ItemDetailView.cs index 434281a84..ebad971a8 100644 --- a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/ItemDetailView.cs +++ b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/ItemDetailView.cs @@ -22,7 +22,9 @@ public class ItemDetailView : MonoBehaviour, IEventHandler _tasteHashTagSlotUis = new(); private ItemViewModel _currentItemViewModel; private TaskCompletionSource _isInitialized = new(); @@ -33,8 +35,10 @@ public class ItemDetailView : MonoBehaviour, IEventHandler(DataConstants.RestaurantManagementSo); - Debug.Assert(_restaurantManagementSo != null, "RestaurantManagementSo is null"); + restaurantManagementDataSo = RestaurantDataSo.instance.ManagementData; + restaurantManagementStateSo = RestaurantState.instance.ManagementState; + Debug.Assert(restaurantManagementDataSo != null, "RestaurantManagementSo is null"); + Debug.Assert(restaurantManagementStateSo != null, "RestaurantManagementSo is null"); _nameLabel.text = string.Empty; _descriptionLabel.text = string.Empty; @@ -94,8 +98,8 @@ private void UpdateTasteHashTags(ItemViewModel model) var outlineColor = model.RecipeType switch { - RecipeType.FoodRecipe => _restaurantManagementSo.FoodTasteOutlineColor, - RecipeType.DrinkRecipe => _restaurantManagementSo.DrinkTasteOutlineColor, + RecipeType.FoodRecipe => restaurantManagementDataSo.FoodTasteOutlineColor, + RecipeType.DrinkRecipe => restaurantManagementDataSo.DrinkTasteOutlineColor, _ => throw new ArgumentOutOfRangeException() }; @@ -104,7 +108,7 @@ private void UpdateTasteHashTags(ItemViewModel model) foreach (var tasteData in tasteDatas) { - var newTasteHashTag = Instantiate(_restaurantManagementSo.TasteHashTagSlotUiPrefab, _tasteHashTagContent1, false); + var newTasteHashTag = Instantiate(restaurantManagementDataSo.TasteHashTagSlotUiPrefab, _tasteHashTagContent1, false); newTasteHashTag.Initialize(outlineColor, tasteData); LayoutRebuilder.ForceRebuildLayoutImmediate(newTasteHashTag.RectTransform); diff --git a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/ItemUi/IItemSlotInteractorStrategy.cs b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/ItemUi/IItemSlotInteractorStrategy.cs index c01242d4c..3f9061944 100644 --- a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/ItemUi/IItemSlotInteractorStrategy.cs +++ b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/ItemUi/IItemSlotInteractorStrategy.cs @@ -2,7 +2,7 @@ namespace DDD { public interface IItemSlotInteractorStrategy { - void OnAdded(ItemSlotUi itemSlotUi, RestaurantManagementSo restaurantManagementSo); - void OnRemoved(ItemSlotUi itemSlotUi, RestaurantManagementSo restaurantManagementSo); + void OnAdded(ItemSlotUi itemSlotUi, RestaurantManagementStateSo restaurantManagementStateSo); + void OnRemoved(ItemSlotUi itemSlotUi, RestaurantManagementStateSo restaurantManagementStateSo); } } \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/ItemUi/ItemSlotInteractor.cs b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/ItemUi/ItemSlotInteractor.cs index c913b6f3c..9203cad86 100644 --- a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/ItemUi/ItemSlotInteractor.cs +++ b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/ItemUi/ItemSlotInteractor.cs @@ -15,7 +15,7 @@ public enum TodayMenuEventType public class ItemSlotInteractor : MonoBehaviour, IInteractableUi { private ItemSlotUi _itemSlotUi; - private RestaurantManagementSo _restaurantManagementSo; + private RestaurantManagementStateSo restaurantManagementStateSo; private TaskCompletionSource _isInitialized = new(); private TodayMenuEventType _todayMenuEventType = TodayMenuEventType.None; @@ -30,8 +30,8 @@ public async Task Initialize(TodayMenuEventType todayMenuEventType, IItemSlotInt { _todayMenuEventType = todayMenuEventType; Strategy = strategy; - - _restaurantManagementSo = await AssetManager.LoadAsset(DataConstants.RestaurantManagementSo); + + restaurantManagementStateSo = RestaurantState.instance.ManagementState; _isInitialized.SetResult(true); } @@ -42,10 +42,10 @@ public async Task OnInteract() switch (_todayMenuEventType) { case TodayMenuEventType.Add: - Strategy.OnAdded(_itemSlotUi, _restaurantManagementSo); + Strategy.OnAdded(_itemSlotUi, restaurantManagementStateSo); break; case TodayMenuEventType.Remove: - Strategy.OnRemoved(_itemSlotUi, _restaurantManagementSo); + Strategy.OnRemoved(_itemSlotUi, restaurantManagementStateSo); break; case TodayMenuEventType.None: default: diff --git a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayMenuUi/TodayMenuInteractorStrategy.cs b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayMenuUi/TodayMenuInteractorStrategy.cs index ce2b6e936..aaaf64bbb 100644 --- a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayMenuUi/TodayMenuInteractorStrategy.cs +++ b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayMenuUi/TodayMenuInteractorStrategy.cs @@ -2,13 +2,13 @@ namespace DDD { public class TodayMenuInteractorStrategy : IItemSlotInteractorStrategy { - public void OnAdded(ItemSlotUi itemSlotUi, RestaurantManagementSo restaurantManagementSo) + public void OnAdded(ItemSlotUi itemSlotUi, RestaurantManagementStateSo restaurantManagementStateSo) { if (itemSlotUi.Strategy is not InventorySlotUiStrategy inventorySlotUiStrategy) return; if (inventorySlotUiStrategy.CanCrafting(itemSlotUi)) { - restaurantManagementSo.TryAddTodayMenu(itemSlotUi.Model); + restaurantManagementStateSo.TryAddTodayMenu(itemSlotUi.Model); } else { @@ -21,11 +21,11 @@ public void OnAdded(ItemSlotUi itemSlotUi, RestaurantManagementSo restaurantMana } } - public void OnRemoved(ItemSlotUi itemSlotUi, RestaurantManagementSo restaurantManagementSo) + public void OnRemoved(ItemSlotUi itemSlotUi, RestaurantManagementStateSo restaurantManagementStateSo) { if (itemSlotUi.Strategy is InventorySlotUiStrategy) return; - restaurantManagementSo.TryRemoveTodayMenu(itemSlotUi.Model); + restaurantManagementStateSo.TryRemoveTodayMenu(itemSlotUi.Model); } } } \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayMenuUi/TodayMenuSlotUiStrategy.cs b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayMenuUi/TodayMenuSlotUiStrategy.cs index ad1d5ee36..2c7b04f18 100644 --- a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayMenuUi/TodayMenuSlotUiStrategy.cs +++ b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayMenuUi/TodayMenuSlotUiStrategy.cs @@ -6,7 +6,7 @@ namespace DDD public class TodayMenuSlotUiStrategy : IItemSlotUiStrategy { private readonly RecipeType _recipeType; - private RestaurantManagementSo _restaurantManagementSo; + private RestaurantManagementStateSo restaurantManagementStateSo; public string AnimatorControllerKey => "TodayMenuSlotUi"; @@ -17,7 +17,7 @@ public TodayMenuSlotUiStrategy(RecipeType recipeType) public async Task Setup(ItemSlotUi ui, ItemViewModel model) { - _restaurantManagementSo = await AssetManager.LoadAsset(DataConstants.RestaurantManagementSo); + restaurantManagementStateSo = RestaurantState.instance.ManagementState; if (model == null) { @@ -40,7 +40,7 @@ public async Task Setup(ItemSlotUi ui, ItemViewModel model) } string markSpriteKey = null; - if (_restaurantManagementSo.IsCookwareMatched(ui.Model.Id)) + if (restaurantManagementStateSo.IsCookwareMatched(ui.Model.Id)) { markSpriteKey = SpriteConstants.CheckYesSpriteKey; } diff --git a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayMenuUi/TodayMenuView.cs b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayMenuUi/TodayMenuView.cs index e26edd42b..197a28c0c 100644 --- a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayMenuUi/TodayMenuView.cs +++ b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayMenuUi/TodayMenuView.cs @@ -12,7 +12,8 @@ public class TodayMenuView : MonoBehaviour, IEventHandler, private List _foodSlots; private List _drinkSlots; - private RestaurantManagementSo _restaurantManagementSo; + private RestaurantManagementStateSo restaurantManagementStateSo; + private RestaurantManagementDataSo restaurantManagementDataSo; private void Start() { @@ -27,19 +28,20 @@ private void OnDestroy() private async Task Initialize() { - _restaurantManagementSo = await AssetManager.LoadAsset(DataConstants.RestaurantManagementSo); - Debug.Assert(_restaurantManagementSo != null, "_restaurantManagementSo != null"); + restaurantManagementStateSo = RestaurantState.instance.ManagementState; + restaurantManagementDataSo = RestaurantDataSo.instance.ManagementData; + Debug.Assert(restaurantManagementStateSo != null, "_restaurantManagementSo != null"); foreach (Transform child in _todayFoodContent) { Destroy(child.gameObject); } - int maxFoodCount = _restaurantManagementSo!.MaxFoodCount; + int maxFoodCount = restaurantManagementStateSo!.MaxFoodCount; _foodSlots = new List(maxFoodCount); - for (int i = 0; i < _restaurantManagementSo.MaxFoodCount; i++) + for (int i = 0; i < restaurantManagementStateSo.MaxFoodCount; i++) { - var go = Instantiate(_restaurantManagementSo.ItemSlotUiPrefab, _todayFoodContent); + var go = Instantiate(restaurantManagementDataSo.ItemSlotUiPrefab, _todayFoodContent); var slot = go.GetComponent(); await slot.Initialize(null, new TodayMenuSlotUiStrategy(RecipeType.FoodRecipe)); var itemSlotInteractor = go.GetComponent(); @@ -53,11 +55,11 @@ private async Task Initialize() Destroy(child.gameObject); } - int maxDrinkCount = _restaurantManagementSo.MaxDrinkCount; + int maxDrinkCount = restaurantManagementStateSo.MaxDrinkCount; _drinkSlots = new List(maxDrinkCount); - for (int i = 0; i < _restaurantManagementSo.MaxDrinkCount; i++) + for (int i = 0; i < restaurantManagementStateSo.MaxDrinkCount; i++) { - var go = Instantiate(_restaurantManagementSo.ItemSlotUiPrefab, _todayDrinkContent); + var go = Instantiate(restaurantManagementDataSo.ItemSlotUiPrefab, _todayDrinkContent); var slot = go.GetComponent(); await slot.Initialize(null, new TodayMenuSlotUiStrategy(RecipeType.DrinkRecipe)); var itemSlotInteractor = go.GetComponent(); @@ -85,7 +87,7 @@ public void Invoke(TodayMenuRemovedEvent evt) private void UpdateView() { int foodIndex = 0; - foreach (var foodRecipeIdCountPair in _restaurantManagementSo.TodayFoodRecipeIds) + foreach (var foodRecipeIdCountPair in restaurantManagementStateSo.TodayFoodRecipeIds) { if (foodIndex >= _foodSlots.Count) break; @@ -102,7 +104,7 @@ private void UpdateView() } int drinkIndex = 0; - foreach (var drinkRecipeIdCountPair in _restaurantManagementSo.TodayDrinkRecipeIds) + foreach (var drinkRecipeIdCountPair in restaurantManagementStateSo.TodayDrinkRecipeIds) { if (drinkIndex >= _drinkSlots.Count) break; diff --git a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayRestaurantStateUi/TodayCookwareInteractorStrategy.cs b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayRestaurantStateUi/TodayCookwareInteractorStrategy.cs index 3c912097d..e709252fa 100644 --- a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayRestaurantStateUi/TodayCookwareInteractorStrategy.cs +++ b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayRestaurantStateUi/TodayCookwareInteractorStrategy.cs @@ -2,13 +2,13 @@ namespace DDD { public class TodayCookwareInteractorStrategy : IItemSlotInteractorStrategy { - public void OnAdded(ItemSlotUi itemSlotUi, RestaurantManagementSo restaurantManagementSo) + public void OnAdded(ItemSlotUi itemSlotUi, RestaurantManagementStateSo restaurantManagementStateSo) { if (itemSlotUi.Strategy is not InventorySlotUiStrategy inventorySlotUiStrategy) return; if (inventorySlotUiStrategy.CanCrafting(itemSlotUi)) { - restaurantManagementSo.TryAddTodayCookware(itemSlotUi.Model); + restaurantManagementStateSo.TryAddTodayCookware(itemSlotUi.Model); } else { @@ -21,11 +21,11 @@ public void OnAdded(ItemSlotUi itemSlotUi, RestaurantManagementSo restaurantMana } } - public void OnRemoved(ItemSlotUi itemSlotUi, RestaurantManagementSo restaurantManagementSo) + public void OnRemoved(ItemSlotUi itemSlotUi, RestaurantManagementStateSo restaurantManagementStateSo) { if (itemSlotUi.Strategy is InventorySlotUiStrategy) return; - restaurantManagementSo.TryRemoveTodayCookware(itemSlotUi.Model); + restaurantManagementStateSo.TryRemoveTodayCookware(itemSlotUi.Model); } } } \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayRestaurantStateUi/TodayCookwareSlotUiStrategy.cs b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayRestaurantStateUi/TodayCookwareSlotUiStrategy.cs index 08487cb1f..d4976c995 100644 --- a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayRestaurantStateUi/TodayCookwareSlotUiStrategy.cs +++ b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayRestaurantStateUi/TodayCookwareSlotUiStrategy.cs @@ -5,7 +5,7 @@ namespace DDD { public class TodayCookwareSlotUiStrategy : IItemSlotUiStrategy { - private RestaurantManagementSo _restaurantManagementSo; + private RestaurantManagementStateSo restaurantManagementStateSo; public string AnimatorControllerKey => "TodayMenuSlotUi"; diff --git a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayRestaurantStateUi/TodayRestaurantStateView.cs b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayRestaurantStateUi/TodayRestaurantStateView.cs index 55c9a59e8..4edaa5530 100644 --- a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayRestaurantStateUi/TodayRestaurantStateView.cs +++ b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayRestaurantStateUi/TodayRestaurantStateView.cs @@ -11,8 +11,9 @@ public class TodayRestaurantStateView : MonoBehaviour, IEventHandler _workerSlots; private List _cookwareSlots; - - private RestaurantManagementSo _restaurantManagementSo; + + private RestaurantManagementStateSo restaurantManagementStateSo; + private RestaurantManagementDataSo restaurantManagementDataSo; private void Start() { @@ -27,19 +28,20 @@ private void OnDestroy() private async Task Initialize() { - _restaurantManagementSo = await AssetManager.LoadAsset(DataConstants.RestaurantManagementSo); - Debug.Assert(_restaurantManagementSo != null, "_restaurantManagementSo != null"); + restaurantManagementStateSo = RestaurantState.instance.ManagementState; + restaurantManagementDataSo = RestaurantDataSo.instance.ManagementData; + Debug.Assert(restaurantManagementStateSo != null, "_restaurantManagementSo != null"); foreach (Transform child in _todayWorkerContent) { Destroy(child.gameObject); } - int maxCookwareCount = _restaurantManagementSo!.MaxCookwareCount; + int maxCookwareCount = restaurantManagementStateSo!.MaxCookwareCount; _workerSlots = new List(maxCookwareCount); - for (int i = 0; i < _restaurantManagementSo.MaxCookwareCount; i++) + for (int i = 0; i < restaurantManagementStateSo.MaxCookwareCount; i++) { - var go = Instantiate(_restaurantManagementSo.ItemSlotUiPrefab, _todayWorkerContent); + var go = Instantiate(restaurantManagementDataSo.ItemSlotUiPrefab, _todayWorkerContent); var slot = go.GetComponent(); await slot.Initialize(null, new TodayWorkerSlotUiStrategy()); var itemSlotInteractor = go.GetComponent(); @@ -54,9 +56,9 @@ private async Task Initialize() } _cookwareSlots = new List(maxCookwareCount); - for (int i = 0; i < _restaurantManagementSo.MaxCookwareCount; i++) + for (int i = 0; i < restaurantManagementStateSo.MaxCookwareCount; i++) { - var go = Instantiate(_restaurantManagementSo.ItemSlotUiPrefab, _todayCookwareContent); + var go = Instantiate(restaurantManagementDataSo.ItemSlotUiPrefab, _todayCookwareContent); var slot = go.GetComponent(); await slot.Initialize(null, new TodayCookwareSlotUiStrategy()); var itemSlotInteractor = go.GetComponent(); @@ -84,7 +86,7 @@ public void Invoke(TodayMenuRemovedEvent evt) private void UpdateView() { int workerIndex = 0; - foreach (var workerKey in _restaurantManagementSo.TodayWorkerIds) + foreach (var workerKey in restaurantManagementStateSo.TodayWorkerIds) { if (workerIndex >= _workerSlots.Count) break; @@ -101,7 +103,7 @@ private void UpdateView() } int cookwareIndex = 0; - foreach (var cookwareKey in _restaurantManagementSo.CookwareToRecipeIds.Keys) + foreach (var cookwareKey in restaurantManagementStateSo.CookwareToRecipeIds.Keys) { if (cookwareIndex >= _cookwareSlots.Count) break; diff --git a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayRestaurantStateUi/TodayWorkerSlotUiStrategy.cs b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayRestaurantStateUi/TodayWorkerSlotUiStrategy.cs index 6296f6deb..b84d51348 100644 --- a/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayRestaurantStateUi/TodayWorkerSlotUiStrategy.cs +++ b/Assets/_DDD/_Scripts/GameUi/RestaurantManagementUi/TodayRestaurantStateUi/TodayWorkerSlotUiStrategy.cs @@ -5,7 +5,7 @@ namespace DDD { public class TodayWorkerSlotUiStrategy : IItemSlotUiStrategy { - private RestaurantManagementSo _restaurantManagementSo; + private RestaurantManagementStateSo restaurantManagementStateSo; public string AnimatorControllerKey => "TodayMenuSlotUi"; diff --git a/Assets/_DDD/_Scripts/RestaurantCharacter/Player/RestaurantPlayerInput.cs b/Assets/_DDD/_Scripts/RestaurantCharacter/Player/RestaurantPlayerInput.cs index 9d1376b50..3b57a8a6f 100644 --- a/Assets/_DDD/_Scripts/RestaurantCharacter/Player/RestaurantPlayerInput.cs +++ b/Assets/_DDD/_Scripts/RestaurantCharacter/Player/RestaurantPlayerInput.cs @@ -9,7 +9,7 @@ public class RestaurantPlayerInput : MonoBehaviour private async void Start() { - _playerDataSo = await AssetManager.LoadAsset(DataConstants.RestaurantPlayerDataSo); + _playerDataSo = RestaurantDataSo.instance.PlayerData; _playerDataSo.OpenManagementUiAction = InputManager.Instance.GetAction(InputActionMaps.Restaurant, nameof(RestaurantActions.OpenManagementUi)); _playerDataSo.OpenManagementUiAction.performed += OnOpenManagementUi; diff --git a/Assets/_DDD/_Scripts/RestaurantCharacter/Player/RestaurantPlayerInteraction.cs b/Assets/_DDD/_Scripts/RestaurantCharacter/Player/RestaurantPlayerInteraction.cs index 74429f15b..920475c81 100644 --- a/Assets/_DDD/_Scripts/RestaurantCharacter/Player/RestaurantPlayerInteraction.cs +++ b/Assets/_DDD/_Scripts/RestaurantCharacter/Player/RestaurantPlayerInteraction.cs @@ -17,7 +17,7 @@ protected override void Start() private async Task Initialize() { - _restaurantPlayerDataSo = await AssetManager.LoadAsset(DataConstants.RestaurantPlayerDataSo); + _restaurantPlayerDataSo = RestaurantDataSo.instance.PlayerData; Debug.Assert(_restaurantPlayerDataSo != null, "_restaurantPlayerDataSo is null"); _restaurantPlayerDataSo!.InteractAction = InputManager.Instance.GetAction(InputActionMaps.Restaurant, nameof(RestaurantActions.Interact)); diff --git a/Assets/_DDD/_Scripts/RestaurantCharacter/Player/RestaurantPlayerMovement.cs b/Assets/_DDD/_Scripts/RestaurantCharacter/Player/RestaurantPlayerMovement.cs index e97ca81cc..58adbc083 100644 --- a/Assets/_DDD/_Scripts/RestaurantCharacter/Player/RestaurantPlayerMovement.cs +++ b/Assets/_DDD/_Scripts/RestaurantCharacter/Player/RestaurantPlayerMovement.cs @@ -81,8 +81,7 @@ private async System.Threading.Tasks.Task InitializePlayerData() { try { - _playerDataSo = - await AssetManager.LoadAsset(DataConstants.RestaurantPlayerDataSo); + _playerDataSo = RestaurantDataSo.instance.PlayerData; SubscribeToInputEvents(); _isInitialized = true; } diff --git a/Assets/_DDD/_Scripts/RestaurantController/Conrtollers.meta b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers.meta new file mode 100644 index 000000000..20a64bd8c --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7b8a2db30b704457b1fa4cf2a0e48255 +timeCreated: 1755153982 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantEnvironmentController.cs b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantEnvironmentController.cs new file mode 100644 index 000000000..397c48cd6 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantEnvironmentController.cs @@ -0,0 +1,46 @@ +using System.Threading.Tasks; +using UnityEngine; + +namespace DDD +{ + public class RestaurantEnvironmentController : RestaurantFlowController + { + private RestaurantEnvironmentStateSo _environmentState; + public override async Task InitializeController() + { + } + + public override async Task InitializeState() + { + _environmentState = RestaurantState.instance.EnvironmentState; + + } + + public override async Task OnReadyNewFlow(GameFlowState newFlowState) + { + // if(newFlowState == GameFlowState.ReadyForRestaurant) GenerateDummyEnvironmentProps(); // XXX : DUMMY! REMOVE THIS + } + + public override async Task OnExitCurrentFlow(GameFlowState exitingFlowState) + { + } + + private void GenerateDummyEnvironmentProps() + { + // Make dummy placement data + foreach (EnvironmentData prop in DataManager.Instance.GetDataSo().GetDataList()) + { + for (int i = 0; i < 10; i++) + { + // Make a random position + Vector2 randomPos = new Vector2( + Random.Range(-10f, 10f), + Random.Range(10f, 20f) + ); + var randomPropData = new RestaurantPropLocation(prop.Id, randomPos); + _environmentState.Props.Add(randomPropData); + } + } + } + } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantEnvironmentController.cs.meta b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantEnvironmentController.cs.meta new file mode 100644 index 000000000..a1d281642 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantEnvironmentController.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ecaa037e76094edb85505ae8ef4a30bf +timeCreated: 1755158160 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantManagementController.cs b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantManagementController.cs new file mode 100644 index 000000000..e46162816 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantManagementController.cs @@ -0,0 +1,26 @@ +using System.Threading.Tasks; +using UnityEngine; + +namespace DDD +{ + public class RestaurantManagementController : RestaurantFlowController + { + public override async Task InitializeController() + { + } + + public override async Task InitializeState() + { + // Load default asset + RestaurantState.instance.ManagementState.InitializeReadyForRestaurant(); + } + + public override async Task OnReadyNewFlow(GameFlowState newFlowState) + { + } + + public override async Task OnExitCurrentFlow(GameFlowState exitingFlowState) + { + } + } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantManagementController.cs.meta b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantManagementController.cs.meta new file mode 100644 index 000000000..21d866599 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantManagementController.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d8111d425c954cbcad66b43ebeabdc87 +timeCreated: 1755154065 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantPlayerController.cs b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantPlayerController.cs new file mode 100644 index 000000000..a9c240966 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantPlayerController.cs @@ -0,0 +1,42 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using UnityEngine; + +namespace DDD +{ + public class RestaurantPlayerController : RestaurantFlowController + { + public override async Task InitializeController() + { + } + + public override async Task InitializeState() + { + } + + public override async Task OnReadyNewFlow(GameFlowState newFlowState) + { + if (newFlowState == GameFlowState.ReadyForRestaurant) + { + List tasks = new List(); + // Spawn player job + CreateRestaurantPlayer createRestaurantPlayerJob = new CreateRestaurantPlayer(); + + var createPlayerReadyHandle = createRestaurantPlayerJob.ReadyFlowTask(); + var createPlayerHandle = createRestaurantPlayerJob.RunFlowTask(); + tasks.Add(createPlayerReadyHandle); + tasks.Add(createPlayerHandle); + + Task.WhenAll(tasks); + } + } + + public override async Task OnExitCurrentFlow(GameFlowState exitingFlowState) + { + if (exitingFlowState == GameFlowState.SettlementRestaurant) + { + // TODO : Remove player character + } + } + } +} diff --git a/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantPlayerController.cs.meta b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantPlayerController.cs.meta new file mode 100644 index 000000000..365e9fead --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantPlayerController.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ea2ec95b780049508f65b62fbe7d3182 +timeCreated: 1755160563 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantRunController.cs b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantRunController.cs new file mode 100644 index 000000000..0cfce07d9 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantRunController.cs @@ -0,0 +1,30 @@ +using System.Threading.Tasks; +using UnityEngine; + +namespace DDD +{ + public class RestaurantRunController : RestaurantFlowController + { + RestaurantCustomerStateSo _restaurantCustomerStateSo; + public override async Task InitializeController() + { + } + + public override async Task InitializeState() + { + } + + public override async Task OnReadyNewFlow(GameFlowState newFlowState) + { + var restaurantCustomerStateHandle = _restaurantCustomerStateSo.OnReadyNewFlow(newFlowState); + } + public override async Task OnExitCurrentFlow(GameFlowState exitingFlowState) + { + if (exitingFlowState == GameFlowState.RunRestaurant) + { + var restaurantCustomerStateHandle = _restaurantCustomerStateSo.OnExitCurrentFlow(exitingFlowState); + await Task.WhenAll(restaurantCustomerStateHandle); + } + } + } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantRunController.cs.meta b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantRunController.cs.meta new file mode 100644 index 000000000..abed79636 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/RestaurantRunController.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 0bafd7933ff74e0dbe0f6bc728148ad7 +timeCreated: 1755154487 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run.meta b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run.meta new file mode 100644 index 000000000..d274a33bc --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 48d5c919df704a56b8ce8d4378eacd35 +timeCreated: 1755161934 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantState/Customer.meta b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer.meta similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantState/Customer.meta rename to Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer.meta diff --git a/Assets/_DDD/_Scripts/RestaurantState/Customer/CustomerFactory.cs b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/CustomerFactory.cs similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantState/Customer/CustomerFactory.cs rename to Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/CustomerFactory.cs diff --git a/Assets/_DDD/_Scripts/RestaurantState/Customer/CustomerFactory.cs.meta b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/CustomerFactory.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantState/Customer/CustomerFactory.cs.meta rename to Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/CustomerFactory.cs.meta diff --git a/Assets/_DDD/_Scripts/RestaurantState/Customer/RandomSpawnScheduleBuilder.cs b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/RandomSpawnScheduleBuilder.cs similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantState/Customer/RandomSpawnScheduleBuilder.cs rename to Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/RandomSpawnScheduleBuilder.cs diff --git a/Assets/_DDD/_Scripts/RestaurantState/Customer/RandomSpawnScheduleBuilder.cs.meta b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/RandomSpawnScheduleBuilder.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantState/Customer/RandomSpawnScheduleBuilder.cs.meta rename to Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/RandomSpawnScheduleBuilder.cs.meta diff --git a/Assets/_DDD/_Scripts/RestaurantState/Customer/RegularSpawnScheduleBuilder.cs b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/RegularSpawnScheduleBuilder.cs similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantState/Customer/RegularSpawnScheduleBuilder.cs rename to Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/RegularSpawnScheduleBuilder.cs diff --git a/Assets/_DDD/_Scripts/RestaurantState/Customer/RegularSpawnScheduleBuilder.cs.meta b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/RegularSpawnScheduleBuilder.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantState/Customer/RegularSpawnScheduleBuilder.cs.meta rename to Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/RegularSpawnScheduleBuilder.cs.meta diff --git a/Assets/_DDD/_Scripts/RestaurantState/Customer/RestaurantCustomerStateSo.cs b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/RestaurantCustomerStateSo.cs similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantState/Customer/RestaurantCustomerStateSo.cs rename to Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/RestaurantCustomerStateSo.cs diff --git a/Assets/_DDD/_Scripts/RestaurantState/Customer/RestaurantCustomerStateSo.cs.meta b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/RestaurantCustomerStateSo.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantState/Customer/RestaurantCustomerStateSo.cs.meta rename to Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/RestaurantCustomerStateSo.cs.meta diff --git a/Assets/_DDD/_Scripts/RestaurantState/Customer/SpawnPointProvider.cs b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/SpawnPointProvider.cs similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantState/Customer/SpawnPointProvider.cs rename to Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/SpawnPointProvider.cs diff --git a/Assets/_DDD/_Scripts/RestaurantState/Customer/SpawnPointProvider.cs.meta b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/SpawnPointProvider.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantState/Customer/SpawnPointProvider.cs.meta rename to Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/SpawnPointProvider.cs.meta diff --git a/Assets/_DDD/_Scripts/RestaurantState/Customer/SpawnSchedule.cs b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/SpawnSchedule.cs similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantState/Customer/SpawnSchedule.cs rename to Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/SpawnSchedule.cs diff --git a/Assets/_DDD/_Scripts/RestaurantState/Customer/SpawnSchedule.cs.meta b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/SpawnSchedule.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantState/Customer/SpawnSchedule.cs.meta rename to Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/SpawnSchedule.cs.meta diff --git a/Assets/_DDD/_Scripts/RestaurantState/Customer/SpawnScheduleUtils.cs b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/SpawnScheduleUtils.cs similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantState/Customer/SpawnScheduleUtils.cs rename to Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/SpawnScheduleUtils.cs diff --git a/Assets/_DDD/_Scripts/RestaurantState/Customer/SpawnScheduleUtils.cs.meta b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/SpawnScheduleUtils.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantState/Customer/SpawnScheduleUtils.cs.meta rename to Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Run/Customer/SpawnScheduleUtils.cs.meta diff --git a/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Tasks.meta b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Tasks.meta new file mode 100644 index 000000000..110eb03a1 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Tasks.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: cf3b380b71a04861b2089308511b0fd2 +timeCreated: 1755160110 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Tasks/CreateRestaurantEnvironment.cs b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Tasks/CreateRestaurantEnvironment.cs new file mode 100644 index 000000000..12003a9d5 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Tasks/CreateRestaurantEnvironment.cs @@ -0,0 +1,23 @@ +using System.Threading.Tasks; +using UnityEngine; + +namespace DDD +{ + public class CreateRestaurantEnvironment : RestaurantFlowTask + { + public override async Task ReadyFlowTask() + { + } + + public override async Task RunFlowTask() + { + // TODO : Base prefab from EnvironmentDataSo + + var props = RestaurantState.instance.EnvironmentState.Props; + foreach (var prop in props) + { + // TODO : Instantiate and Initialize + } + } + } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantEnvironment/CreateEnvironmentSo.cs.meta b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Tasks/CreateRestaurantEnvironment.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantEnvironment/CreateEnvironmentSo.cs.meta rename to Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Tasks/CreateRestaurantEnvironment.cs.meta diff --git a/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Tasks/CreateRestaurantPlayer.cs b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Tasks/CreateRestaurantPlayer.cs new file mode 100644 index 000000000..19213fd40 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Tasks/CreateRestaurantPlayer.cs @@ -0,0 +1,30 @@ +using System.Threading.Tasks; +using UnityEditor; +using UnityEngine; + +namespace DDD +{ + public class CreateRestaurantPlayer : RestaurantFlowTask + { + [SerializeField] + private Vector3 _spawnPosition; + + public override async Task ReadyFlowTask() + { + + } + + public override async Task RunFlowTask() + { + // TODO : Player exist check + + var playerPrefab = await AssetManager.LoadAsset(CommonConstants.RestaurantPlayer); + var player = PrefabUtility.InstantiatePrefab(playerPrefab) as GameObject; + player.transform.position = _spawnPosition; + player.transform.rotation = playerPrefab.transform.rotation; + player.name = CommonConstants.RestaurantPlayer; + CameraManager.Instance.GetCameraGameObject(CameraType.RestaurantBaseCamera) + .SetFollowAndLookAtTarget(player.transform); + } + } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantController/CreateRestaurantPlayerSo.cs.meta b/Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Tasks/CreateRestaurantPlayer.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantController/CreateRestaurantPlayerSo.cs.meta rename to Assets/_DDD/_Scripts/RestaurantController/Conrtollers/Tasks/CreateRestaurantPlayer.cs.meta diff --git a/Assets/_DDD/_Scripts/RestaurantController/CreateRestaurantPlayerSo.cs b/Assets/_DDD/_Scripts/RestaurantController/CreateRestaurantPlayerSo.cs deleted file mode 100644 index 741b74041..000000000 --- a/Assets/_DDD/_Scripts/RestaurantController/CreateRestaurantPlayerSo.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System.Threading.Tasks; -using UnityEngine; - -namespace DDD -{ - [CreateAssetMenu(fileName = "CreateRestaurantPlayerSo", menuName = "GameFlow/CreateRestaurantPlayerSo")] - public class CreateRestaurantPlayerSo : ScriptableObject, IGameFlowHandler - { - [SerializeField] - private Vector3 _spawnPosition; - - public async Task OnReadyNewFlow(GameFlowState newFlowState) - { - var playerPrefab = await AssetManager.LoadAsset(CommonConstants.RestaurantPlayer); - var player = Instantiate(playerPrefab, _spawnPosition, playerPrefab.transform.rotation); - player.name = CommonConstants.RestaurantPlayer; - CameraManager.Instance.GetCameraGameObject(CameraType.RestaurantBaseCamera).SetFollowAndLookAtTarget(player.transform); - } - - public Task OnExitCurrentFlow(GameFlowState exitingFlowState) - { - return Task.CompletedTask; - } - } -} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantController/RestaurantController.cs b/Assets/_DDD/_Scripts/RestaurantController/RestaurantController.cs index 1a66843b8..03d371437 100644 --- a/Assets/_DDD/_Scripts/RestaurantController/RestaurantController.cs +++ b/Assets/_DDD/_Scripts/RestaurantController/RestaurantController.cs @@ -1,3 +1,5 @@ +using System; +using System.Collections.Generic; using System.Threading.Tasks; using UnityEngine; @@ -5,26 +7,34 @@ namespace DDD { public class RestaurantController : Singleton, IManager, IGameFlowHandler { - public RestaurantEnvironmentStateSo RestaurantEnvironmentStateSo { get; private set; } - public RestaurantCustomerStateSo RestaurantCustomerStateSo { get; private set; } + // static definitions + private static readonly List RestaurantFlowControllerTypes = new() + { + typeof(RestaurantPlayerController), + typeof(RestaurantEnvironmentController), + typeof(RestaurantManagementController), + typeof(RestaurantRunController) + }; - private const string CreateRestaurantPlayerSo = "CreateRestaurantPlayerSo"; - private const string CreateEnvironmentSo = "CreateEnvironmentSo"; + public RestaurantState GetRestaurantState() => RestaurantState.instance; + public RestaurantDataSo RestaurantData() => RestaurantDataSo.instance; + + private List _restaurantFlowControllers = new(); public void PreInit() { - LoadOrCreateRestaurantState(); RegisterFlowHandler(); } public async Task Init() { await LoadData(); + await RestaurantDataSo.instance.LoadData(); } public void PostInit() { - GenerateDummyEnvironmentProps();// XXX : DUMMY! REMOVE THIS + InitializeAllFlowControllers(); } private void RegisterFlowHandler() @@ -32,70 +42,54 @@ private void RegisterFlowHandler() GameFlowManager.Instance.FlowHandlers.Add(this); } - private void LoadOrCreateRestaurantState() + private void InitializeAllFlowControllers() { - // TODO : Load states from saved files. if none, create them. - RestaurantEnvironmentStateSo = ScriptableObject.CreateInstance(); + // Create controllers and initialize them + foreach (var restaurantFlowControllerType in RestaurantFlowControllerTypes) + { + // create new controllers from restaurantFlowControllerType + var newController = ScriptableObject.CreateInstance(restaurantFlowControllerType); + var newFlowController = newController as RestaurantFlowController; + _restaurantFlowControllers.Add(newFlowController); + newFlowController.InitializeController(); + } + + foreach (var restaurantFlowController in _restaurantFlowControllers) + { + restaurantFlowController.InitializeState(); + } } private async Task LoadData() { - RestaurantCustomerStateSo = await AssetManager.LoadAsset(DataConstants.RestaurantCustomerStateSo); } - private void GenerateDummyEnvironmentProps() - { - // Make dummy placement data - foreach (EnvironmentData prop in DataManager.Instance.GetDataSo().GetDataList()) - { - for (int i = 0; i < 10; i++) - { - // Make random position - Vector2 randomPos = new Vector2( - Random.Range(-10f, 10f), - Random.Range(10f, 20f) - ); - var randomPropData = new RestaurantEnvironmentData(prop.Id, randomPos); - RestaurantEnvironmentStateSo.RestaurantEnvironmentProps.Add(randomPropData); - } - } - } - - public async Task OnReadyNewFlow(GameFlowState newFlowState) { + List tasks = new List(); + // Default restaurant initialization if (newFlowState == GameFlowState.ReadyForRestaurant) { - CreateRestaurantPlayerSo createRestaurantPlayerSoJob = await AssetManager.LoadAsset(CreateRestaurantPlayerSo); - //CreateEnvironmentSo createEnvironmentSoJob = await AssetManager.LoadAsset(CreateEnvironmentSo); - RestaurantManagementSo restaurantManagementSo = await AssetManager.LoadAsset(DataConstants.RestaurantManagementSo); - var playerHandle = createRestaurantPlayerSoJob.OnReadyNewFlow(newFlowState); - //var propHandle = createEnvironmentSoJob.OnReadyNewFlow(newFlowState); - var todayMenuHandle = restaurantManagementSo.OnReadyNewFlow(newFlowState); - // Combine handles and return it + // Switch keymap InputManager.Instance.SwitchCurrentActionMap(InputActionMaps.Restaurant); - await Task.WhenAll(playerHandle, todayMenuHandle); } - else if (newFlowState == GameFlowState.RunRestaurant) - { - var restaurantCustomerStateHandle = RestaurantCustomerStateSo.OnReadyNewFlow(newFlowState); - await Task.WhenAll(restaurantCustomerStateHandle); + // Restaurant FlowControllers - Player, Environment, Management, Run, ... + foreach (var flowController in _restaurantFlowControllers) + { + tasks.Add(flowController.OnReadyNewFlow(newFlowState)); } + await Task.WhenAll(tasks); } public async Task OnExitCurrentFlow(GameFlowState exitingFlowState) { - if (exitingFlowState == GameFlowState.ReadyForRestaurant) + List tasks = new List(); + foreach (var flowController in _restaurantFlowControllers) { - - } - else if (exitingFlowState == GameFlowState.RunRestaurant) - { - var restaurantCustomerStateHandle = RestaurantCustomerStateSo.OnExitCurrentFlow(exitingFlowState); - - await Task.WhenAll(restaurantCustomerStateHandle); + tasks.Add(flowController.OnExitCurrentFlow(exitingFlowState)); } + await Task.WhenAll(tasks); } } } \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantController/RestaurantControllerDataSo.cs b/Assets/_DDD/_Scripts/RestaurantController/RestaurantControllerDataSo.cs new file mode 100644 index 000000000..d97179751 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantController/RestaurantControllerDataSo.cs @@ -0,0 +1,10 @@ +using UnityEngine; + +namespace DDD +{ + [CreateAssetMenu(fileName = "RestaurantControllerData", menuName = "ScriptableObjects/RestaurantControllerData", order = 0)] + public class RestaurantControllerDataSo : ScriptableObject + { + + } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantController/RestaurantControllerDataSo.cs.meta b/Assets/_DDD/_Scripts/RestaurantController/RestaurantControllerDataSo.cs.meta new file mode 100644 index 000000000..628f2122b --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantController/RestaurantControllerDataSo.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 8c3b0a722a1b452cbf02909232ae1b6f +timeCreated: 1755164592 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantController/RestaurantFlowController.cs b/Assets/_DDD/_Scripts/RestaurantController/RestaurantFlowController.cs new file mode 100644 index 000000000..34ba374cb --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantController/RestaurantFlowController.cs @@ -0,0 +1,16 @@ +using System.Threading.Tasks; +using UnityEngine; + +namespace DDD +{ + public abstract class RestaurantFlowController : ScriptableObject + { + public abstract Task InitializeController(); + + public abstract Task InitializeState(); + + public abstract Task OnReadyNewFlow(GameFlowState newFlowState); + + public abstract Task OnExitCurrentFlow(GameFlowState exitingFlowState); + } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantController/RestaurantFlowController.cs.meta b/Assets/_DDD/_Scripts/RestaurantController/RestaurantFlowController.cs.meta new file mode 100644 index 000000000..cee842441 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantController/RestaurantFlowController.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 8e6271efae2e406098e6590001448373 +timeCreated: 1755154355 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantController/RestaurantFlowTask.cs b/Assets/_DDD/_Scripts/RestaurantController/RestaurantFlowTask.cs new file mode 100644 index 000000000..41c17b6b4 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantController/RestaurantFlowTask.cs @@ -0,0 +1,10 @@ +using System.Threading.Tasks; + +namespace DDD +{ + public abstract class RestaurantFlowTask + { + public abstract Task ReadyFlowTask(); + public abstract Task RunFlowTask(); + } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantController/RestaurantFlowTask.cs.meta b/Assets/_DDD/_Scripts/RestaurantController/RestaurantFlowTask.cs.meta new file mode 100644 index 000000000..e0b69fab1 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantController/RestaurantFlowTask.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ba7572f469684e698181b16bb249e10b +timeCreated: 1755160268 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantData.meta b/Assets/_DDD/_Scripts/RestaurantData.meta new file mode 100644 index 000000000..4689b0e0b --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantData.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 9ec68f33a1734f80b8370112f3cb71d2 +timeCreated: 1755165763 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantData/DataObjects.meta b/Assets/_DDD/_Scripts/RestaurantData/DataObjects.meta new file mode 100644 index 000000000..87ce8909f --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantData/DataObjects.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: c5f37e0a2cdb465f9da5cd844a932a90 +timeCreated: 1755168508 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantData/DataObjects/RestaurantManagementDataSo.cs b/Assets/_DDD/_Scripts/RestaurantData/DataObjects/RestaurantManagementDataSo.cs new file mode 100644 index 000000000..4e36046e9 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantData/DataObjects/RestaurantManagementDataSo.cs @@ -0,0 +1,17 @@ +using Sirenix.OdinInspector; +using UnityEngine; + +namespace DDD +{ + [CreateAssetMenu(fileName = "RestaurantManagementDataSo", menuName = "RestaurantData/RestaurantManagementDataSo", order = 0)] + public class RestaurantManagementDataSo : ScriptableObject + { + public ItemSlotUi ItemSlotUiPrefab; + + [Title("선택된 메뉴 상세 내용")] + public TasteHashTagSlotUi TasteHashTagSlotUiPrefab; + + public Color FoodTasteOutlineColor = Color.magenta; + public Color DrinkTasteOutlineColor = Color.magenta; + } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantData/DataObjects/RestaurantManagementDataSo.cs.meta b/Assets/_DDD/_Scripts/RestaurantData/DataObjects/RestaurantManagementDataSo.cs.meta new file mode 100644 index 000000000..ed04a0518 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantData/DataObjects/RestaurantManagementDataSo.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 3aa53e94b0504f26bb0cee017d1dddbc +timeCreated: 1755167516 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantCharacter/Player/RestaurantPlayerDataSo.cs b/Assets/_DDD/_Scripts/RestaurantData/DataObjects/RestaurantPlayerDataSo.cs similarity index 97% rename from Assets/_DDD/_Scripts/RestaurantCharacter/Player/RestaurantPlayerDataSo.cs rename to Assets/_DDD/_Scripts/RestaurantData/DataObjects/RestaurantPlayerDataSo.cs index 4de84246d..ea76e5dc7 100644 --- a/Assets/_DDD/_Scripts/RestaurantCharacter/Player/RestaurantPlayerDataSo.cs +++ b/Assets/_DDD/_Scripts/RestaurantData/DataObjects/RestaurantPlayerDataSo.cs @@ -3,7 +3,7 @@ namespace DDD { - [CreateAssetMenu(fileName = "RestaurantPlayerDataSo", menuName = "ScriptableObjects/RestaurantPlayerDataSo")] + [CreateAssetMenu(fileName = "RestaurantPlayerDataSo", menuName = "RestaurantData/RestaurantPlayerDataSo")] public class RestaurantPlayerDataSo : ScriptableObject { public bool IsDrawLineDebug = true; diff --git a/Assets/_DDD/_Scripts/RestaurantCharacter/Player/RestaurantPlayerDataSo.cs.meta b/Assets/_DDD/_Scripts/RestaurantData/DataObjects/RestaurantPlayerDataSo.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantCharacter/Player/RestaurantPlayerDataSo.cs.meta rename to Assets/_DDD/_Scripts/RestaurantData/DataObjects/RestaurantPlayerDataSo.cs.meta diff --git a/Assets/_DDD/_Scripts/RestaurantData/RestaurantDataSo.cs b/Assets/_DDD/_Scripts/RestaurantData/RestaurantDataSo.cs new file mode 100644 index 000000000..d2cc6839e --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantData/RestaurantDataSo.cs @@ -0,0 +1,49 @@ +using System.Threading.Tasks; +using UnityEditor; +using UnityEngine; +using UnityEngine.AddressableAssets; +using UnityEngine.ResourceManagement.AsyncOperations; + +namespace DDD +{ + [CreateAssetMenu(fileName = "RestaurantDataSo", menuName = "RestaurantData/RestaurantDataSo", order = 0)] + public class RestaurantDataSo : ScriptableSingleton + { + [Header("Asset References")] + [SerializeField] private AssetReference RestaurantPlayerDataSo; + [SerializeField] private AssetReference RestaurantManagementDataSo; + + public RestaurantPlayerDataSo PlayerData { get; private set; } + public RestaurantManagementDataSo ManagementData { get; private set; } + + private bool _isLoaded; + + public async Task LoadData() + { + if (_isLoaded) + { + return; + } + + var playerHandle = RestaurantPlayerDataSo.LoadAssetAsync(); + var managementHandle = RestaurantManagementDataSo.LoadAssetAsync(); + + await playerHandle.Task; + await managementHandle.Task; + + PlayerData = playerHandle.Result; + ManagementData = managementHandle.Result; + _isLoaded = true; + } + + private void OnDisable() + { + if (!_isLoaded) return; + + RestaurantPlayerDataSo.ReleaseAsset(); + RestaurantManagementDataSo.ReleaseAsset(); + + _isLoaded = false; + } + } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantData/RestaurantDataSo.cs.meta b/Assets/_DDD/_Scripts/RestaurantData/RestaurantDataSo.cs.meta new file mode 100644 index 000000000..08261b57c --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantData/RestaurantDataSo.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: f47eda10f73c497d9894967fae3cd2d8 +timeCreated: 1755165774 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantEnvironment/CreateEnvironmentSo.cs b/Assets/_DDD/_Scripts/RestaurantEnvironment/CreateEnvironmentSo.cs deleted file mode 100644 index a046d4f92..000000000 --- a/Assets/_DDD/_Scripts/RestaurantEnvironment/CreateEnvironmentSo.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Threading.Tasks; -using UnityEngine; - -namespace DDD -{ - [CreateAssetMenu(fileName = "CreateEnvironmentSo", menuName = "GameFlow/CreateEnvironmentSo")] - public class CreateEnvironmentSo : ScriptableObject, IGameFlowHandler - { - public async Task OnReadyNewFlow(GameFlowState newFlowState) - { - var baseRestaurantEnvironmentPrefab = await AssetManager.LoadAsset(CommonConstants.BaseRestaurantEnvironment); - - var props = RestaurantController.Instance.RestaurantEnvironmentStateSo.RestaurantEnvironmentProps; - foreach (var prop in props) - { - var restaurantEnvironment = Instantiate(baseRestaurantEnvironmentPrefab).GetComponent(); - restaurantEnvironment.Initialize(prop); - } - } - - public Task OnExitCurrentFlow(GameFlowState exitingFlowState) - { - return Task.CompletedTask; - } - } -} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantEnvironment/RestaurantEnvironment.cs b/Assets/_DDD/_Scripts/RestaurantEnvironment/RestaurantEnvironment.cs index f98d17c08..a2d647545 100644 --- a/Assets/_DDD/_Scripts/RestaurantEnvironment/RestaurantEnvironment.cs +++ b/Assets/_DDD/_Scripts/RestaurantEnvironment/RestaurantEnvironment.cs @@ -6,16 +6,16 @@ namespace DDD { public class RestaurantEnvironment : MonoBehaviour { - private RestaurantEnvironmentData _restaurantEnvironmentData; + private RestaurantPropLocation restaurantPropLocation; private Collider _collider; private Transform _rootObject; private Transform _visualLook; private Renderer _renderer; - public async void Initialize(RestaurantEnvironmentData data) + public async void Initialize(RestaurantPropLocation location) { - EnvironmentData environmentData = DataManager.Instance.GetDataSo().GetDataById(data.Id); + EnvironmentData environmentData = DataManager.Instance.GetDataSo().GetDataById(location.Id); _collider = GetComponent(); _rootObject = transform.Find(CommonConstants.RootObject); @@ -48,7 +48,7 @@ public async void Initialize(RestaurantEnvironmentData data) _collider.isTrigger = environmentData.IsTrigger == 1; - transform.position = new Vector3(data.Position.x, 0f, data.Position.y); + transform.position = new Vector3(location.Position.x, 0f, location.Position.y); transform.localScale = Vector3.one * environmentData.Size; // Interaction initialize diff --git a/Assets/_DDD/_Scripts/RestaurantEvent/RestaurantOpenEventSolver.cs b/Assets/_DDD/_Scripts/RestaurantEvent/RestaurantOpenEventSolver.cs index 0ea0c75fa..ea1ae02ac 100644 --- a/Assets/_DDD/_Scripts/RestaurantEvent/RestaurantOpenEventSolver.cs +++ b/Assets/_DDD/_Scripts/RestaurantEvent/RestaurantOpenEventSolver.cs @@ -5,18 +5,6 @@ namespace DDD { public class RestaurantOpenEventSolver : MonoBehaviour, IInteractionSolver { - private RestaurantManagementSo _restaurantManagementSo; - - private void Start() - { - _ = Initialize(); - } - - private async Task Initialize() - { - _restaurantManagementSo = await AssetManager.LoadAsset(DataConstants.RestaurantManagementSo); - } - public bool ExecuteInteraction(IInteractor interactor, IInteractable interactable, ScriptableObject interactionPayloadSo = null) { if (CanExecuteInteraction() == false) return false; @@ -25,10 +13,16 @@ public bool ExecuteInteraction(IInteractor interactor, IInteractable interactabl return true; } + private RestaurantManagementStateSo GetManagementState() + { + return RestaurantState.instance.ManagementState; + } + public bool CanExecuteInteraction() { GameFlowState currentGameFlowState = GameFlowManager.Instance.GameFlowDataSo.CurrentGameState; - return currentGameFlowState == GameFlowState.ReadyForRestaurant && _restaurantManagementSo.IsOpenable(); + + return currentGameFlowState == GameFlowState.ReadyForRestaurant && GetManagementState().IsOpenable(); } } } \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantState/FlowStates.meta b/Assets/_DDD/_Scripts/RestaurantState/FlowStates.meta new file mode 100644 index 000000000..28e883261 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantState/FlowStates.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: e2c8f17cffc84440a720e0b241c61a05 +timeCreated: 1755159485 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantEnvironmentStateSo.cs b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantEnvironmentStateSo.cs new file mode 100644 index 000000000..495215698 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantEnvironmentStateSo.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace DDD +{ + [Serializable] + public class RestaurantPropLocation + { + public string Id; + public Vector2 Position; + + public RestaurantPropLocation(string id, Vector2 position) + { + Id = id; + Position = position; + } + } + + public class RestaurantEnvironmentStateSo : ScriptableObject + { + public List Props = new List(); + public List Objects = new List(); + } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentStateSo.cs.meta b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantEnvironmentStateSo.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentStateSo.cs.meta rename to Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantEnvironmentStateSo.cs.meta diff --git a/Assets/_DDD/_Scripts/RestaurantState/RestaurantManagementSo.cs b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantManagementStateSo.cs similarity index 90% rename from Assets/_DDD/_Scripts/RestaurantState/RestaurantManagementSo.cs rename to Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantManagementStateSo.cs index 8c04a016c..d4f6fb70a 100644 --- a/Assets/_DDD/_Scripts/RestaurantState/RestaurantManagementSo.cs +++ b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantManagementStateSo.cs @@ -6,18 +6,11 @@ namespace DDD { - [CreateAssetMenu(fileName = "RestaurantManagementSo", menuName = "GameState/RestaurantManagementSo")] - public class RestaurantManagementSo : ScriptableObject, IGameFlowHandler + public class RestaurantManagementStateSo : ScriptableObject { // TODO : 체크리스트 기능 - - public ItemSlotUi ItemSlotUiPrefab; - - [Title("선택된 메뉴 상세 내용")] - public TasteHashTagSlotUi TasteHashTagSlotUiPrefab; - public Color FoodTasteOutlineColor = Color.magenta; - public Color DrinkTasteOutlineColor = Color.magenta; - + + // TODO : 데이터에서 초기화하고, 동적으로 변경 [Title("오늘의 레스토랑 상태")] public int MaxFoodCount = 8; public int MaxDrinkCount = 6; @@ -35,23 +28,9 @@ public class RestaurantManagementSo : ScriptableObject, IGameFlowHandler public IReadOnlyList TodayWorkerIds => _todayWorkerIds; public IReadOnlyDictionary> CookwareToRecipeIds => _cookwareToRecipeIds; - public Task OnReadyNewFlow(GameFlowState newFlowState) - { - if (newFlowState == GameFlowState.ReadyForRestaurant) - { - InitializeReadyForRestaurant(); - } - - return Task.CompletedTask; - } - - public Task OnExitCurrentFlow(GameFlowState exitingFlowState) - { - return Task.CompletedTask; - } - - private void InitializeReadyForRestaurant() + public void InitializeReadyForRestaurant() { + // TODO : Load from disk if possible (save data) _todayFoodRecipeIds.Clear(); _todayDrinkRecipeIds.Clear(); _todayWorkerIds.Clear(); @@ -68,6 +47,11 @@ public bool IsOpenable() return _isOpenable; } + public RestaurantManagementDataSo GetManagementData() + { + return RestaurantDataSo.instance.ManagementData; + } + public bool TryAddTodayMenu(ItemViewModel model) { string recipeId = model.Id; diff --git a/Assets/_DDD/_Scripts/RestaurantState/RestaurantManagementSo.cs.meta b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantManagementStateSo.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantState/RestaurantManagementSo.cs.meta rename to Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantManagementStateSo.cs.meta diff --git a/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantPlayerStateSo.cs b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantPlayerStateSo.cs new file mode 100644 index 000000000..96f4154f2 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantPlayerStateSo.cs @@ -0,0 +1,9 @@ +using UnityEngine; + +namespace DDD +{ + public class RestaurantPlayerStateSo : ScriptableObject + { + + } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantPlayerStateSo.cs.meta b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantPlayerStateSo.cs.meta new file mode 100644 index 000000000..602cfff1d --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantPlayerStateSo.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: cc65892536714c08bc2cd202851e0c0f +timeCreated: 1755168640 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantRunStateSo.cs b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantRunStateSo.cs new file mode 100644 index 000000000..da9add6fa --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantRunStateSo.cs @@ -0,0 +1,9 @@ +using UnityEngine; + +namespace DDD +{ + public class RestaurantRunStateSo : ScriptableObject + { + + } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantRunStateSo.cs.meta b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantRunStateSo.cs.meta new file mode 100644 index 000000000..bbf49ab16 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantState/FlowStates/RestaurantRunStateSo.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 692fb4e2437a48768e4bcf5a57d2883d +timeCreated: 1755153808 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentData.cs b/Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentData.cs deleted file mode 100644 index 63733252e..000000000 --- a/Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentData.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using UnityEngine; - -namespace DDD -{ - [Serializable] - public class RestaurantEnvironmentData - { - public string Id; - public Vector2 Position; - - public RestaurantEnvironmentData(string id, Vector2 position) - { - Id = id; - Position = position; - } - } -} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentData.cs.meta b/Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentData.cs.meta deleted file mode 100644 index a535e2fe8..000000000 --- a/Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentData.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: 0d90911f4c827e3439a9a28d25e9bf93 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentStateSo.cs b/Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentStateSo.cs deleted file mode 100644 index c2a913043..000000000 --- a/Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentStateSo.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; - -namespace DDD -{ - // [CreateAssetMenu(fileName = "FILENAME", menuName = "MENUNAME", order = 0)] - public class RestaurantEnvironmentStateSo : ScriptableObject - { - public List RestaurantEnvironmentProps = new List(); - public List RestaurantEnvironmentObjects = new List(); - } -} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantState/RestaurantState.cs b/Assets/_DDD/_Scripts/RestaurantState/RestaurantState.cs new file mode 100644 index 000000000..ac6f5fb99 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantState/RestaurantState.cs @@ -0,0 +1,22 @@ +using UnityEditor; +using UnityEngine; + +namespace DDD +{ + public class RestaurantState : ScriptableSingleton + { + public RestaurantManagementStateSo ManagementState { get; private set; } + public RestaurantRunStateSo RunState { get; private set; } + public RestaurantEnvironmentStateSo EnvironmentState { get; private set; } + public RestaurantPlayerStateSo PlayerState { get; private set; } + + // TODO : Load from disk(SaveData) + private void OnEnable() + { + ManagementState = CreateInstance(); + RunState = CreateInstance(); + EnvironmentState = CreateInstance(); + PlayerState = CreateInstance(); + } + } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantState/RestaurantState.cs.meta b/Assets/_DDD/_Scripts/RestaurantState/RestaurantState.cs.meta new file mode 100644 index 000000000..c18ebb2c6 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantState/RestaurantState.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 6fa023349eb642e1b7ce4a7966b2228c +timeCreated: 1755159513 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/Utilities/Constants.cs b/Assets/_DDD/_Scripts/Utilities/Constants.cs index 035451764..51ace0c88 100644 --- a/Assets/_DDD/_Scripts/Utilities/Constants.cs +++ b/Assets/_DDD/_Scripts/Utilities/Constants.cs @@ -5,7 +5,6 @@ public static class CommonConstants public const string RootObject = "RootObject"; public const string VisualLook = "VisualLook"; public const string RestaurantPlayer = "RestaurantPlayer"; - public const string BaseRestaurantEnvironment = "BaseRestaurantEnvironment"; public const string Clone = "(Clone)"; public const string Panel = "Panel"; } @@ -25,10 +24,9 @@ public static class DataConstants public const string LevelDataSo = "LevelDataSo"; public const string CustomerDataSo = "CustomerDataSo"; public const string CustomerPoolDataSo = "CustomerPoolDataSo"; - public const string RestaurantPlayerDataSo = "RestaurantPlayerDataSo"; public const string UiInputBindingSo = "UiInputBindingSo"; - public const string RestaurantManagementSo = "RestaurantManagementSo"; - public const string RestaurantCustomerStateSo = "RestaurantCustomerStateSo"; + + public const string RestaurantDataSo = "RestaurantDataSo"; public const string AtlasLabel = "Atlas"; public const string BasePropSpriteMaterial = "BasePropSpriteMaterial";