diff --git a/Assets/_DDD/_Addressables/AI/Customer/Subtree/CustomerDefault.asset b/Assets/_DDD/_Addressables/AI/Customer/Subtree/CustomerDefault.asset index db1314a20..a793b242d 100644 --- a/Assets/_DDD/_Addressables/AI/Customer/Subtree/CustomerDefault.asset +++ b/Assets/_DDD/_Addressables/AI/Customer/Subtree/CustomerDefault.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:af9dba1f3a650104808ecdbc956ad4af8327efcf0fe782348b231eb103f7469b -size 66226 +oid sha256:277f8b3b25cfe078e4838cab1222b85e5dae0bc036cb39e5f84b6e3b3fce1cd0 +size 68048 diff --git a/Assets/_DDD/_Addressables/AI/Customer/Subtree/OrderSubtree.asset b/Assets/_DDD/_Addressables/AI/Customer/Subtree/OrderSubtree.asset index 8e6a2bf26..7e7bb95e0 100644 --- a/Assets/_DDD/_Addressables/AI/Customer/Subtree/OrderSubtree.asset +++ b/Assets/_DDD/_Addressables/AI/Customer/Subtree/OrderSubtree.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1e863335f3752df069447ebc0fee597d6f366d88edd12d70db68b45923a4f87c -size 20475 +oid sha256:6da8678bc90f664244b89aa26dc5c6b01c51567387ea3414b916fb27082f752b +size 16520 diff --git a/Assets/_DDD/_Addressables/Prefabs/CustomerNpc.prefab b/Assets/_DDD/_Addressables/Prefabs/CustomerNpc.prefab index 80cdc789c..d16acedec 100644 --- a/Assets/_DDD/_Addressables/Prefabs/CustomerNpc.prefab +++ b/Assets/_DDD/_Addressables/Prefabs/CustomerNpc.prefab @@ -1210,9 +1210,6 @@ PrefabInstance: - targetCorrespondingSourceObject: {fileID: 7462519206451630147, guid: ceeea618d8ee23642a0e56b3f963448c, type: 3} insertIndex: -1 addedObject: {fileID: 3825874317044733320} - - targetCorrespondingSourceObject: {fileID: 7462519206451630147, guid: ceeea618d8ee23642a0e56b3f963448c, type: 3} - insertIndex: -1 - addedObject: {fileID: 1122074513716966771} m_SourcePrefab: {fileID: 100100000, guid: ceeea618d8ee23642a0e56b3f963448c, type: 3} --- !u!1 &4266090516809920735 stripped GameObject: @@ -1255,23 +1252,3 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: af69e82818254bfa9cabb2dbf9430850, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!114 &1122074513716966771 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4266090516809920735} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 201f9e6d7ca7404baa9945950292a392, type: 3} - m_Name: - m_EditorClassIdentifier: - _interactionType: 4 - _executionParameters: - _holdTime: 0 - _displayParameters: - _messageKey: - _interactionAvailableFlows: 2 - _aiInteractionPoints: [] - autoInitialize: 1 diff --git a/Assets/_DDD/_Addressables/Prefabs/RestaurantPlayer.prefab b/Assets/_DDD/_Addressables/Prefabs/RestaurantPlayer.prefab index 07a8b71f5..d146b7e26 100644 --- a/Assets/_DDD/_Addressables/Prefabs/RestaurantPlayer.prefab +++ b/Assets/_DDD/_Addressables/Prefabs/RestaurantPlayer.prefab @@ -427,6 +427,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _availableInteractions: 13 + _availableInteractions: 7 _nearColliders: - {fileID: 0} - {fileID: 0} diff --git a/Assets/_DDD/_Scripts/AI/Common/IAISharedBlackboard.cs b/Assets/_DDD/_Scripts/AI/Common/IAISharedBlackboard.cs index 154eebd47..8136be741 100644 --- a/Assets/_DDD/_Scripts/AI/Common/IAISharedBlackboard.cs +++ b/Assets/_DDD/_Scripts/AI/Common/IAISharedBlackboard.cs @@ -9,7 +9,7 @@ namespace DDD /// public interface IAISharedBlackboard { - void SetCurrentInteractionTarget(GameObject targetGameObject); - GameObject GetCurrentInteractionTarget(); + void SetBlackboardGameObject(string key, GameObject inGameObject); + GameObject GetBlackboardGameObject(string key); } } diff --git a/Assets/_DDD/_Scripts/Game/GameData/DataSo.cs b/Assets/_DDD/_Scripts/Game/GameData/DataAsset.cs similarity index 97% rename from Assets/_DDD/_Scripts/Game/GameData/DataSo.cs rename to Assets/_DDD/_Scripts/Game/GameData/DataAsset.cs index bff309916..e49c3135f 100644 --- a/Assets/_DDD/_Scripts/Game/GameData/DataSo.cs +++ b/Assets/_DDD/_Scripts/Game/GameData/DataAsset.cs @@ -6,7 +6,7 @@ namespace DDD { - public class DataSo : ScriptableObject where T : IId + public class DataAsset : ScriptableObject where T : IId { [FormerlySerializedAs("Datas")] [SerializeField] protected List _datas = new(); diff --git a/Assets/_DDD/_Scripts/Game/GameData/DataSo.cs.meta b/Assets/_DDD/_Scripts/Game/GameData/DataAsset.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/Game/GameData/DataSo.cs.meta rename to Assets/_DDD/_Scripts/Game/GameData/DataAsset.cs.meta diff --git a/Assets/_DDD/_Scripts/Game/GameEvent/IInteractable.cs b/Assets/_DDD/_Scripts/Game/GameEvent/IInteractable.cs index c386e8e2a..72831c1fd 100644 --- a/Assets/_DDD/_Scripts/Game/GameEvent/IInteractable.cs +++ b/Assets/_DDD/_Scripts/Game/GameEvent/IInteractable.cs @@ -10,7 +10,6 @@ public enum InteractionType : uint None = 0u, RestaurantManagement = 1u << 0, RestaurantOrder = 1u << 1, - RestaurantMeal = 1u << 2, RestaurantCook = 1u << 3, All = 0xFFFFFFFFu } diff --git a/Assets/_DDD/_Scripts/Game/GameState/InventoryItemData.cs b/Assets/_DDD/_Scripts/Game/GameState/InventoryItemData.cs index 584f5c162..812fe42a7 100644 --- a/Assets/_DDD/_Scripts/Game/GameState/InventoryItemData.cs +++ b/Assets/_DDD/_Scripts/Game/GameState/InventoryItemData.cs @@ -18,6 +18,6 @@ public InventoryItemData(string id, int quantity) Quantity = quantity; } - public ItemData ItemData => InventoryManager.Instance.GetItemDataByIdOrNull(Id); + public ItemDataEntry ItemDataEntry => InventoryManager.Instance.GetItemDataByIdOrNull(Id); } } \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/Game/GameState/InventoryManager.cs b/Assets/_DDD/_Scripts/Game/GameState/InventoryManager.cs index 3a8662186..e1c3916ac 100644 --- a/Assets/_DDD/_Scripts/Game/GameState/InventoryManager.cs +++ b/Assets/_DDD/_Scripts/Game/GameState/InventoryManager.cs @@ -19,7 +19,7 @@ public class InventoryManager : Singleton, IManager { [Title("아이템 전체 목록")] [ShowInInspector, ReadOnly] - private Dictionary _allItemDataLookup; + private Dictionary _allItemDataLookup; [Title("아이템 보유 목록")] [ShowInInspector, ReadOnly] @@ -48,7 +48,7 @@ public void PostInit() private void InitializeItemData() { - var itemDataSo = DataManager.Instance.GetDataSo(); + var itemDataSo = DataManager.Instance.GetDataSo(); Debug.Assert(itemDataSo != null, "itemDataSo != null"); _allItemDataLookup = itemDataSo.GetDataList() @@ -129,12 +129,12 @@ public bool RemoveItem(string id, int quantity = 1) return true; } - public IReadOnlyDictionary AllItemDataLookup => _allItemDataLookup; + public IReadOnlyDictionary AllItemDataLookup => _allItemDataLookup; public IReadOnlyDictionary InventoryItems => _inventoryItemDatas; public bool ContainInventoryItem(string id) => _inventoryItemDatas.ContainsKey(id); public bool TryGetInventoryItemData(string id, out InventoryItemData inventoryItemData) => _inventoryItemDatas.TryGetValue(id, out inventoryItemData); public int GetItemCount(string id) => _inventoryItemDatas.TryGetValue(id, out var itemData) ? itemData.Quantity : 0; - public ItemData GetItemDataByIdOrNull(string id) + public ItemDataEntry GetItemDataByIdOrNull(string id) { _allItemDataLookup.TryGetValue(id, out var itemData); return itemData; diff --git a/Assets/_DDD/_Scripts/Game/GameState/InventoryTestDataSo.cs b/Assets/_DDD/_Scripts/Game/GameState/InventoryTestDataSo.cs index 2b6f69b17..32f98620c 100644 --- a/Assets/_DDD/_Scripts/Game/GameState/InventoryTestDataSo.cs +++ b/Assets/_DDD/_Scripts/Game/GameState/InventoryTestDataSo.cs @@ -28,14 +28,14 @@ private IEnumerable GetAllItemIds() .Select(d => d.Id); } - private ItemDataSo LoadItemDataSo() + private ItemDataAsset LoadItemDataSo() { // 경로는 프로젝트에 맞게 조정 필요 - string[] guids = AssetDatabase.FindAssets("t:ItemDataSo"); + string[] guids = AssetDatabase.FindAssets("t:ItemDataAsset"); if (guids.Length == 0) return null; string path = AssetDatabase.GUIDToAssetPath(guids[0]); - return AssetDatabase.LoadAssetAtPath(path); + return AssetDatabase.LoadAssetAtPath(path); } } diff --git a/Assets/_DDD/_Scripts/Game/GameState/TestInventoryEditorTool.cs b/Assets/_DDD/_Scripts/Game/GameState/TestInventoryEditorTool.cs index c251a1b48..f66837dbf 100644 --- a/Assets/_DDD/_Scripts/Game/GameState/TestInventoryEditorTool.cs +++ b/Assets/_DDD/_Scripts/Game/GameState/TestInventoryEditorTool.cs @@ -47,10 +47,10 @@ private void RemoveItem() private IEnumerable GetItemIds() { - if (!Application.isPlaying || DataManager.Instance?.GetDataSo() == null) + if (!Application.isPlaying || DataManager.Instance?.GetDataSo() == null) return Enumerable.Empty(); - return DataManager.Instance.GetDataSo().GetDataList() + return DataManager.Instance.GetDataSo().GetDataList() .Select(data => data.Id) .Where(id => !string.IsNullOrEmpty(id)); } diff --git a/Assets/_DDD/_Scripts/Game/GameUi/Utils/Binding/BindingContext.cs b/Assets/_DDD/_Scripts/Game/GameUi/Utils/Binding/BindingContext.cs index fb4faf61f..18533567b 100644 --- a/Assets/_DDD/_Scripts/Game/GameUi/Utils/Binding/BindingContext.cs +++ b/Assets/_DDD/_Scripts/Game/GameUi/Utils/Binding/BindingContext.cs @@ -104,7 +104,7 @@ private object GetPropertyValue(string propertyPath) { if (_dataContext == null) return null; - // 중첩 속성 지원 (예: "ItemData.Name") + // 중첩 속성 지원 (예: "ItemDataEntry.Name") var properties = propertyPath.Split('.'); object current = _dataContext; diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/CookwareDataAsset.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/CookwareDataAsset.asset new file mode 100644 index 000000000..aa9b3e191 --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/CookwareDataAsset.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f7460f0acbac80d6e106b5a3b7ca458e14578783b5c277b7914a1417e3abc38 +size 1016 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/CookwareDataSo.asset.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/CookwareDataAsset.asset.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/CookwareDataSo.asset.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/CookwareDataAsset.asset.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/CustomerDataAsset.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/CustomerDataAsset.asset new file mode 100644 index 000000000..0b68d0f68 --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/CustomerDataAsset.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fde6cef5464a2fd6832c0e2fad7c585618bb8bdf64fcc4b45f225aee7dd0ef35 +size 955 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/CustomerDataSo.asset.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/CustomerDataAsset.asset.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/CustomerDataSo.asset.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/CustomerDataAsset.asset.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/CustomerPoolDataAsset.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/CustomerPoolDataAsset.asset new file mode 100644 index 000000000..1062e5434 --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/CustomerPoolDataAsset.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38e7e9974ded3d328cb0d7b8983b2f5427c053e3cde91963458c9e7bef9c657f +size 1319 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/CustomerPoolDataSo.asset.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/CustomerPoolDataAsset.asset.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/CustomerPoolDataSo.asset.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/CustomerPoolDataAsset.asset.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/DrinkDataAsset.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/DrinkDataAsset.asset new file mode 100644 index 000000000..b42f24ce9 --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/DrinkDataAsset.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a52213a4b087efeafaecf64a08506ec7a7dc47261de27f851cb35f620d91991 +size 2215 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/DrinkDataSo.asset.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/DrinkDataAsset.asset.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/DrinkDataSo.asset.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/DrinkDataAsset.asset.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/EnvironmentDataAsset.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/EnvironmentDataAsset.asset new file mode 100644 index 000000000..fb6ab7893 --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/EnvironmentDataAsset.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9966134fed81dd3e3f7175f430cc1bc3051f33c8e3f624ea6250b13382080d3 +size 1537 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/EnvironmentDataSo.asset.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/EnvironmentDataAsset.asset.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/EnvironmentDataSo.asset.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/EnvironmentDataAsset.asset.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/FoodDataAsset.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/FoodDataAsset.asset new file mode 100644 index 000000000..a9119cd48 --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/FoodDataAsset.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c3e15e5cd97d76c812871adb467ca146e526d1705477e293b77683bdddf2cb6 +size 9435 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/FoodDataSo.asset.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/FoodDataAsset.asset.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/FoodDataSo.asset.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/FoodDataAsset.asset.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/IngredientDataAsset.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/IngredientDataAsset.asset new file mode 100644 index 000000000..c4cb34349 --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/IngredientDataAsset.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42a66890241adfb9d9f0a90caee3db1557bf8c579641a24bbe90ac8b3282d35d +size 1453 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/IngredientDataSo.asset.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/IngredientDataAsset.asset.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/IngredientDataSo.asset.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/IngredientDataAsset.asset.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/ItemDataAsset.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/ItemDataAsset.asset new file mode 100644 index 000000000..e5079a144 --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/ItemDataAsset.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad48880bc0769b0eed9efa2f55b970751e472b20408e69914ad2e596fc67b1d9 +size 5509 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/ItemDataSo.asset.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/ItemDataAsset.asset.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/ItemDataSo.asset.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/ItemDataAsset.asset.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/LevelDataAsset.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/LevelDataAsset.asset new file mode 100644 index 000000000..7f0bcf560 --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/LevelDataAsset.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5bd03372474b6d1e65c81112442a0e711ab17cfdaead841de59ec1690a8ec60a +size 2128 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/LevelDataSo.asset.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/LevelDataAsset.asset.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/LevelDataSo.asset.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/LevelDataAsset.asset.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/RecipeDataAsset.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/RecipeDataAsset.asset new file mode 100644 index 000000000..f03e22201 --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/RecipeDataAsset.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21a37b6a7ab2bf63c99ee6dc0f623bb93ff8d14d48530fe35e9c1cdb3b2a2c28 +size 2726 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/RecipeDataSo.asset.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/RecipeDataAsset.asset.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/RecipeDataSo.asset.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/RecipeDataAsset.asset.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/TasteDataAsset.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/TasteDataAsset.asset new file mode 100644 index 000000000..259151841 --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/TasteDataAsset.asset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad937bc3f4ebd929d825e7cea0815065459e05457a790e3fea23743ad33111a3 +size 1320 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/TasteDataSo.asset.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/TasteDataAsset.asset.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/TasteDataSo.asset.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Assets/TasteDataAsset.asset.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/BackUps/2025-08-28 12-54-27 by 남태건.json b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/BackUps/2025-08-28 12-54-27 by 남태건.json new file mode 100644 index 000000000..dac8797c0 --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/BackUps/2025-08-28 12-54-27 by 남태건.json @@ -0,0 +1,1759 @@ +{ + "$개요": [ + { + "": "Sweet" + }, + { + "": "Sour" + }, + { + "": "Bitter" + }, + { + "": "Salty" + }, + { + "": "SuperHot" + }, + { + "": "Savory" + }, + { + "": "Mild" + }, + { + "": "Warm" + }, + { + "": "Addictive" + }, + { + "": "Fish" + }, + { + "": "Vegetable" + }, + { + "": "Meat" + }, + { + "": "" + }, + { + "": "Soda" + }, + { + "": "MiddleDegree" + }, + { + "": "LowDegree" + }, + { + "": "NoneDegree" + }, + { + "": "WoodFlavor" + }, + { + "": "FruitFlavor" + } + ], + "Test": [ + { + "Id:string": "식별번호", + "CustomerLimitCount": "손님 최대 수", + "Customers:string": "등장 손님", + "Test": 2352, + "Tests": "" + }, + { + "Id:string": "customer_pool_001", + "CustomerLimitCount": 4, + "Customers:string": "customer_001", + "Test": 0, + "Tests": "테스트, 테스트2" + }, + { + "Id:string": "customer_pool_002", + "CustomerLimitCount": 7, + "Customers:string": "customer_001 | customer_002", + "Test": 3, + "Tests": "1 , 2" + }, + { + "Id:string": "customer_pool_003", + "CustomerLimitCount": 9, + "Customers:string": "customer_001 | customer_002 | customer_003", + "Test": 2, + "Tests": "5, 23,253" + }, + { + "Id:string": "customer_pool_004", + "CustomerLimitCount": 3, + "Customers:string": "customer_001", + "Test": "", + "Tests": "" + }, + { + "Id:string": "customer_pool_005", + "CustomerLimitCount": 3, + "Customers:string": "customer_001", + "Test": "", + "Tests": 435 + }, + { + "Id:string": "customer_pool_006", + "CustomerLimitCount": 3, + "Customers:string": "customer_001", + "Test": "", + "Tests": "" + }, + { + "Id:string": "special_customer_pool_001", + "CustomerLimitCount": 1, + "Customers:string": "special_customer_001", + "Test": "", + "Tests": "111|234" + } + ], + "Test_view": [ + { + "Id:string": "식별번호", + "CustomerLimitCount": "손님 최대 수", + "Customers1": "등장 손님1", + "Customers2": "등장 손님2", + "Customers3": "등장 손님3", + "Customers4": "등장 손님4", + "Customers5": "등장 손님5", + "Customers6": "등장 손님6", + "Test": 2352, + "Tests1": "Tests1", + "Tests2": "Tests2", + "Tests3": "Tests3" + }, + { + "Id:string": "customer_pool_001", + "CustomerLimitCount": 4, + "Customers1": "customer_001", + "Customers2": "", + "Customers3": "", + "Customers4": "", + "Customers5": "", + "Customers6": "", + "Test": 0, + "Tests1": "테스트", + "Tests2": "테스트2", + "Tests3": "" + }, + { + "Id:string": "customer_pool_002", + "CustomerLimitCount": 7, + "Customers1": "customer_001", + "Customers2": "customer_002", + "Customers3": "", + "Customers4": "", + "Customers5": "", + "Customers6": "", + "Test": 3, + "Tests1": 1, + "Tests2": 2, + "Tests3": "" + }, + { + "Id:string": "customer_pool_003", + "CustomerLimitCount": 9, + "Customers1": "customer_001", + "Customers2": "customer_002", + "Customers3": "customer_003", + "Customers4": "", + "Customers5": "", + "Customers6": "", + "Test": 2, + "Tests1": 5, + "Tests2": 23, + "Tests3": 253 + }, + { + "Id:string": "customer_pool_004", + "CustomerLimitCount": 3, + "Customers1": "customer_001", + "Customers2": "", + "Customers3": "", + "Customers4": "", + "Customers5": "", + "Customers6": "", + "Test": "", + "Tests1": "", + "Tests2": "", + "Tests3": "" + }, + { + "Id:string": "customer_pool_005", + "CustomerLimitCount": 3, + "Customers1": "customer_001", + "Customers2": "", + "Customers3": "", + "Customers4": "", + "Customers5": "", + "Customers6": "", + "Test": "", + "Tests1": 435, + "Tests2": "", + "Tests3": "" + }, + { + "Id:string": "customer_pool_006", + "CustomerLimitCount": 3, + "Customers1": "customer_001", + "Customers2": "", + "Customers3": "", + "Customers4": "", + "Customers5": "", + "Customers6": "", + "Test": "", + "Tests1": "", + "Tests2": "", + "Tests3": "" + }, + { + "Id:string": "special_customer_pool_001", + "CustomerLimitCount": 1, + "Customers1": "special_customer_001", + "Customers2": "", + "Customers3": "", + "Customers4": "", + "Customers5": "", + "Customers6": "", + "Test": "", + "Tests1": 111, + "Tests2": 234, + "Tests3": "" + } + ], + "LevelData": [ + { + "Id:string": "식별번호", + "Level": "레벨 or 평판", + "Area:string": "등장 지역", + "CustomerPool:string": "일반 손님 풀", + "SpecialCustomerPool:string": "스페셜 손님 풀", + "SpawnType:NativeEnum": "스폰 타입", + "CustomerRespawnTime": "손님 리스폰 시간", + "Exp": "손님 1명당 경험치", + "OrderTime": "주문 대기 인내심 카운트 시간", + "WaitTime": "주문 인내심 카운트 시간", + "EatingTime": "식사 소요시간" + }, + { + "Id:string": "Level001", + "Level": 1, + "Area:string": "Area1", + "CustomerPool:string": "customer_pool_001", + "SpecialCustomerPool:string": "", + "SpawnType:NativeEnum": "Random", + "CustomerRespawnTime": 6, + "Exp": 13, + "OrderTime": 30, + "WaitTime": 60, + "EatingTime": 6 + }, + { + "Id:string": "Level002", + "Level": 2, + "Area:string": "Area1", + "CustomerPool:string": "customer_pool_002", + "SpecialCustomerPool:string": "special_customer_pool_001", + "SpawnType:NativeEnum": "Random", + "CustomerRespawnTime": 6, + "Exp": 13, + "OrderTime": 30, + "WaitTime": 60, + "EatingTime": 6 + }, + { + "Id:string": "Level003", + "Level": 3, + "Area:string": "Area1", + "CustomerPool:string": "customer_pool_003", + "SpecialCustomerPool:string": "special_customer_pool_001", + "SpawnType:NativeEnum": "Regular", + "CustomerRespawnTime": 6, + "Exp": 13, + "OrderTime": 30, + "WaitTime": 60, + "EatingTime": 6 + }, + { + "Id:string": "Level004", + "Level": 4, + "Area:string": "Area2", + "CustomerPool:string": "customer_pool_004", + "SpecialCustomerPool:string": "special_customer_pool_001", + "SpawnType:NativeEnum": "Regular", + "CustomerRespawnTime": 6, + "Exp": 13, + "OrderTime": 30, + "WaitTime": 60, + "EatingTime": 6 + }, + { + "Id:string": "Level005", + "Level": 5, + "Area:string": "Area2", + "CustomerPool:string": "customer_pool_005", + "SpecialCustomerPool:string": "special_customer_pool_001", + "SpawnType:NativeEnum": "Regular", + "CustomerRespawnTime": 6, + "Exp": 13, + "OrderTime": 30, + "WaitTime": 60, + "EatingTime": 6 + }, + { + "Id:string": "Level006", + "Level": 6, + "Area:string": "Area2", + "CustomerPool:string": "customer_pool_006", + "SpecialCustomerPool:string": "special_customer_pool_001", + "SpawnType:NativeEnum": "Random", + "CustomerRespawnTime": 6, + "Exp": 13, + "OrderTime": 30, + "WaitTime": 60, + "EatingTime": 6 + } + ], + "CustomerData": [ + { + "Id:string": "식별번호", + "CustomerType:NativeEnum": "손님 타입", + "#Name": "이름", + "SpineSkinKey": "스파인 스킨 키 값", + "FavoriteTastes": "선호 맛들" + }, + { + "Id:string": "customer_001", + "CustomerType:NativeEnum": "Normal", + "#Name": "유령1", + "SpineSkinKey": "Casper", + "FavoriteTastes": "" + }, + { + "Id:string": "customer_002", + "CustomerType:NativeEnum": "Normal", + "#Name": "유령2", + "SpineSkinKey": "CasperBlack", + "FavoriteTastes": "" + }, + { + "Id:string": "customer_003", + "CustomerType:NativeEnum": "Normal", + "#Name": "유령3", + "SpineSkinKey": "PumkinHead", + "FavoriteTastes": "" + }, + { + "Id:string": "special_customer_001", + "CustomerType:NativeEnum": "Special", + "#Name": "차이", + "SpineSkinKey": "", + "FavoriteTastes": "" + } + ], + "CustomerPoolData": [ + { + "Id:string": "식별번호", + "CustomerLimitCount": "손님 최대 수", + "Customers:string": "등장 손님들" + }, + { + "Id:string": "customer_pool_001", + "CustomerLimitCount": 4, + "Customers:string": "customer_001" + }, + { + "Id:string": "customer_pool_002", + "CustomerLimitCount": 7, + "Customers:string": "customer_001, customer_002" + }, + { + "Id:string": "customer_pool_003", + "CustomerLimitCount": 9, + "Customers:string": "customer_001, customer_002, customer_003" + }, + { + "Id:string": "customer_pool_004", + "CustomerLimitCount": 3, + "Customers:string": "customer_001" + }, + { + "Id:string": "customer_pool_005", + "CustomerLimitCount": 3, + "Customers:string": "customer_001" + }, + { + "Id:string": "customer_pool_006", + "CustomerLimitCount": 3, + "Customers:string": "customer_001" + }, + { + "Id:string": "special_customer_pool_001", + "CustomerLimitCount": 1, + "Customers:string": "special_customer_001" + } + ], + "ItemData": [ + { + "Id": "식별번호", + "ItemType:NativeEnum": "아이템타입1" + }, + { + "Id": "item_food_001", + "ItemType:NativeEnum": "Food" + }, + { + "Id": "item_food_002", + "ItemType:NativeEnum": "Food" + }, + { + "Id": "item_food_003", + "ItemType:NativeEnum": "Food" + }, + { + "Id": "item_food_004", + "ItemType:NativeEnum": "Food" + }, + { + "Id": "item_food_005", + "ItemType:NativeEnum": "Food" + }, + { + "Id": "item_food_006", + "ItemType:NativeEnum": "Food" + }, + { + "Id": "item_food_007", + "ItemType:NativeEnum": "Food" + }, + { + "Id": "item_food_008", + "ItemType:NativeEnum": "Food" + }, + { + "Id": "item_food_009", + "ItemType:NativeEnum": "Food" + }, + { + "Id": "item_food_010", + "ItemType:NativeEnum": "Food" + }, + { + "Id": "item_food_011", + "ItemType:NativeEnum": "Food" + }, + { + "Id": "item_food_012", + "ItemType:NativeEnum": "Food" + }, + { + "Id": "item_food_013", + "ItemType:NativeEnum": "Food" + }, + { + "Id": "item_food_014", + "ItemType:NativeEnum": "Food" + }, + { + "Id": "item_food_015", + "ItemType:NativeEnum": "Food" + }, + { + "Id": "item_food_016", + "ItemType:NativeEnum": "Food" + }, + { + "Id": "item_food_017", + "ItemType:NativeEnum": "Food" + }, + { + "Id": "item_food_018", + "ItemType:NativeEnum": "Food" + }, + { + "Id": "item_food_019", + "ItemType:NativeEnum": "Food" + }, + { + "Id": "item_food_020", + "ItemType:NativeEnum": "Food" + }, + { + "Id": "item_ingredient_001", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_ingredient_002", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_ingredient_003", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_ingredient_004", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_ingredient_005", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_ingredient_006", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_ingredient_007", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_ingredient_008", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_ingredient_009", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_ingredient_010", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_ingredient_011", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_ingredient_012", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_ingredient_013", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_ingredient_014", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_ingredient_015", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_ingredient_016", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_ingredient_017", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_ingredient_018", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_ingredient_019", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_ingredient_020", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_ingredient_021", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_ingredient_022", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_ingredient_023", + "ItemType:NativeEnum": "Ingredient" + }, + { + "Id": "item_environment_001", + "ItemType:NativeEnum": "Environment" + }, + { + "Id": "item_environment_002", + "ItemType:NativeEnum": "Environment" + }, + { + "Id": "item_environment_003", + "ItemType:NativeEnum": "Environment" + }, + { + "Id": "item_environment_004", + "ItemType:NativeEnum": "Environment" + }, + { + "Id": "item_environment_005", + "ItemType:NativeEnum": "Environment" + }, + { + "Id": "item_environment_cookware_001", + "ItemType:NativeEnum": "Environment" + }, + { + "Id": "item_environment_cookware_002", + "ItemType:NativeEnum": "Environment" + }, + { + "Id": "item_environment_cookware_003", + "ItemType:NativeEnum": "Environment" + }, + { + "Id": "item_environment_cookware_004", + "ItemType:NativeEnum": "Environment" + }, + { + "Id": "item_environment_cookware_005", + "ItemType:NativeEnum": "Environment" + }, + { + "Id": "item_environment_cookware_006", + "ItemType:NativeEnum": "Environment" + }, + { + "Id": "item_environment_cookware_007", + "ItemType:NativeEnum": "Environment" + }, + { + "Id": "item_environment_cookware_008", + "ItemType:NativeEnum": "Environment" + }, + { + "Id": "item_drink_001", + "ItemType:NativeEnum": "Drink" + }, + { + "Id": "item_drink_002", + "ItemType:NativeEnum": "Drink" + }, + { + "Id": "item_drink_003", + "ItemType:NativeEnum": "Drink" + }, + { + "Id": "item_drink_004", + "ItemType:NativeEnum": "Drink" + }, + { + "Id": "item_food_recipe_001", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_food_recipe_002", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_food_recipe_003", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_food_recipe_004", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_food_recipe_005", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_food_recipe_006", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_food_recipe_007", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_food_recipe_008", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_food_recipe_009", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_food_recipe_010", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_food_recipe_011", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_food_recipe_012", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_food_recipe_013", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_food_recipe_014", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_food_recipe_015", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_food_recipe_016", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_food_recipe_017", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_food_recipe_018", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_food_recipe_019", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_food_recipe_020", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_drink_recipe_001", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_drink_recipe_002", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_drink_recipe_003", + "ItemType:NativeEnum": "Recipe" + }, + { + "Id": "item_drink_recipe_004", + "ItemType:NativeEnum": "Recipe" + } + ], + "RecipeData": [ + { + "Id:string": "식별ID", + "#Name": "이름", + "RecipeType:NativeEnum": "레시피타입", + "RecipeResult:string": "완성 메뉴" + }, + { + "Id:string": "item_food_recipe_001", + "#Name": "블루 스튜 레시피", + "RecipeType:NativeEnum": "FoodRecipe", + "RecipeResult:string": "item_food_001" + }, + { + "Id:string": "item_food_recipe_002", + "#Name": "햇빛 스튜 레시피", + "RecipeType:NativeEnum": "FoodRecipe", + "RecipeResult:string": "item_food_002" + }, + { + "Id:string": "item_food_recipe_003", + "#Name": "심해기억 스튜 레시피", + "RecipeType:NativeEnum": "FoodRecipe", + "RecipeResult:string": "item_food_003" + }, + { + "Id:string": "item_food_recipe_004", + "#Name": "치킨 굴라쉬 레시피", + "RecipeType:NativeEnum": "FoodRecipe", + "RecipeResult:string": "item_food_004" + }, + { + "Id:string": "item_food_recipe_005", + "#Name": "꿈해초 크로켓 레시피", + "RecipeType:NativeEnum": "FoodRecipe", + "RecipeResult:string": "item_food_005" + }, + { + "Id:string": "item_food_recipe_006", + "#Name": "선라이즈 당근카츠 레시피", + "RecipeType:NativeEnum": "FoodRecipe", + "RecipeResult:string": "item_food_006" + }, + { + "Id:string": "item_food_recipe_007", + "#Name": "미정", + "RecipeType:NativeEnum": "FoodRecipe", + "RecipeResult:string": "item_food_007" + }, + { + "Id:string": "item_food_recipe_008", + "#Name": "비늘치킨덕 레시피", + "RecipeType:NativeEnum": "FoodRecipe", + "RecipeResult:string": "item_food_008" + }, + { + "Id:string": "item_food_recipe_009", + "#Name": "화룡장어 구이 레시피", + "RecipeType:NativeEnum": "FoodRecipe", + "RecipeResult:string": "item_food_009" + }, + { + "Id:string": "item_food_recipe_010", + "#Name": "미정", + "RecipeType:NativeEnum": "FoodRecipe", + "RecipeResult:string": "item_food_010" + }, + { + "Id:string": "item_food_recipe_011", + "#Name": "바다의선물 레시피", + "RecipeType:NativeEnum": "FoodRecipe", + "RecipeResult:string": "item_food_011" + }, + { + "Id:string": "item_food_recipe_012", + "#Name": "유령새우회 레시피", + "RecipeType:NativeEnum": "FoodRecipe", + "RecipeResult:string": "item_food_012" + }, + { + "Id:string": "item_food_recipe_013", + "#Name": "비늘초무침 레시피", + "RecipeType:NativeEnum": "FoodRecipe", + "RecipeResult:string": "item_food_013" + }, + { + "Id:string": "item_food_recipe_014", + "#Name": "쫀징어 냉채 레시피", + "RecipeType:NativeEnum": "FoodRecipe", + "RecipeResult:string": "item_food_014" + }, + { + "Id:string": "item_food_recipe_015", + "#Name": "쫀징어링 레시피", + "RecipeType:NativeEnum": "FoodRecipe", + "RecipeResult:string": "item_food_015" + }, + { + "Id:string": "item_food_recipe_016", + "#Name": "꿈해파리 볶음 레시피", + "RecipeType:NativeEnum": "FoodRecipe", + "RecipeResult:string": "item_food_016" + }, + { + "Id:string": "item_food_recipe_017", + "#Name": "페퍼포칼립스 레시피", + "RecipeType:NativeEnum": "FoodRecipe", + "RecipeResult:string": "item_food_017" + }, + { + "Id:string": "item_food_recipe_018", + "#Name": "미정", + "RecipeType:NativeEnum": "FoodRecipe", + "RecipeResult:string": "item_food_018" + }, + { + "Id:string": "item_food_recipe_019", + "#Name": "미정", + "RecipeType:NativeEnum": "FoodRecipe", + "RecipeResult:string": "item_food_019" + }, + { + "Id:string": "item_food_recipe_020", + "#Name": "미정", + "RecipeType:NativeEnum": "FoodRecipe", + "RecipeResult:string": "item_food_020" + }, + { + "Id:string": "item_drink_recipe_001", + "#Name": "토마토 주스 레시피", + "RecipeType:NativeEnum": "DrinkRecipe", + "RecipeResult:string": "item_drink_001" + }, + { + "Id:string": "item_drink_recipe_002", + "#Name": "오렌지 주스 레시피", + "RecipeType:NativeEnum": "DrinkRecipe", + "RecipeResult:string": "item_drink_002" + }, + { + "Id:string": "item_drink_recipe_003", + "#Name": "여신의눈물 레시피", + "RecipeType:NativeEnum": "DrinkRecipe", + "RecipeResult:string": "item_drink_003" + }, + { + "Id:string": "item_drink_recipe_004", + "#Name": "라벨블루 레시피", + "RecipeType:NativeEnum": "DrinkRecipe", + "RecipeResult:string": "item_drink_004" + } + ], + "FoodData": [ + { + "Id:string": "식별ID", + "#Name": "이름", + "CookwareKey:string": "요리도구 키 값", + "CookTime:int": "요리시간", + "Price:int": "요리가격", + "IngredientKey1:string": "재료1", + "IngredientAmount1:string": "재료1 갯수", + "IngredientKey2:string": "재료2", + "IngredientAmount2:string": "재료2 갯수", + "IngredientKey3:string": "재료3", + "IngredientAmount3:string": "재료3 갯수", + "IngredientKey4:string": "재료4", + "IngredientAmount4:string": "재료4 갯수", + "TasteKey1:string": "맛 키1", + "TasteKey2:string": "맛 키2", + "TasteKey3:string": "맛 키3", + "TasteKey4:string": "맛 키4", + "TasteKey5:string": "맛 키5", + "TasteKey6:string": "맛 키6" + }, + { + "Id:string": "item_food_001", + "#Name": "블루 스튜", + "CookwareKey:string": "item_environment_cookware_001", + "CookTime:int": 7, + "Price:int": 10, + "IngredientKey1:string": "item_ingredient_001", + "IngredientAmount1:string": 1, + "IngredientKey2:string": "item_ingredient_002", + "IngredientAmount2:string": 1, + "IngredientKey3:string": "", + "IngredientAmount3:string": "", + "IngredientKey4:string": "", + "IngredientAmount4:string": "", + "TasteKey1:string": "Sweet", + "TasteKey2:string": "Warm", + "TasteKey3:string": "Vegetable", + "TasteKey4:string": "", + "TasteKey5:string": "", + "TasteKey6:string": "" + }, + { + "Id:string": "item_food_002", + "#Name": "햇빛 스튜", + "CookwareKey:string": "item_environment_cookware_001", + "CookTime:int": 7, + "Price:int": 20, + "IngredientKey1:string": "item_ingredient_002", + "IngredientAmount1:string": 1, + "IngredientKey2:string": "item_ingredient_003", + "IngredientAmount2:string": 1, + "IngredientKey3:string": "", + "IngredientAmount3:string": "", + "IngredientKey4:string": "", + "IngredientAmount4:string": "", + "TasteKey1:string": "Sweet", + "TasteKey2:string": "Bitter", + "TasteKey3:string": "Warm", + "TasteKey4:string": "Vegetable", + "TasteKey5:string": "", + "TasteKey6:string": "" + }, + { + "Id:string": "item_food_003", + "#Name": "심해기억 스튜", + "CookwareKey:string": "item_environment_cookware_001", + "CookTime:int": 7, + "Price:int": 15, + "IngredientKey1:string": "item_ingredient_002", + "IngredientAmount1:string": 1, + "IngredientKey2:string": "item_ingredient_004", + "IngredientAmount2:string": 2, + "IngredientKey3:string": "", + "IngredientAmount3:string": "", + "IngredientKey4:string": "", + "IngredientAmount4:string": "", + "TasteKey1:string": "Salty", + "TasteKey2:string": "Mild", + "TasteKey3:string": "Vegetable", + "TasteKey4:string": "", + "TasteKey5:string": "", + "TasteKey6:string": "" + }, + { + "Id:string": "item_food_004", + "#Name": "치킨 굴라쉬", + "CookwareKey:string": "item_environment_cookware_001", + "CookTime:int": 10, + "Price:int": 30, + "IngredientKey1:string": "item_ingredient_005", + "IngredientAmount1:string": 1, + "IngredientKey2:string": "item_ingredient_006", + "IngredientAmount2:string": 2, + "IngredientKey3:string": "item_ingredient_007", + "IngredientAmount3:string": 1, + "IngredientKey4:string": "", + "IngredientAmount4:string": "", + "TasteKey1:string": "Salty", + "TasteKey2:string": "Sweet", + "TasteKey3:string": "Addictive", + "TasteKey4:string": "Vegetable", + "TasteKey5:string": "", + "TasteKey6:string": "" + }, + { + "Id:string": "item_food_005", + "#Name": "꿈해초 크로켓", + "CookwareKey:string": "item_environment_cookware_002", + "CookTime:int": 5, + "Price:int": 20, + "IngredientKey1:string": "item_ingredient_007", + "IngredientAmount1:string": 1, + "IngredientKey2:string": "item_ingredient_008", + "IngredientAmount2:string": 1, + "IngredientKey3:string": "item_ingredient_009", + "IngredientAmount3:string": 1, + "IngredientKey4:string": "", + "IngredientAmount4:string": "", + "TasteKey1:string": "Sour", + "TasteKey2:string": "Salty", + "TasteKey3:string": "Mild", + "TasteKey4:string": "", + "TasteKey5:string": "", + "TasteKey6:string": "" + }, + { + "Id:string": "item_food_006", + "#Name": "선라이즈 당근카츠", + "CookwareKey:string": "item_environment_cookware_002", + "CookTime:int": 5, + "Price:int": 30, + "IngredientKey1:string": "item_ingredient_003", + "IngredientAmount1:string": 1, + "IngredientKey2:string": "item_ingredient_007", + "IngredientAmount2:string": 1, + "IngredientKey3:string": "item_ingredient_009", + "IngredientAmount3:string": 1, + "IngredientKey4:string": "item_ingredient_010", + "IngredientAmount4:string": 1, + "TasteKey1:string": "Sweet", + "TasteKey2:string": "Sour", + "TasteKey3:string": "Warm", + "TasteKey4:string": "Savory", + "TasteKey5:string": "", + "TasteKey6:string": "" + }, + { + "Id:string": "item_food_007", + "#Name": "미정", + "CookwareKey:string": "item_environment_cookware_002", + "CookTime:int": 5, + "Price:int": 30, + "IngredientKey1:string": "item_ingredient_011", + "IngredientAmount1:string": 1, + "IngredientKey2:string": "item_ingredient_008", + "IngredientAmount2:string": 1, + "IngredientKey3:string": "", + "IngredientAmount3:string": "", + "IngredientKey4:string": "", + "IngredientAmount4:string": "", + "TasteKey1:string": "", + "TasteKey2:string": "", + "TasteKey3:string": "", + "TasteKey4:string": "", + "TasteKey5:string": "", + "TasteKey6:string": "" + }, + { + "Id:string": "item_food_008", + "#Name": "비늘치킨덕", + "CookwareKey:string": "item_environment_cookware_003", + "CookTime:int": 6, + "Price:int": 30, + "IngredientKey1:string": "item_ingredient_012", + "IngredientAmount1:string": 1, + "IngredientKey2:string": "item_ingredient_013", + "IngredientAmount2:string": 1, + "IngredientKey3:string": "item_ingredient_007", + "IngredientAmount3:string": 1, + "IngredientKey4:string": "", + "IngredientAmount4:string": "", + "TasteKey1:string": "Salty", + "TasteKey2:string": "Mild", + "TasteKey3:string": "Addictive", + "TasteKey4:string": "Meat", + "TasteKey5:string": "", + "TasteKey6:string": "" + }, + { + "Id:string": "item_food_009", + "#Name": "화룡장어 구이", + "CookwareKey:string": "item_environment_cookware_003", + "CookTime:int": 6, + "Price:int": 15, + "IngredientKey1:string": "item_ingredient_014", + "IngredientAmount1:string": 1, + "IngredientKey2:string": "item_ingredient_015", + "IngredientAmount2:string": 1, + "IngredientKey3:string": "", + "IngredientAmount3:string": "", + "IngredientKey4:string": "", + "IngredientAmount4:string": "", + "TasteKey1:string": "Sweet", + "TasteKey2:string": "Mild", + "TasteKey3:string": "SuperHot", + "TasteKey4:string": "Fish", + "TasteKey5:string": "", + "TasteKey6:string": "" + }, + { + "Id:string": "item_food_010", + "#Name": "미정", + "CookwareKey:string": "item_environment_cookware_003", + "CookTime:int": 6, + "Price:int": 30, + "IngredientKey1:string": "item_ingredient_016", + "IngredientAmount1:string": 1, + "IngredientKey2:string": "item_ingredient_008", + "IngredientAmount2:string": 1, + "IngredientKey3:string": "", + "IngredientAmount3:string": "", + "IngredientKey4:string": "", + "IngredientAmount4:string": "", + "TasteKey1:string": "", + "TasteKey2:string": "", + "TasteKey3:string": "", + "TasteKey4:string": "", + "TasteKey5:string": "", + "TasteKey6:string": "" + }, + { + "Id:string": "item_food_011", + "#Name": "바다의선물", + "CookwareKey:string": "item_environment_cookware_004", + "CookTime:int": 5, + "Price:int": 10, + "IngredientKey1:string": "item_ingredient_002", + "IngredientAmount1:string": 1, + "IngredientKey2:string": "item_ingredient_003", + "IngredientAmount2:string": 1, + "IngredientKey3:string": "", + "IngredientAmount3:string": "", + "IngredientKey4:string": "", + "IngredientAmount4:string": "", + "TasteKey1:string": "Sweet", + "TasteKey2:string": "Mild", + "TasteKey3:string": "Vegetable", + "TasteKey4:string": "", + "TasteKey5:string": "", + "TasteKey6:string": "" + }, + { + "Id:string": "item_food_012", + "#Name": "유령새우회", + "CookwareKey:string": "item_environment_cookware_004", + "CookTime:int": 5, + "Price:int": 25, + "IngredientKey1:string": "item_ingredient_017", + "IngredientAmount1:string": 1, + "IngredientKey2:string": "item_ingredient_007", + "IngredientAmount2:string": 1, + "IngredientKey3:string": "item_ingredient_004", + "IngredientAmount3:string": 1, + "IngredientKey4:string": "", + "IngredientAmount4:string": "", + "TasteKey1:string": "Sweet", + "TasteKey2:string": "Salty", + "TasteKey3:string": "Addictive", + "TasteKey4:string": "Fish", + "TasteKey5:string": "", + "TasteKey6:string": "" + }, + { + "Id:string": "item_food_013", + "#Name": "비늘초무침", + "CookwareKey:string": "item_environment_cookware_004", + "CookTime:int": 5, + "Price:int": 45, + "IngredientKey1:string": "item_ingredient_018", + "IngredientAmount1:string": 1, + "IngredientKey2:string": "item_ingredient_003", + "IngredientAmount2:string": 1, + "IngredientKey3:string": "item_ingredient_007", + "IngredientAmount3:string": 1, + "IngredientKey4:string": "item_ingredient_010", + "IngredientAmount4:string": 2, + "TasteKey1:string": "Salty", + "TasteKey2:string": "Sour", + "TasteKey3:string": "Mild", + "TasteKey4:string": "Vegetable", + "TasteKey5:string": "", + "TasteKey6:string": "" + }, + { + "Id:string": "item_food_014", + "#Name": "쫀징어 냉채", + "CookwareKey:string": "item_environment_cookware_004", + "CookTime:int": 5, + "Price:int": 15, + "IngredientKey1:string": "item_ingredient_011", + "IngredientAmount1:string": 1, + "IngredientKey2:string": "item_ingredient_003", + "IngredientAmount2:string": 1, + "IngredientKey3:string": "", + "IngredientAmount3:string": "", + "IngredientKey4:string": "", + "IngredientAmount4:string": "", + "TasteKey1:string": "Salty", + "TasteKey2:string": "Vegetable", + "TasteKey3:string": "Fish", + "TasteKey4:string": "", + "TasteKey5:string": "", + "TasteKey6:string": "" + }, + { + "Id:string": "item_food_015", + "#Name": "쫀징어링", + "CookwareKey:string": "item_environment_cookware_005", + "CookTime:int": 8, + "Price:int": 25, + "IngredientKey1:string": "item_ingredient_011", + "IngredientAmount1:string": 1, + "IngredientKey2:string": "item_ingredient_007", + "IngredientAmount2:string": 1, + "IngredientKey3:string": "item_ingredient_015", + "IngredientAmount3:string": 1, + "IngredientKey4:string": "", + "IngredientAmount4:string": "", + "TasteKey1:string": "Salty", + "TasteKey2:string": "Sour", + "TasteKey3:string": "SuperHot", + "TasteKey4:string": "Fish", + "TasteKey5:string": "", + "TasteKey6:string": "" + }, + { + "Id:string": "item_food_016", + "#Name": "꿈해파리 볶음", + "CookwareKey:string": "item_environment_cookware_005", + "CookTime:int": 6, + "Price:int": 15, + "IngredientKey1:string": "item_ingredient_019", + "IngredientAmount1:string": 1, + "IngredientKey2:string": "item_ingredient_004", + "IngredientAmount2:string": 1, + "IngredientKey3:string": "", + "IngredientAmount3:string": "", + "IngredientKey4:string": "", + "IngredientAmount4:string": "", + "TasteKey1:string": "Salty", + "TasteKey2:string": "Sweet", + "TasteKey3:string": "Sour", + "TasteKey4:string": "", + "TasteKey5:string": "", + "TasteKey6:string": "" + }, + { + "Id:string": "item_food_017", + "#Name": "페퍼포칼립스", + "CookwareKey:string": "item_environment_cookware_005", + "CookTime:int": 6, + "Price:int": 25, + "IngredientKey1:string": "item_ingredient_012", + "IngredientAmount1:string": 1, + "IngredientKey2:string": "item_ingredient_015", + "IngredientAmount2:string": 1, + "IngredientKey3:string": "item_ingredient_008", + "IngredientAmount3:string": 1, + "IngredientKey4:string": "", + "IngredientAmount4:string": "", + "TasteKey1:string": "Sweet", + "TasteKey2:string": "SuperHot", + "TasteKey3:string": "Meat", + "TasteKey4:string": "Vegetable", + "TasteKey5:string": "", + "TasteKey6:string": "" + }, + { + "Id:string": "item_food_018", + "#Name": "미정", + "CookwareKey:string": "item_environment_cookware_006", + "CookTime:int": 0, + "Price:int": 0, + "IngredientKey1:string": "", + "IngredientAmount1:string": "", + "IngredientKey2:string": "", + "IngredientAmount2:string": "", + "IngredientKey3:string": "", + "IngredientAmount3:string": "", + "IngredientKey4:string": "", + "IngredientAmount4:string": "", + "TasteKey1:string": "", + "TasteKey2:string": "", + "TasteKey3:string": "", + "TasteKey4:string": "", + "TasteKey5:string": "", + "TasteKey6:string": "" + }, + { + "Id:string": "item_food_019", + "#Name": "미정", + "CookwareKey:string": "item_environment_cookware_006", + "CookTime:int": 0, + "Price:int": 0, + "IngredientKey1:string": "", + "IngredientAmount1:string": "", + "IngredientKey2:string": "", + "IngredientAmount2:string": "", + "IngredientKey3:string": "", + "IngredientAmount3:string": "", + "IngredientKey4:string": "", + "IngredientAmount4:string": "", + "TasteKey1:string": "", + "TasteKey2:string": "", + "TasteKey3:string": "", + "TasteKey4:string": "", + "TasteKey5:string": "", + "TasteKey6:string": "" + }, + { + "Id:string": "item_food_020", + "#Name": "미정", + "CookwareKey:string": "item_environment_cookware_006", + "CookTime:int": 0, + "Price:int": 0, + "IngredientKey1:string": "", + "IngredientAmount1:string": "", + "IngredientKey2:string": "", + "IngredientAmount2:string": "", + "IngredientKey3:string": "", + "IngredientAmount3:string": "", + "IngredientKey4:string": "", + "IngredientAmount4:string": "", + "TasteKey1:string": "", + "TasteKey2:string": "", + "TasteKey3:string": "", + "TasteKey4:string": "", + "TasteKey5:string": "", + "TasteKey6:string": "" + } + ], + "DrinkData": [ + { + "Id:string": "식별ID", + "#Name": "이름", + "CookwareKey:string": "요리도구 키 값", + "CookTime:int": "요리시간", + "Price:int": "요리가격", + "IngredientKey1:string": "재료1", + "IngredientAmount1:string": "재료1 갯수", + "IngredientKey2:string": "재료2", + "IngredientAmount2:string": "재료2 갯수", + "IngredientKey3:string": "재료3", + "IngredientAmount3:string": "재료3 갯수", + "IngredientKey4:string": "재료4", + "IngredientAmount4:string": "재료4 갯수", + "TasteKey1:string": "맛 키1", + "TasteKey2:string": "맛 키2", + "TasteKey3:string": "맛 키3", + "TasteKey4:string": "맛 키4", + "TasteKey5:string": "맛 키5", + "TasteKey6:string": "맛 키6" + }, + { + "Id:string": "item_drink_001", + "#Name": "토마토 주스", + "CookwareKey:string": "item_environment_cookware_007", + "CookTime:int": 1, + "Price:int": 10, + "IngredientKey1:string": "item_ingredient_006", + "IngredientAmount1:string": 1, + "IngredientKey2:string": "item_ingredient_021", + "IngredientAmount2:string": 1, + "IngredientKey3:string": "", + "IngredientAmount3:string": "", + "IngredientKey4:string": "", + "IngredientAmount4:string": "", + "TasteKey1:string": "NoneDegree", + "TasteKey2:string": "Soda", + "TasteKey3:string": "", + "TasteKey4:string": "", + "TasteKey5:string": "", + "TasteKey6:string": "" + }, + { + "Id:string": "item_drink_002", + "#Name": "오렌지 주스", + "CookwareKey:string": "item_environment_cookware_007", + "CookTime:int": 1, + "Price:int": 10, + "IngredientKey1:string": "item_ingredient_023", + "IngredientAmount1:string": 1, + "IngredientKey2:string": "item_ingredient_021", + "IngredientAmount2:string": 1, + "IngredientKey3:string": "", + "IngredientAmount3:string": "", + "IngredientKey4:string": "", + "IngredientAmount4:string": "", + "TasteKey1:string": "NoneDegree", + "TasteKey2:string": "Sour", + "TasteKey3:string": "", + "TasteKey4:string": "", + "TasteKey5:string": "", + "TasteKey6:string": "" + }, + { + "Id:string": "item_drink_003", + "#Name": "여신의눈물", + "CookwareKey:string": "item_environment_cookware_008", + "CookTime:int": 3, + "Price:int": 10, + "IngredientKey1:string": "item_ingredient_008", + "IngredientAmount1:string": 1, + "IngredientKey2:string": "item_ingredient_022", + "IngredientAmount2:string": 1, + "IngredientKey3:string": "", + "IngredientAmount3:string": "", + "IngredientKey4:string": "", + "IngredientAmount4:string": "", + "TasteKey1:string": "LowDegree", + "TasteKey2:string": "WoodFlavor", + "TasteKey3:string": "", + "TasteKey4:string": "", + "TasteKey5:string": "", + "TasteKey6:string": "" + }, + { + "Id:string": "item_drink_004", + "#Name": "라벨블루", + "CookwareKey:string": "item_environment_cookware_008", + "CookTime:int": 3, + "Price:int": 10, + "IngredientKey1:string": "item_ingredient_002", + "IngredientAmount1:string": 1, + "IngredientKey2:string": "item_ingredient_022", + "IngredientAmount2:string": 1, + "IngredientKey3:string": "", + "IngredientAmount3:string": "", + "IngredientKey4:string": "", + "IngredientAmount4:string": "", + "TasteKey1:string": "MiddleDegree", + "TasteKey2:string": "FruitFlavor", + "TasteKey3:string": "", + "TasteKey4:string": "", + "TasteKey5:string": "", + "TasteKey6:string": "" + } + ], + "IngredientData": [ + { + "Id:string": "식별ID", + "#Name": "이름" + }, + { + "Id:string": "item_ingredient_001", + "#Name": "극락쌀" + }, + { + "Id:string": "item_ingredient_002", + "#Name": "블루애플" + }, + { + "Id:string": "item_ingredient_003", + "#Name": "햇빛당근" + }, + { + "Id:string": "item_ingredient_004", + "#Name": "꿈꾸는 해초" + }, + { + "Id:string": "item_ingredient_005", + "#Name": "미정" + }, + { + "Id:string": "item_ingredient_006", + "#Name": "토마토" + }, + { + "Id:string": "item_ingredient_007", + "#Name": "천일염" + }, + { + "Id:string": "item_ingredient_008", + "#Name": "눈물" + }, + { + "Id:string": "item_ingredient_009", + "#Name": "밀가루" + }, + { + "Id:string": "item_ingredient_010", + "#Name": "식초" + }, + { + "Id:string": "item_ingredient_011", + "#Name": "쫀징어" + }, + { + "Id:string": "item_ingredient_012", + "#Name": "치타닭 고기 " + }, + { + "Id:string": "item_ingredient_013", + "#Name": "비늘오리 고기" + }, + { + "Id:string": "item_ingredient_014", + "#Name": "뱀장어" + }, + { + "Id:string": "item_ingredient_015", + "#Name": "불꽃 고추" + }, + { + "Id:string": "item_ingredient_016", + "#Name": "유령상어" + }, + { + "Id:string": "item_ingredient_017", + "#Name": "유령새우" + }, + { + "Id:string": "item_ingredient_018", + "#Name": "비늘발고둥" + }, + { + "Id:string": "item_ingredient_019", + "#Name": "홍해파리" + }, + { + "Id:string": "item_ingredient_020", + "#Name": "미정" + }, + { + "Id:string": "item_ingredient_021", + "#Name": "탄산수" + }, + { + "Id:string": "item_ingredient_022", + "#Name": "위스키" + }, + { + "Id:string": "item_ingredient_023", + "#Name": "오렌지" + } + ], + "CookwareData": [ + { + "Id:string": "식별ID", + "#Name": "이름", + "CookwareType:NativeEnum": "요리도구 타입" + }, + { + "Id:string": "item_environment_cookware_001", + "#Name": "냄비", + "CookwareType:NativeEnum": "Pot" + }, + { + "Id:string": "item_environment_cookware_002", + "#Name": "튀김", + "CookwareType:NativeEnum": "Fryer" + }, + { + "Id:string": "item_environment_cookware_003", + "#Name": "화로", + "CookwareType:NativeEnum": "Brazier" + }, + { + "Id:string": "item_environment_cookware_004", + "#Name": "", + "CookwareType:NativeEnum": "CuttingBoard" + }, + { + "Id:string": "item_environment_cookware_005", + "#Name": "", + "CookwareType:NativeEnum": "Griddle" + }, + { + "Id:string": "item_environment_cookware_006", + "#Name": "", + "CookwareType:NativeEnum": "MagicOven" + }, + { + "Id:string": "item_environment_cookware_007", + "#Name": "", + "CookwareType:NativeEnum": "JuiceMachine" + }, + { + "Id:string": "item_environment_cookware_008", + "#Name": "", + "CookwareType:NativeEnum": "Barrel" + } + ], + "TasteData": [ + { + "Id:string": "식별ID", + "#Name": "이름", + "TasteType:NativeEnum": "맛 종류" + }, + { + "Id:string": "Sweet", + "#Name": "단맛", + "TasteType:NativeEnum": "Sweet" + }, + { + "Id:string": "Warm", + "#Name": "따뜻한", + "TasteType:NativeEnum": "Warm" + }, + { + "Id:string": "Vegetable", + "#Name": "채류", + "TasteType:NativeEnum": "Vegetable" + }, + { + "Id:string": "Bitter", + "#Name": "쓴맛", + "TasteType:NativeEnum": "Bitter" + }, + { + "Id:string": "Salty", + "#Name": "짠맛", + "TasteType:NativeEnum": "Salty" + }, + { + "Id:string": "Mild", + "#Name": "담백한", + "TasteType:NativeEnum": "Mild" + }, + { + "Id:string": "Addictive", + "#Name": "중독적인", + "TasteType:NativeEnum": "Addictive" + }, + { + "Id:string": "Sour", + "#Name": "신맛", + "TasteType:NativeEnum": "Sour" + }, + { + "Id:string": "Savory", + "#Name": "고소한", + "TasteType:NativeEnum": "Savory" + }, + { + "Id:string": "Meat", + "#Name": "육류", + "TasteType:NativeEnum": "Meat" + }, + { + "Id:string": "SuperHot", + "#Name": "핵불닭맛", + "TasteType:NativeEnum": "SuperHot" + }, + { + "Id:string": "Fish", + "#Name": "어류", + "TasteType:NativeEnum": "Fish" + }, + { + "Id:string": "NoneDegree", + "#Name": "도수가없는", + "TasteType:NativeEnum": "NoneDegree" + }, + { + "Id:string": "Soda", + "#Name": "탄산", + "TasteType:NativeEnum": "Soda" + }, + { + "Id:string": "LowDegree", + "#Name": "도수가낮은", + "TasteType:NativeEnum": "LowDegree" + }, + { + "Id:string": "WoodFlavor", + "#Name": "나무향", + "TasteType:NativeEnum": "WoodFlavor" + }, + { + "Id:string": "MiddleDegree", + "#Name": "도수가보통인", + "TasteType:NativeEnum": "MiddleDegree" + }, + { + "Id:string": "FruitFlavor", + "#Name": "과일향", + "TasteType:NativeEnum": "FruitFlavor" + } + ], + "EnvironmentData": [ + { + "Id": "식별번호", + "InteractionType:NativeEnum": "인터랙션타입", + "RendererType:Enum": "렌더러 타입", + "IsTrigger:int": "트리거 여부", + "SkeletonDataName:string": "스켈레톤 애니메이션 에셋 이름", + "SkinName:string": "스파인 스킨 이름", + "DefaultAnimationName:string": "", + "SpriteKey:string": "SpriteAtlas 키 값", + "Size:float": "유니티 내의 이미지 크기" + }, + { + "Id": "item_environment_001", + "InteractionType:NativeEnum": "None", + "RendererType:Enum": "Sprite", + "IsTrigger:int": 0, + "SkeletonDataName:string": "", + "SkinName:string": "", + "DefaultAnimationName:string": "", + "SpriteKey:string": "Barrel01", + "Size:float": 1 + }, + { + "Id": "item_environment_002", + "InteractionType:NativeEnum": "None", + "RendererType:Enum": "Spine", + "IsTrigger:int": 1, + "SkeletonDataName:string": "Coral_SkeletonData", + "SkinName:string": "Coral01", + "DefaultAnimationName:string": "Coral01/Idle", + "SpriteKey:string": "", + "Size:float": 1 + }, + { + "Id": "item_environment_003", + "InteractionType:NativeEnum": "None", + "RendererType:Enum": "Spine", + "IsTrigger:int": 1, + "SkeletonDataName:string": "Coral_SkeletonData", + "SkinName:string": "Coral02", + "DefaultAnimationName:string": "Coral02/Idle", + "SpriteKey:string": "", + "Size:float": 1 + }, + { + "Id": "item_environment_004", + "InteractionType:NativeEnum": "None", + "RendererType:Enum": "Spine", + "IsTrigger:int": 1, + "SkeletonDataName:string": "SummerGrass01_SkeletonData", + "SkinName:string": "default", + "DefaultAnimationName:string": "Normal", + "SpriteKey:string": "", + "Size:float": 0.3 + }, + { + "Id": "item_environment_005", + "InteractionType:NativeEnum": "RestaurantManagement", + "RendererType:Enum": "Spine", + "IsTrigger:int": 0, + "SkeletonDataName:string": "", + "SkinName:string": "", + "DefaultAnimationName:string": "", + "SpriteKey:string": "", + "Size:float": 1 + } + ] +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/BackUps/2025-08-28 12-54-27 by 남태건.json.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/BackUps/2025-08-28 12-54-27 by 남태건.json.meta new file mode 100644 index 000000000..1628462d3 --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/BackUps/2025-08-28 12-54-27 by 남태건.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 90984e9ede7c85d45b0883295d7cff8a +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CookwareDataAsset.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CookwareDataAsset.cs new file mode 100644 index 000000000..aeae02f52 --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CookwareDataAsset.cs @@ -0,0 +1,23 @@ +// File: CookwareDataAsset.cs +using System.Collections.Generic; +using System.Linq; +using UnityEngine; + +namespace DDD +{ + [CreateAssetMenu(fileName = "CookwareDataAsset", menuName = "GoogleSheet/CookwareDataAsset")] + public class CookwareDataAsset : DataAsset + { + public bool TryGetValueByCookwareType(CookwareType cookwareType, out CookwareDataEntry cookwareDataEntry) + { + if (_datas == null) + { + cookwareDataEntry = null; + return false; + } + + cookwareDataEntry = _datas.FirstOrDefault(data => data != null && data.CookwareType == cookwareType); + return cookwareDataEntry != null; + } + } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CookwareDataSo.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CookwareDataAsset.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CookwareDataSo.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CookwareDataAsset.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CookwareData.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CookwareDataEntry.cs similarity index 93% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CookwareData.cs rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CookwareDataEntry.cs index d3e784c00..52afff5e3 100644 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CookwareData.cs +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CookwareDataEntry.cs @@ -18,7 +18,7 @@ public enum CookwareType } [Serializable] - public class CookwareData : IId + public class CookwareDataEntry : IId { /// 식별ID [Tooltip("식별ID")] diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CookwareData.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CookwareDataEntry.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CookwareData.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CookwareDataEntry.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CookwareDataSo.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CookwareDataSo.cs deleted file mode 100644 index 44f684862..000000000 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CookwareDataSo.cs +++ /dev/null @@ -1,23 +0,0 @@ -// File: CookwareDataSo.cs -using System.Collections.Generic; -using System.Linq; -using UnityEngine; - -namespace DDD -{ - [CreateAssetMenu(fileName = "CookwareDataSo", menuName = "GoogleSheet/CookwareDataSo")] - public class CookwareDataSo : DataSo - { - public bool TryGetValueByCookwareType(CookwareType cookwareType, out CookwareData cookwareData) - { - if (_datas == null) - { - cookwareData = null; - return false; - } - - cookwareData = _datas.FirstOrDefault(data => data != null && data.CookwareType == cookwareType); - return cookwareData != null; - } - } -} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerDataSo.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerDataAsset.cs similarity index 68% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerDataSo.cs rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerDataAsset.cs index ae0f0fb50..5fdf7b797 100644 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerDataSo.cs +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerDataAsset.cs @@ -3,8 +3,8 @@ namespace DDD { - [CreateAssetMenu(fileName = "CustomerDataSo", menuName = "GoogleSheet/CustomerDataSo")] - public class CustomerDataSo : DataSo + [CreateAssetMenu(fileName = "CustomerDataAsset", menuName = "GoogleSheet/CustomerDataAsset")] + public class CustomerDataAsset : DataAsset { protected override void Initialize() { diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerDataSo.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerDataAsset.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerDataSo.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerDataAsset.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerData.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerDataEntry.cs similarity index 95% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerData.cs rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerDataEntry.cs index a79054176..0a4d39d8e 100644 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerData.cs +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerDataEntry.cs @@ -15,7 +15,7 @@ public enum CustomerType } [Serializable] - public class CustomerData : IId + public class CustomerDataEntry : IId { /// 식별번호 [Tooltip("식별번호")] diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerData.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerDataEntry.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerData.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerDataEntry.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerPoolDataSo.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerPoolDataAsset.cs similarity index 66% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerPoolDataSo.cs rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerPoolDataAsset.cs index 076134084..c5bf87263 100644 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerPoolDataSo.cs +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerPoolDataAsset.cs @@ -3,8 +3,8 @@ namespace DDD { - [CreateAssetMenu(fileName = "CustomerPoolDataSo", menuName = "GoogleSheet/CustomerPoolDataSo")] - public class CustomerPoolDataSo : DataSo + [CreateAssetMenu(fileName = "CustomerPoolDataAsset", menuName = "GoogleSheet/CustomerPoolDataAsset")] + public class CustomerPoolDataAsset : DataAsset { protected override void Initialize() { diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerPoolDataSo.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerPoolDataAsset.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerPoolDataSo.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerPoolDataAsset.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerPoolData.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerPoolDataEntry.cs similarity index 93% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerPoolData.cs rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerPoolDataEntry.cs index 4ef4e3531..7340799c1 100644 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerPoolData.cs +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerPoolDataEntry.cs @@ -7,7 +7,7 @@ namespace DDD { [Serializable] - public class CustomerPoolData : IId + public class CustomerPoolDataEntry : IId { /// 식별번호 [Tooltip("식별번호")] diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerPoolData.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerPoolDataEntry.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerPoolData.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/CustomerPoolDataEntry.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/DrinkDataAsset.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/DrinkDataAsset.cs new file mode 100644 index 000000000..ee717ac6b --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/DrinkDataAsset.cs @@ -0,0 +1,9 @@ +// File: DrinkDataAsset.cs +using System.Collections.Generic; +using UnityEngine; + +namespace DDD +{ + [CreateAssetMenu(fileName = "DrinkDataAsset", menuName = "GoogleSheet/DrinkDataAsset")] + public class DrinkDataAsset : DataAsset { } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/DrinkDataSo.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/DrinkDataAsset.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/DrinkDataSo.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/DrinkDataAsset.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/FoodData.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/DrinkDataEntry.cs similarity index 98% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/FoodData.cs rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/DrinkDataEntry.cs index a8f5aecef..0c06242bc 100644 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/FoodData.cs +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/DrinkDataEntry.cs @@ -5,7 +5,7 @@ namespace DDD { [Serializable] - public class FoodData : IId + public class DrinkDataEntry : IId { /// 식별ID [Tooltip("식별ID")] diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/DrinkData.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/DrinkDataEntry.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/DrinkData.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/DrinkDataEntry.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/DrinkDataSo.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/DrinkDataSo.cs deleted file mode 100644 index 5e175481c..000000000 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/DrinkDataSo.cs +++ /dev/null @@ -1,9 +0,0 @@ -// File: DrinkDataSo.cs -using System.Collections.Generic; -using UnityEngine; - -namespace DDD -{ - [CreateAssetMenu(fileName = "DrinkDataSo", menuName = "GoogleSheet/DrinkDataSo")] - public class DrinkDataSo : DataSo { } -} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/EnvironmentDataAsset.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/EnvironmentDataAsset.cs new file mode 100644 index 000000000..18811836a --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/EnvironmentDataAsset.cs @@ -0,0 +1,9 @@ +// File: EnvironmentDataAsset.cs +using System.Collections.Generic; +using UnityEngine; + +namespace DDD +{ + [CreateAssetMenu(fileName = "EnvironmentDataAsset", menuName = "GoogleSheet/EnvironmentDataAsset")] + public class EnvironmentDataAsset : DataAsset { } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/EnvironmentDataSo.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/EnvironmentDataAsset.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/EnvironmentDataSo.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/EnvironmentDataAsset.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/EnvironmentData.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/EnvironmentDataEntry.cs similarity index 96% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/EnvironmentData.cs rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/EnvironmentDataEntry.cs index 7bcae5499..ed32a019a 100644 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/EnvironmentData.cs +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/EnvironmentDataEntry.cs @@ -12,7 +12,7 @@ public enum RendererType } [Serializable] - public class EnvironmentData : IId + public class EnvironmentDataEntry : IId { /// 식별번호 [Tooltip("식별번호")] diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/EnvironmentData.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/EnvironmentDataEntry.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/EnvironmentData.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/EnvironmentDataEntry.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/EnvironmentDataSo.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/EnvironmentDataSo.cs deleted file mode 100644 index aa5d3207e..000000000 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/EnvironmentDataSo.cs +++ /dev/null @@ -1,9 +0,0 @@ -// File: EnvironmentDataSo.cs -using System.Collections.Generic; -using UnityEngine; - -namespace DDD -{ - [CreateAssetMenu(fileName = "EnvironmentDataSo", menuName = "GoogleSheet/EnvironmentDataSo")] - public class EnvironmentDataSo : DataSo { } -} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/FoodDataAsset.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/FoodDataAsset.cs new file mode 100644 index 000000000..a6b3a54aa --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/FoodDataAsset.cs @@ -0,0 +1,9 @@ +// File: FoodDataAsset.cs +using System.Collections.Generic; +using UnityEngine; + +namespace DDD +{ + [CreateAssetMenu(fileName = "FoodDataAsset", menuName = "GoogleSheet/FoodDataAsset")] + public class FoodDataAsset : DataAsset { } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/FoodDataSo.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/FoodDataAsset.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/FoodDataSo.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/FoodDataAsset.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/DrinkData.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/FoodDataEntry.cs similarity index 98% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/DrinkData.cs rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/FoodDataEntry.cs index ce18e5dce..48cc24417 100644 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/DrinkData.cs +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/FoodDataEntry.cs @@ -5,7 +5,7 @@ namespace DDD { [Serializable] - public class DrinkData : IId + public class FoodDataEntry : IId { /// 식별ID [Tooltip("식별ID")] diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/FoodData.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/FoodDataEntry.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/FoodData.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/FoodDataEntry.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/FoodDataSo.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/FoodDataSo.cs deleted file mode 100644 index 3178bd192..000000000 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/FoodDataSo.cs +++ /dev/null @@ -1,9 +0,0 @@ -// File: FoodDataSo.cs -using System.Collections.Generic; -using UnityEngine; - -namespace DDD -{ - [CreateAssetMenu(fileName = "FoodDataSo", menuName = "GoogleSheet/FoodDataSo")] - public class FoodDataSo : DataSo { } -} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/IngredientDataAsset.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/IngredientDataAsset.cs new file mode 100644 index 000000000..37884cbee --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/IngredientDataAsset.cs @@ -0,0 +1,8 @@ +// +using UnityEngine; + +namespace DDD +{ + [CreateAssetMenu(fileName = "IngredientDataAsset", menuName = "GoogleSheet/IngredientDataAsset")] + public class IngredientDataAsset : DataAsset { } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/IngredientDataSo.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/IngredientDataAsset.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/IngredientDataSo.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/IngredientDataAsset.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/IngredientData.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/IngredientDataEntry.cs similarity index 85% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/IngredientData.cs rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/IngredientDataEntry.cs index ea776715a..90546185b 100644 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/IngredientData.cs +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/IngredientDataEntry.cs @@ -5,7 +5,7 @@ namespace DDD { [Serializable] - public class IngredientData : IId + public class IngredientDataEntry : IId { /// 식별ID [Tooltip("식별ID")] diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/IngredientData.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/IngredientDataEntry.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/IngredientData.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/IngredientDataEntry.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/IngredientDataSo.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/IngredientDataSo.cs deleted file mode 100644 index dda2cd047..000000000 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/IngredientDataSo.cs +++ /dev/null @@ -1,8 +0,0 @@ -// -using UnityEngine; - -namespace DDD -{ - [CreateAssetMenu(fileName = "IngredientDataSo", menuName = "GoogleSheet/IngredientDataSo")] - public class IngredientDataSo : DataSo { } -} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/ItemDataAsset.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/ItemDataAsset.cs new file mode 100644 index 000000000..aab668034 --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/ItemDataAsset.cs @@ -0,0 +1,9 @@ +// File: ItemDataAsset.cs +using System.Collections.Generic; +using UnityEngine; + +namespace DDD +{ + [CreateAssetMenu(fileName = "ItemDataAsset", menuName = "GoogleSheet/ItemDataAsset")] + public class ItemDataAsset : DataAsset { } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/ItemDataSo.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/ItemDataAsset.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/ItemDataSo.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/ItemDataAsset.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/ItemData.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/ItemDataEntry.cs similarity index 93% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/ItemData.cs rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/ItemDataEntry.cs index d4b5ba409..0681a2d51 100644 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/ItemData.cs +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/ItemDataEntry.cs @@ -15,7 +15,7 @@ public enum ItemType } [Serializable] - public class ItemData : IId + public class ItemDataEntry : IId { /// 식별번호 [Tooltip("식별번호")] diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/ItemData.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/ItemDataEntry.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/ItemData.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/ItemDataEntry.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/ItemDataSo.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/ItemDataSo.cs deleted file mode 100644 index c4183a6a6..000000000 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/ItemDataSo.cs +++ /dev/null @@ -1,9 +0,0 @@ -// File: ItemDataSo.cs -using System.Collections.Generic; -using UnityEngine; - -namespace DDD -{ - [CreateAssetMenu(fileName = "ItemDataSo", menuName = "GoogleSheet/ItemDataSo")] - public class ItemDataSo : DataSo { } -} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/LevelDataAsset.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/LevelDataAsset.cs new file mode 100644 index 000000000..cd57091b7 --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/LevelDataAsset.cs @@ -0,0 +1,8 @@ +// +using UnityEngine; + +namespace DDD +{ + [CreateAssetMenu(fileName = "LevelDataAsset", menuName = "GoogleSheet/LevelDataAsset")] + public class LevelDataAsset : DataAsset { } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/LevelDataSo.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/LevelDataAsset.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/LevelDataSo.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/LevelDataAsset.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/LevelData.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/LevelDataEntry.cs similarity index 97% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/LevelData.cs rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/LevelDataEntry.cs index ab2cbf1fa..4a9793af4 100644 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/LevelData.cs +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/LevelDataEntry.cs @@ -12,7 +12,7 @@ public enum SpawnType } [Serializable] - public class LevelData : IId + public class LevelDataEntry : IId { /// 식별번호 [Tooltip("식별번호")] diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/LevelData.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/LevelDataEntry.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/LevelData.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/LevelDataEntry.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/LevelDataSo.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/LevelDataSo.cs deleted file mode 100644 index 6f175d75d..000000000 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/LevelDataSo.cs +++ /dev/null @@ -1,8 +0,0 @@ -// -using UnityEngine; - -namespace DDD -{ - [CreateAssetMenu(fileName = "LevelDataSo", menuName = "GoogleSheet/LevelDataSo")] - public class LevelDataSo : DataSo { } -} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/RecipeDataAsset.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/RecipeDataAsset.cs new file mode 100644 index 000000000..26ced1dbf --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/RecipeDataAsset.cs @@ -0,0 +1,9 @@ +// File: RecipeDataAsset.cs +using System.Collections.Generic; +using UnityEngine; + +namespace DDD +{ + [CreateAssetMenu(fileName = "RecipeDataAsset", menuName = "GoogleSheet/RecipeDataAsset")] + public class RecipeDataAsset : DataAsset { } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/RecipeDataSo.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/RecipeDataAsset.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/RecipeDataSo.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/RecipeDataAsset.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/RecipeData.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/RecipeDataEntry.cs similarity index 93% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/RecipeData.cs rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/RecipeDataEntry.cs index a38afbd14..43ed11ea3 100644 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/RecipeData.cs +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/RecipeDataEntry.cs @@ -12,7 +12,7 @@ public enum RecipeType } [Serializable] - public class RecipeData : IId + public class RecipeDataEntry : IId { /// 식별ID [Tooltip("식별ID")] diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/RecipeData.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/RecipeDataEntry.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/RecipeData.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/RecipeDataEntry.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/RecipeDataSo.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/RecipeDataSo.cs deleted file mode 100644 index d82950b45..000000000 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/RecipeDataSo.cs +++ /dev/null @@ -1,9 +0,0 @@ -// File: RecipeDataSo.cs -using System.Collections.Generic; -using UnityEngine; - -namespace DDD -{ - [CreateAssetMenu(fileName = "RecipeDataSo", menuName = "GoogleSheet/RecipeDataSo")] - public class RecipeDataSo : DataSo { } -} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/TasteDataAsset.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/TasteDataAsset.cs new file mode 100644 index 000000000..077402fd0 --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/TasteDataAsset.cs @@ -0,0 +1,9 @@ +// File: TasteDataAsset.cs +using System.Collections.Generic; +using UnityEngine; + +namespace DDD +{ + [CreateAssetMenu(fileName = "TasteDataAsset", menuName = "GoogleSheet/TasteDataAsset")] + public class TasteDataAsset : DataAsset { } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/TasteDataSo.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/TasteDataAsset.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/TasteDataSo.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/TasteDataAsset.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/TasteData.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/TasteDataEntry.cs similarity index 95% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/TasteData.cs rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/TasteDataEntry.cs index 835cfe2e3..eb7b845fd 100644 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/TasteData.cs +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/TasteDataEntry.cs @@ -28,7 +28,7 @@ public enum TasteType } [Serializable] - public class TasteData : IId + public class TasteDataEntry : IId { /// 식별ID [Tooltip("식별ID")] diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/TasteData.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/TasteDataEntry.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/TasteData.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/TasteDataEntry.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/TasteDataSo.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/TasteDataSo.cs deleted file mode 100644 index 538f8533d..000000000 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Classes/TasteDataSo.cs +++ /dev/null @@ -1,9 +0,0 @@ -// File: TasteDataSo.cs -using System.Collections.Generic; -using UnityEngine; - -namespace DDD -{ - [CreateAssetMenu(fileName = "TasteDataSo", menuName = "GoogleSheet/TasteDataSo")] - public class TasteDataSo : DataSo { } -} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Logs/GoogleSheetChangeLog.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Logs/GoogleSheetChangeLog.asset index 77ef4281d..6c64975f1 100644 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Logs/GoogleSheetChangeLog.asset +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/Logs/GoogleSheetChangeLog.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a9bb03d45aa641d701bc2d8e978c6a353363fed2f8206bfd8ee5af63f9562cfc -size 736720 +oid sha256:28d20f9975e930a18df709d51f658df25780b25916edbd86478c68fb74446494 +size 797466 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/CookwareDataSo.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/CookwareDataSo.asset deleted file mode 100644 index e78767be5..000000000 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/CookwareDataSo.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:38b93c1a21f0361c1e0bb154afdc0a0d9103225195b9f0cedd26e74de126eb3f -size 1013 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/CustomerDataSo.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/CustomerDataSo.asset deleted file mode 100644 index 4f596e43f..000000000 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/CustomerDataSo.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:600b73b988d57a63d502145ba01feb5323df6b87ca7af17b795f220d5644019d -size 952 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/CustomerPoolDataSo.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/CustomerPoolDataSo.asset deleted file mode 100644 index 2a1e06063..000000000 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/CustomerPoolDataSo.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:744e0087510d2c2d522b5f894d684df478acfae5456ec547157af0c662c018f5 -size 1316 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/DrinkDataSo.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/DrinkDataSo.asset deleted file mode 100644 index 0373fbe90..000000000 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/DrinkDataSo.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3dfdc5570d516edbb7436c74cd98e4c4722fd4691afab34ba094b93a041dc2f9 -size 2212 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/EnvironmentDataSo.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/EnvironmentDataSo.asset deleted file mode 100644 index 98082d99f..000000000 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/EnvironmentDataSo.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:12badc6747a2bc25c321281b29f30d2397cd92a81d87cabed61151c0fb1a65bb -size 1534 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/FoodDataSo.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/FoodDataSo.asset deleted file mode 100644 index 31da407d7..000000000 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/FoodDataSo.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:12ddf4f70c6d37a1fb65c09de7281602c7d70f99255e3fe5d7aa198f6b829810 -size 9432 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/IngredientDataSo.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/IngredientDataSo.asset deleted file mode 100644 index a916baa64..000000000 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/IngredientDataSo.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:32cb5468e3b617ba50526c12255e072cfa8d658c73800a32a4ac852a37307f51 -size 1450 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/ItemDataSo.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/ItemDataSo.asset deleted file mode 100644 index 0cb1025ce..000000000 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/ItemDataSo.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6e75e05c2ca952b82d8b3204ebcd86ac4459c4d4a06b311a4ee99ebb8a39605e -size 5506 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/LevelDataSo.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/LevelDataSo.asset deleted file mode 100644 index 7db412a21..000000000 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/LevelDataSo.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:563078d8747c408ee7fd6442914fe4c071effe4ed8fcd1782cd9ddfbffb3890b -size 2125 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/RecipeDataSo.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/RecipeDataSo.asset deleted file mode 100644 index 1739578ea..000000000 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/RecipeDataSo.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cfb22ca245534fdd789d910626dd295eb2eb7abdbedfcb62c8927bdec52a8e79 -size 2723 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/TasteDataSo.asset b/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/TasteDataSo.asset deleted file mode 100644 index afe417bbc..000000000 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated/So/TasteDataSo.asset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d408dbe2e5bfcf05f5cb6c69620258d694b22a6924be0c1b90343908907b47f0 -size 1317 diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Implementations/CodeGeneration/CSharpCodeGenerator.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Implementations/CodeGeneration/CSharpCodeGenerator.cs index cbb43e4f0..4fbace293 100644 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Implementations/CodeGeneration/CSharpCodeGenerator.cs +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Implementations/CodeGeneration/CSharpCodeGenerator.cs @@ -83,8 +83,8 @@ public CodeGenerationResult Generate(string fullJson, IReadOnlyCollection {{ }} + [CreateAssetMenu(fileName = ""{safe}Asset"", menuName = ""GoogleSheet/{safe}Asset"")] + public class {safe}Asset : DataAsset<{safe}> {{ }} }}"; } @@ -193,7 +193,7 @@ private string GenerateDataClass(string rootNamespace, string className, JArray sb.AppendLine($"namespace {rootNamespace}"); sb.AppendLine("{"); sb.AppendLine(" [Serializable]"); - sb.AppendLine($" public class {safeClass} : IId"); + sb.AppendLine($" public class {safeClass}Entry : IId"); sb.AppendLine(" {"); foreach (var prop in sampleRow.Properties()) diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Implementations/Synchronization/SoSynchronizer.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Implementations/Synchronization/AssetSynchronizer.cs similarity index 63% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Implementations/Synchronization/SoSynchronizer.cs rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Implementations/Synchronization/AssetSynchronizer.cs index e87b903ff..4e6f7034d 100644 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Implementations/Synchronization/SoSynchronizer.cs +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Implementations/Synchronization/AssetSynchronizer.cs @@ -10,15 +10,15 @@ namespace DDD { - public sealed class SoSynchronizer : ISoSynchronizer + public sealed class AssetSynchronizer : IAssetSynchronizer { private readonly IValueConverterRegistry _converter; private readonly List _updatedPaths = new(); - public IReadOnlyList UpdatedSoAssetPaths => _updatedPaths; + public IReadOnlyList AssetUpdatedAssetPaths => _updatedPaths; - public SoSynchronizer(IValueConverterRegistry converter) => _converter = converter; + public AssetSynchronizer(IValueConverterRegistry converter) => _converter = converter; - public bool SynchronizeAll(string fullJson, IReadOnlyCollection selectedSheets, string rootNamespace, string soFolderAssetPath) + public bool SynchronizeAll(string fullJson, IReadOnlyCollection selectedSheets, string rootNamespace, string assetFolderAssetPath) { _updatedPaths.Clear(); if (string.IsNullOrEmpty(fullJson)) return false; @@ -27,8 +27,8 @@ public bool SynchronizeAll(string fullJson, IReadOnlyCollection selected bool allSuccess = true; // 폴더 보장 - if (!AssetDatabase.IsValidFolder(soFolderAssetPath)) - CreateFolderRecursive(soFolderAssetPath); + if (!AssetDatabase.IsValidFolder(assetFolderAssetPath)) + CreateFolderRecursive(assetFolderAssetPath); // 타입 캐시 var types = AppDomain.CurrentDomain.GetAssemblies() @@ -40,38 +40,38 @@ public bool SynchronizeAll(string fullJson, IReadOnlyCollection selected .GroupBy(t => t.Name) .ToDictionary(g => g.Key, g => g.First()); - Debug.Log($"[SoSync] soFolder={soFolderAssetPath}"); - Debug.Log($"[SoSync] selected: {string.Join(", ", selectedSheets)}"); + Debug.Log($"[AssetSynchronizer] assetFolder={assetFolderAssetPath}"); + Debug.Log($"[AssetSynchronizer] selected: {string.Join(", ", selectedSheets)}"); foreach (var pair in root) { string sheet = pair.Key; if (!selectedSheets.Contains(sheet)) { - Debug.Log($"[SoSync] SKIP(not selected): {sheet}"); + Debug.Log($"[AssetSynchronizer] SKIP(not selected): {sheet}"); continue; } - types.TryGetValue(sheet, out var dataType); - types.TryGetValue($"{sheet}So", out var soType); - if (dataType == null || soType == null) + types.TryGetValue($"{sheet}Entry", out var dataType); + types.TryGetValue($"{sheet}Asset", out var assetType); + if (dataType == null || assetType == null) { - Debug.LogWarning($"[SoSynchronizer] 타입 누락: {sheet} (data={dataType}, so={soType})"); + Debug.LogWarning($"[AssetSynchronizer] 타입 누락: {sheet} (entry={dataType}, asset={assetType})"); allSuccess = false; continue; } - string soAssetPath = $"{soFolderAssetPath}/{sheet}So.asset"; - var so = AssetDatabase.LoadAssetAtPath(soAssetPath); - if (so == null) + string assetPath = $"{assetFolderAssetPath}/{sheet}Asset.asset"; + var asset = AssetDatabase.LoadAssetAtPath(assetPath); + if (asset == null) { - Debug.Log($"[SoSync] CREATE SO: {soAssetPath}"); - so = ScriptableObject.CreateInstance(soType); - AssetDatabase.CreateAsset(so, soAssetPath); + Debug.Log($"[AssetSynchronizer] CREATE SO: {assetPath}"); + asset = ScriptableObject.CreateInstance(assetType); + AssetDatabase.CreateAsset(asset, assetPath); } else { - Debug.Log($"[SoSync] FOUND SO: {soAssetPath}"); + Debug.Log($"[AssetSynchronizer] FOUND SO: {assetPath}"); } var list = (IList)Activator.CreateInstance(typeof(List<>).MakeGenericType(dataType)); @@ -102,30 +102,30 @@ public bool SynchronizeAll(string fullJson, IReadOnlyCollection selected } else { - Debug.LogWarning($"[SoSynchronizer] 변환 실패: {sheet}.{field} -> {targetType?.Name} (원본:'{prop.Value}')"); + Debug.LogWarning($"[AssetSynchronizer] 변환 실패: {sheet}.{field} -> {targetType?.Name} (원본:'{prop.Value}')"); } } catch (Exception e) { - Debug.LogWarning($"[SoSynchronizer] 값 할당 예외: {sheet}.{field} -> {e.Message}"); + Debug.LogWarning($"[AssetSynchronizer] 값 할당 예외: {sheet}.{field} -> {e.Message}"); } } list.Add(inst); } - var setMethod = soType.GetMethod("SetDataList", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); + var setMethod = assetType.GetMethod("SetDataList", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); if (setMethod == null) { - Debug.LogError($"{soType.Name}에 SetDataList 메서드가 없습니다."); + Debug.LogError($"{assetType.Name}에 SetDataList 메서드가 없습니다."); allSuccess = false; continue; } - Debug.Log($"[SoSync] INVOKE SetDataList for {sheet} (rows={(pair.Value as JArray)?.Count ?? 0})"); + Debug.Log($"[AssetSynchronizer] INVOKE SetDataList for {sheet} (rows={(pair.Value as JArray)?.Count ?? 0})"); - setMethod.Invoke(so, new object[] { list }); - EditorUtility.SetDirty(so); - _updatedPaths.Add(soAssetPath); + setMethod.Invoke(asset, new object[] { list }); + EditorUtility.SetDirty(asset); + _updatedPaths.Add(assetPath); } AssetDatabase.SaveAssets(); diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Implementations/Synchronization/SoSynchronizer.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Implementations/Synchronization/AssetSynchronizer.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Implementations/Synchronization/SoSynchronizer.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Implementations/Synchronization/AssetSynchronizer.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Interfaces/IAssetSynchronizer.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Interfaces/IAssetSynchronizer.cs new file mode 100644 index 000000000..dd2d70411 --- /dev/null +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Interfaces/IAssetSynchronizer.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace DDD +{ + public interface IAssetSynchronizer + { + IReadOnlyList AssetUpdatedAssetPaths { get; } + bool SynchronizeAll(string fullJson, IReadOnlyCollection selectedSheets, string rootNamespace, string assetFolderAssetPath); + } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Interfaces/ISoSynchronizer.cs.meta b/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Interfaces/IAssetSynchronizer.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Interfaces/ISoSynchronizer.cs.meta rename to Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Interfaces/IAssetSynchronizer.cs.meta diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Interfaces/ISoSynchronizer.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Interfaces/ISoSynchronizer.cs deleted file mode 100644 index ba3e21323..000000000 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Interfaces/ISoSynchronizer.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Collections.Generic; - -namespace DDD -{ - public interface ISoSynchronizer - { - IReadOnlyList UpdatedSoAssetPaths { get; } - bool SynchronizeAll(string fullJson, IReadOnlyCollection selectedSheets, string rootNamespace, string soFolderAssetPath); - } -} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Manager/GoogleSheetManager.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Manager/GoogleSheetManager.cs index dc32b3e26..7cbdc8ee6 100644 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Manager/GoogleSheetManager.cs +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Manager/GoogleSheetManager.cs @@ -31,7 +31,7 @@ public class GoogleSheetManager : ScriptableObject private IJsonDiffer _differ; private ICodeGenerator _codeGenerator; private IValueConverterRegistry _converterRegistry; - private ISoSynchronizer _soSynchronizer; + private IAssetSynchronizer _assetSynchronizer; private IAddressablesRegistrar _addressablesRegistrar; private IVersionStore _versionStore; private IReloadCoordinator _reloadCoordinator; @@ -49,7 +49,7 @@ private void BuildServices() _differ = new NewtonsoftJsonDiffer(); _codeGenerator = new CSharpCodeGenerator(new DefaultTypeNameResolver()); _converterRegistry = new DefaultValueConverterRegistry(); - _soSynchronizer = new SoSynchronizer(_converterRegistry); + _assetSynchronizer = new AssetSynchronizer(_converterRegistry); _addressablesRegistrar = new AddressablesRegistrar(); _versionStore = new GoogleSheetChangeLogVersionStore(_settings.ChangeLogAssetPath); _reloadCoordinator = new SessionStateReloadCoordinator(); @@ -152,11 +152,11 @@ private async Task ContinueSoSync(string json, bool saveSnapshot) if (_settings.AutoCreateSheets != null) foreach (var s in _settings.AutoCreateSheets) selected.Add(s); if (_settings.SoSyncOnlySheets != null) foreach (var s in _settings.SoSyncOnlySheets) selected.Add(s); - bool ok = _soSynchronizer.SynchronizeAll(json, selected, _settings.RootNamespace, _settings.SoFolderAssetPath); + bool ok = _assetSynchronizer.SynchronizeAll(json, selected, _settings.RootNamespace, _settings.SoFolderAssetPath); if (_settings.AutoRegisterToAddressables) { - foreach (var soPath in _soSynchronizer.UpdatedSoAssetPaths) + foreach (var soPath in _assetSynchronizer.AssetUpdatedAssetPaths) _addressablesRegistrar.RegisterOrMoveEntry(soPath, _settings.AddressablesGroupName, _settings.AddressablesLabel); _addressablesRegistrar.SaveAll(); _addressablesRegistrar.BuildIfNeeded(_settings.AutoBuildAddressables); diff --git a/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Settings/GoogleSheetSettingsSo.cs b/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Settings/GoogleSheetSettingsSo.cs index 1a48c8dcc..9abb38765 100644 --- a/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Settings/GoogleSheetSettingsSo.cs +++ b/Assets/_DDD/_Scripts/GenerateGoogleSheet/Core/Settings/GoogleSheetSettingsSo.cs @@ -21,7 +21,7 @@ public class GoogleSheetSettingsSo : ScriptableObject [Header("출력 경로(모두 AssetPath, 한 곳만 바꾸면 연동)")] [SerializeField] private string _generateAssetBasePath = "Assets/_DDD/_Scripts/GenerateGoogleSheet/AutoCreated"; [SerializeField] private string _classesFolderName = "Classes"; - [SerializeField] private string _soFolderName = "So"; + [SerializeField] private string _assetFolderName = "Assets"; [SerializeField] private string _logsFolderName = "Logs"; [SerializeField] private string _backupsFolderName = "BackUps"; [SerializeField] private string _enumTypesFileName = "EnumTypes.cs"; @@ -30,7 +30,7 @@ public class GoogleSheetSettingsSo : ScriptableObject public string GenerateAssetBasePath => _generateAssetBasePath; public string ClassesFolderAssetPath => CombineAsset(_generateAssetBasePath, _classesFolderName); - public string SoFolderAssetPath => CombineAsset(_generateAssetBasePath, _soFolderName); + public string SoFolderAssetPath => CombineAsset(_generateAssetBasePath, _assetFolderName); public string LogsFolderAssetPath => CombineAsset(_generateAssetBasePath, _logsFolderName); public string BackupsFolderAssetPath => CombineAsset(_generateAssetBasePath, _backupsFolderName); public string EnumTypesAssetPath => CombineAsset(_generateAssetBasePath, _enumTypesFileName); @@ -74,7 +74,7 @@ private void OnValidate() { _generateAssetBasePath = NormalizeAssetPath(_generateAssetBasePath); _classesFolderName = (_classesFolderName ?? "Classes").Replace("/", "").Replace("\\", ""); - _soFolderName = (_soFolderName ?? "So").Replace("/", "").Replace("\\", ""); + _assetFolderName = (_assetFolderName ?? "So").Replace("/", "").Replace("\\", ""); _logsFolderName = (_logsFolderName ?? "Logs").Replace("/", "").Replace("\\", ""); _backupsFolderName = (_backupsFolderName ?? "BackUps").Replace("/", "").Replace("\\", ""); _enumTypesFileName = string.IsNullOrWhiteSpace(_enumTypesFileName) ? "EnumTypes.cs" : _enumTypesFileName; diff --git a/Assets/_DDD/_Scripts/Restaurant/Character/AI/Common/Actions/LookAtInteractionTarget.cs b/Assets/_DDD/_Scripts/Restaurant/Character/AI/Common/Actions/LookAtInteractionTarget.cs index e00335603..68058dfd2 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Character/AI/Common/Actions/LookAtInteractionTarget.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Character/AI/Common/Actions/LookAtInteractionTarget.cs @@ -12,11 +12,7 @@ public class LookAtInteractionTarget : Action { [Header("Target Settings")] [Tooltip("InteractionPoints를 사용해 가장 적절한 지점을 바라봄")] - [SerializeField] private bool useInteractionPoints = true; - - [Header("Update Settings")] - [Tooltip("프레임마다 갱신하여 지속적으로 바라볼지 (Running 반환) 여부. 비활성화 시 1회만 시도하고 성공 처리")] - [SerializeField] private bool continuousUpdate = true; + [SerializeField] private bool _useInteractionPoints = true; // Visual 전용 컴포넌트(나중 구현)를 위한 최소 인터페이스 // 실제 구현은 Spine/애니메이션 제어 컴포넌트에서 이 인터페이스를 구현하세요. @@ -30,84 +26,63 @@ public interface ILookAtVisual void EndLookAt(); } - private ILookAtVisual visual; - private GameObject cachedTarget; - private bool isLooking; - private Vector3 currentLookPosition; + private ILookAtVisual _visual; + private GameObject _cachedTarget; + private bool _isLooking; + private Vector3 _currentLookPosition; public override void OnStart() { - visual = gameObject.GetComponentInParent(); - cachedTarget = null; - isLooking = false; + _visual = gameObject.GetComponentInParent(); + _isLooking = false; + + var blackboard = gameObject.GetComponent(); + _cachedTarget = blackboard.GetBlackboardGameObject(nameof(RestaurantCustomerBlackboardKey.CurrentInteractionTarget)); } public override TaskStatus OnUpdate() - { - var target = GetTarget(); - if (target == null) + { + if (_cachedTarget == null) { - if (isLooking) + if (_isLooking) { // 타겟이 사라졌다면 정리 - visual?.EndLookAt(); - isLooking = false; + _visual?.EndLookAt(); + _isLooking = false; } return TaskStatus.Success; } - currentLookPosition = CalculateLookPosition(target); + _currentLookPosition = CalculateLookPosition(_cachedTarget); - if (!isLooking) + if (!_isLooking) { - visual?.TryBeginLookAt(currentLookPosition); - isLooking = true; + _visual?.TryBeginLookAt(_currentLookPosition); + _isLooking = true; } else { - visual?.UpdateLookAt(currentLookPosition); + _visual?.UpdateLookAt(_currentLookPosition); } - - // 연속 업데이트면 Running, 아니면 1회만 시도 후 Success 반환 - return continuousUpdate ? TaskStatus.Running : TaskStatus.Success; + + return TaskStatus.Success; } public override void OnEnd() { - if (isLooking) + if (_isLooking) { - visual?.EndLookAt(); - isLooking = false; + _visual?.EndLookAt(); + _isLooking = false; } - cachedTarget = null; - } - - private GameObject GetTarget() - { - // 캐시된 타겟이 유효하면 재사용 - if (IsValidTarget(cachedTarget)) - return cachedTarget; - - // 블랙보드에서 타겟 검색 - cachedTarget = gameObject.GetComponent() - ?.GetCurrentInteractionTarget(); - - if (IsValidTarget(cachedTarget)) - return cachedTarget; - - // Interactor의 포커스된 타겟 검색 - var interactor = gameObject.GetComponent(); - var focusedInteractable = interactor?.GetFocusedInteractable(); - cachedTarget = focusedInteractable?.GetInteractableGameObject(); - - return cachedTarget; + _cachedTarget = null; } private static bool IsValidTarget(GameObject target) => target != null && target; private Vector3 CalculateLookPosition(GameObject target) { - if (!useInteractionPoints) + if (!_useInteractionPoints) return target.transform.position; if (target.TryGetComponent(out var ric)) diff --git a/Assets/_DDD/_Scripts/Restaurant/Character/AI/Common/Actions/MoveToInteractionTarget.cs b/Assets/_DDD/_Scripts/Restaurant/Character/AI/Common/Actions/MoveToInteractionTarget.cs index 58a3ce5a7..602f24ab2 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Character/AI/Common/Actions/MoveToInteractionTarget.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Character/AI/Common/Actions/MoveToInteractionTarget.cs @@ -1,5 +1,6 @@ using Opsive.BehaviorDesigner.Runtime.Tasks; using Opsive.BehaviorDesigner.Runtime.Tasks.Actions; +using Unity.VisualScripting; using UnityEngine; namespace DDD.Restaurant @@ -19,39 +20,45 @@ public class MoveToInteractionTarget : Action [Tooltip("목적지 재계산 주기(초), 0 이하면 비활성화")] [SerializeField] private float repathInterval = 0.5f; + [Header("Debug Settings")] + [Tooltip("디버그 드로우 활성화")] + [SerializeField] private bool enableDebugDraw = true; + [Tooltip("디버그 선 색상")] + [SerializeField] private Color debugLineColor = Color.red; + [Tooltip("타겟 위치 기즈모 색상")] + [SerializeField] private Color targetGizmoColor = Color.yellow; + private IAiMovement _movement; private float _repathTimer; private Vector3 _currentDestination; private bool _isMoving; + private GameObject _target; public override void OnStart() { _movement = gameObject.GetComponent(); _repathTimer = 0f; _isMoving = false; - - Debug.Log($"MoveToInteractionTarget - GameObject: {gameObject.name}"); + + var blackboard = gameObject.GetComponent(); + _target = blackboard.GetBlackboardGameObject(nameof(RestaurantCustomerBlackboardKey.CurrentInteractionTarget)); } public override TaskStatus OnUpdate() { if (_movement == null) return TaskStatus.Failure; - - var target = GetTarget(); - if (target == null) + if (_target == null) { - return TaskStatus.Running; // If has no target, stuck in this state + return TaskStatus.Failure; } - - Debug.Log(target.name); - + if (ShouldUpdateDestination()) { - _currentDestination = CalculateDestination(target); + _currentDestination = CalculateDestination(_target); StartOrUpdateMovement(); } - + return CheckMovementCompletion(); } @@ -59,14 +66,72 @@ public override void OnEnd() { StopMovement(); } - - private GameObject GetTarget() + + protected override void OnDrawGizmos() { - // Interactor의 포커스된 타겟 검색 - var interactor = gameObject.GetComponent(); - var focusedInteractable = interactor?.GetFocusedInteractable(); - if (focusedInteractable != null) return focusedInteractable.GetInteractableGameObject(); - return null; + if (!enableDebugDraw || _target == null) return; + + // 타겟 이름을 자신의 게임오브젝트 위에 표시 +#if UNITY_EDITOR + UnityEditor.Handles.Label(transform.position + Vector3.up * 2f, + $"Target: {_target.name}"); +#endif + + // 타겟 위치에 기즈모 그리기 + Gizmos.color = targetGizmoColor; + if (_isMoving && _currentDestination != Vector3.zero) + { + Gizmos.DrawWireSphere(_currentDestination, 0.5f); + } + else if (_target != null) + { + Gizmos.DrawWireSphere(_target.transform.position, 0.5f); + } + + // 현재 위치에서 타겟까지 직선 그리기 + Gizmos.color = debugLineColor; + Vector3 targetPos = _isMoving && _currentDestination != Vector3.zero + ? _currentDestination + : (_target != null ? _target.transform.position : Vector3.zero); + + if (targetPos != Vector3.zero) + { + Gizmos.DrawLine(transform.position, targetPos); + } + + // 현재 오브젝트 위치에 작은 기즈모 그리기 + Gizmos.color = Color.blue; + Gizmos.DrawWireCube(transform.position, Vector3.one * 0.3f); + } + + protected override void OnDrawGizmosSelected() + { + if (!enableDebugDraw || _target == null) return; + + // 선택되었을 때 추가 정보 표시 +#if UNITY_EDITOR + Vector3 targetPos = _isMoving && _currentDestination != Vector3.zero + ? _currentDestination + : _target.transform.position; + + float distance = Vector3.Distance(transform.position, targetPos); + UnityEditor.Handles.Label(targetPos + Vector3.up * 1f, + $"Distance: {distance:F2}m\nStopping: {stoppingDistance:F2}m"); + + // InteractionPoints가 있다면 모두 표시 + if (useInteractionPoints && _target.TryGetComponent(out var ric)) + { + var points = ric.GetInteractionPoints(); + if (points != null && points.Length > 0) + { + Gizmos.color = Color.cyan; + foreach (var point in points) + { + Gizmos.DrawWireSphere(point, 0.2f); + } + } + } +#endif } private bool ShouldUpdateDestination() diff --git a/Assets/_DDD/_Scripts/Restaurant/Character/AI/Common/Decorator/TimeLimiter.cs b/Assets/_DDD/_Scripts/Restaurant/Character/AI/Common/Decorator/TimeLimiter.cs index ec725c587..15c13cd29 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Character/AI/Common/Decorator/TimeLimiter.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Character/AI/Common/Decorator/TimeLimiter.cs @@ -188,7 +188,7 @@ public void Execute(ref DynamicBuffer branchComponents, branchComponents[taskComponent.BranchIndex] = branchComponent; continue; } - else if (taskComponent.Status != TaskStatus.Running) + if (taskComponent.Status != TaskStatus.Running) { continue; } diff --git a/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/Actions/StartRestaurantOrder.cs b/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/Actions/StartRestaurantOrder.cs index 16216526e..b954d1bf7 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/Actions/StartRestaurantOrder.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/Actions/StartRestaurantOrder.cs @@ -12,6 +12,8 @@ public class StartRestaurantOrder : Action [SerializeField] private bool _requireCanInteract = true; [Tooltip("성공 시 블랙보드에 현재 인터랙션 대상을 등록합니다")] [SerializeField] private bool _registerOnBlackboard = true; + [Tooltip("성공 시 블랙보드에 현재 인터랙션 대상을 등록합니다")] + [SerializeField] private bool _UnregisterOnBlackboard = false; private IInteractor _interactor; private bool _isGetInteractor; @@ -19,6 +21,7 @@ public class StartRestaurantOrder : Action public override void OnStart() { _isGetInteractor = gameObject.TryGetComponent(out _interactor); + if (!_isGetInteractor) Debug.LogError($"[{GetType().Name}] IInteractor를 찾을 수 없습니다: {gameObject.name}"); } @@ -39,15 +42,18 @@ public override TaskStatus OnUpdate() return TaskStatus.Failure; } - // TODO : 아래 상호작용 수행 로직이 우리 프로젝트의 권장하는 방식이 아님. 플레이어가 오브젝트에 인터랙션하는 것과 비슷한 흐름으로 NPC가 오브젝트에 인터랙션하게 만들 것. - // TODO : 이벤트 통해서 인터랙션. 직접 호출하지 말 것! - outInteractable.OnInteracted(_interactor); + RestaurantEvents.InteractionEvent.RequestInteraction(_interactor.GetInteractorGameObject(), outInteractable.gameObject, outInteractable.GetInteractionType()); if (_registerOnBlackboard) { - // 하위 호환: 고객 전용 블랙보드 지원 - var customerBlackboard = gameObject.GetComponent(); - customerBlackboard?.SetCurrentInteractionTarget(outInteractable.gameObject); + var customerBlackboard = gameObject.GetComponent(); + customerBlackboard?.SetBlackboardGameObject(nameof(RestaurantCustomerBlackboardKey.CurrentInteractionTarget), outInteractable.gameObject); + } + + if (_UnregisterOnBlackboard) + { + var customerBlackboard = gameObject.GetComponent(); + customerBlackboard?.SetBlackboardGameObject(nameof(RestaurantCustomerBlackboardKey.CurrentInteractionTarget), null); } return TaskStatus.Success; diff --git a/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/Actions/WaitForPlayerInteraction.cs b/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/Actions/WaitForPlayerInteraction.cs index b8da8cbf0..30feb0826 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/Actions/WaitForPlayerInteraction.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/Actions/WaitForPlayerInteraction.cs @@ -8,78 +8,42 @@ namespace DDD.Restaurant //차후 제네릭으로 변경 가능성 있음 public class WaitForPlayerInteraction : Action { - [Tooltip("기다릴 상호작용 타입")] - [SerializeField] private RestaurantMealType _targetOrderType = RestaurantMealType.WaitForOrder; - - private IInteractionSubsystemObject _interactionSubsystem; + [SerializeField] private RestaurantOrderType _targetOrderType; + private IInteractionSubsystemObject _interactionSubsystem; private bool _isGetInteractionSubsystem; public override void OnStart() { - // 의자가 복합 상태를 가지게 될 경우 - // GameObject interactionTarget = null; - // var shared = gameObject.GetComponentInChildren(); - // if (shared != null) - // { - // interactionTarget = shared.GetCurrentInteractionTarget(); - // } - // else - // { - // // 하위 호환: 고객 전용 블랙보드 지원 - // var customerBb = gameObject.GetComponentInParent(); - // interactionTarget = customerBb?.GetCurrentInteractionTarget(); - // } - // - // if (interactionTarget == null) - // { - // Debug.LogError($"[{GetType().Name}] interactionTarget을 찾을 수 없습니다: {gameObject.name}"); - // return; - // } - // - // if (!interactionTarget.TryGetComponent(out var interactionComponent)) - // Debug.LogError($"[{interactionTarget.name}] {nameof(interactionComponent)}를 찾을 수 없습니다: {gameObject.name}"); - // if (interactionComponent is IInteractionSubsystemOwner subsystemOwner) - // { - // if (!subsystemOwner.TryGetSubsystemObject(out var subsystem)) - // { - // Debug.LogError($"[{GetType().Name}] {nameof(_targetOrderType)}의 Subsystem을 찾을 수 없습니다: {gameObject.name}"); - // _isGetInteractionSubsystem = false; - // return; - // } - // - // _isGetInteractionSubsystem = true; - // subsystem.SetInteractionSubsystemType(_targetOrderType); - // - // if (!gameObject.TryGetComponent(out var interactor)) - // { - // Debug.LogError($"[{GetType().Name}] IInteractor를 찾을 수 없습니다: {gameObject.name}"); - // return; - // } - // - // interactor.CanInteractTo(interactionComponent); - // - // _interactionSubsystem = subsystem; - // } + GameObject interactionTarget = null; + if (!gameObject.TryGetComponent(out var sharedBlackboard)) return; + interactionTarget = + sharedBlackboard.GetBlackboardGameObject( + nameof(RestaurantCustomerBlackboardKey.CurrentInteractionTarget)); - if (!gameObject.TryGetComponent(out var interactionComponent)) + if (interactionTarget == null) { - Debug.LogError($"[{GetType().Name}]에서 interactionComponent를 찾을 수 없습니다: {gameObject.name}"); + Debug.LogError($"[{GetType().Name}] interactionTarget을 찾을 수 없습니다: {gameObject.name}"); return; } + if (!interactionTarget.TryGetComponent(out var interactionComponent)) + Debug.LogError( + $"[{interactionTarget.name}] {nameof(interactionComponent)}를 찾을 수 없습니다: {gameObject.name}"); + if (interactionComponent is not IInteractionSubsystemOwner subsystemOwner) { - Debug.LogError($"[{GetType().Name}]에서 {nameof(IInteractionSubsystemOwner)}를 찾을 수 없습니다: {gameObject.name}"); + Debug.LogError( + $"[{GetType().Name}]에서 {nameof(IInteractionSubsystemOwner)}를 찾을 수 없습니다: {gameObject.name}"); return; } if (!subsystemOwner.TryGetSubsystemObject(out _interactionSubsystem)) { - Debug.LogError($"[{GetType().Name}]에서 {nameof(IInteractionSubsystemObject)}를 찾을 수 없습니다: {gameObject.name}"); + Debug.LogError( + $"[{GetType().Name}]에서 {nameof(IInteractionSubsystemObject)}를 찾을 수 없습니다: {gameObject.name}"); return; } - - _interactionSubsystem.SetInteractionSubsystemType(_targetOrderType); + _isGetInteractionSubsystem = true; } @@ -91,7 +55,7 @@ public override TaskStatus OnUpdate() if (result == TaskStatus.Success) Debug.Log($"[{GetType().Name}] Success"); return result; } - + private TaskStatus CheckToSubsystemStatus() { return _interactionSubsystem.GetInteractionSubsystemType() == _targetOrderType diff --git a/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/Conditionals/RestaurantOrderAvailable.cs b/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/Conditionals/RestaurantOrderAvailable.cs index 1e99b0ba5..da16bc590 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/Conditionals/RestaurantOrderAvailable.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/Conditionals/RestaurantOrderAvailable.cs @@ -53,8 +53,7 @@ public static TaskStatus FindAvailableOrderInteractable(bool checkCanInteract if (outInteractable == null) continue; if (!outInteractable.TryGetSubsystemObject(out var subsystem)) continue; - if (EqualityComparer.Default.Equals(subsystem.GetInteractionSubsystemType(), targetOrderType) - ) + if (EqualityComparer.Default.Equals(subsystem.GetInteractionSubsystemType(), targetOrderType)) { // CheckCanInteract이 false면 타입만 맞으면 성공 if (!checkCanInteract) diff --git a/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/CustomerAiComponent.cs b/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/CustomerAiComponent.cs index 89593be6d..64c65fa36 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/CustomerAiComponent.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/CustomerAiComponent.cs @@ -20,11 +20,11 @@ private void Awake() _blackboardComponent = GetComponent(); } - public async Task InitializeAi(CustomerData inCustomerData) + public async Task InitializeAi(CustomerDataEntry inCustomerDataEntry) { try { - await InitializeAiInternal(inCustomerData); + await InitializeAiInternal(inCustomerDataEntry); } catch (Exception e) { @@ -34,21 +34,21 @@ public async Task InitializeAi(CustomerData inCustomerData) } } - private async Task InitializeAiInternal(CustomerData inCustomerData) + private async Task InitializeAiInternal(CustomerDataEntry inCustomerDataEntry) { var customerState = RestaurantState.Instance.CustomerState; - var subtree = customerState.GetLoadedSubtree(inCustomerData.CustomerType); + var subtree = customerState.GetLoadedSubtree(inCustomerDataEntry.CustomerType); if (subtree == null) { Debug.LogError( - $"[CustomerCharacter] No preloaded subtree found for CustomerType: {inCustomerData.CustomerType}. Make sure CustomerBehaviorData is loaded."); - subtree = await customerState.GetOrLoadSubtree(inCustomerData.CustomerType); + $"[CustomerCharacter] No preloaded subtree found for CustomerType: {inCustomerDataEntry.CustomerType}. Make sure CustomerBehaviorData is loaded."); + subtree = await customerState.GetOrLoadSubtree(inCustomerDataEntry.CustomerType); } _behaviorTree.Subgraph = subtree; - _blackboardComponent.InitializeWithBehaviorTree(subtree); - _blackboardComponent.SetCustomerData(inCustomerData); + _blackboardComponent.InitializeWithBehaviorTree(_behaviorTree); + _blackboardComponent.SetCustomerData(inCustomerDataEntry.Id); // TODO : 1. Subtree - Action, Condition // TODO : 2. Blackboard _behaviorTree.StartBehavior(); diff --git a/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/CustomerBlackboardComponent.cs b/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/CustomerBlackboardComponent.cs index d23f14605..41aee0f18 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/CustomerBlackboardComponent.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Character/AI/Customer/CustomerBlackboardComponent.cs @@ -5,35 +5,34 @@ namespace DDD { public class CustomerBlackboardComponent : MonoBehaviour, ICustomerBlackboard, IAISharedBlackboard { - private Subtree _subtree; - private GameObject _currentInteractionTarget; - - public void InitializeWithBehaviorTree(Subtree subtree) + // private Subtree _behaviorTree; + private BehaviorTree _behaviorTree; + + public void InitializeWithBehaviorTree(BehaviorTree inBehaviorTree) { - _subtree = subtree; - if (_subtree != null) + _behaviorTree = inBehaviorTree; + if (_behaviorTree) { - _subtree.SetVariableValue(nameof(RestaurantCustomerBlackboardKey.SelfGameObject), gameObject); + _behaviorTree.SetVariableValue(nameof(RestaurantCustomerBlackboardKey.SelfGameObject), gameObject); } } - public void SetCustomerData(CustomerData inCustomerData) + public void SetCustomerData(string inCustomerDataId) { - if (_subtree == null) return; - _subtree.SetVariableValue(nameof(RestaurantCustomerBlackboardKey.CustomerData), inCustomerData); + if (!_behaviorTree) return; + _behaviorTree.SetVariableValue(nameof(RestaurantCustomerBlackboardKey.CustomerDataId), inCustomerDataId); + } + + public void SetBlackboardGameObject(string key, GameObject inGameObject) + { + if (_behaviorTree == null) return; + _behaviorTree.SetVariableValue(key, inGameObject); } - public void SetCurrentInteractionTarget(GameObject targetGameObject) + public GameObject GetBlackboardGameObject(string key) { - _currentInteractionTarget = targetGameObject; - if (_subtree == null) return; - _subtree.SetVariableValue(nameof(RestaurantCustomerBlackboardKey.CurrentInteractionTarget), targetGameObject); - } - - public GameObject GetCurrentInteractionTarget() - { - // 캐시 우선 반환. 필요 시 Subtree에서 직접 조회하도록 확장 가능. - return _currentInteractionTarget; + if (_behaviorTree == null) return null; + return _behaviorTree.GetVariable(key)?.Value; } } } \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/Restaurant/Character/Core/CharacterInteraction.cs b/Assets/_DDD/_Scripts/Restaurant/Character/Core/CharacterInteraction.cs index d6b1530a5..5ec7c67ac 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Character/Core/CharacterInteraction.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Character/Core/CharacterInteraction.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using Sirenix.OdinInspector; using UnityEngine; @@ -99,5 +100,27 @@ public bool CanInteractTo(IInteractable interactable, ScriptableObject payloadSo if (TryGetSolverFor(interactable, out var solver) == false) return false; return solver.CanExecuteInteraction(this, interactable, payloadSo); } + + public virtual void InitializeSolvers() + { + var typesToSolver = RestaurantInteractionEventSolvers.TypeToSolver; + InitializeInteractionSolvers(typesToSolver); + } + + protected void InitializeInteractionSolvers(Dictionary typesToSolver) + { + foreach (var typeToSolver in typesToSolver) + { + var flag = typeToSolver.Key; + if (flag == InteractionType.None) continue; + + if ((AvailableInteractions & flag) == 0) continue; + + if (!TryGetComponent(typeToSolver.Value, out _)) + { + gameObject.AddComponent(typeToSolver.Value); + } + } + } } } diff --git a/Assets/_DDD/_Scripts/Restaurant/Character/Core/RestaurantCharacter.cs b/Assets/_DDD/_Scripts/Restaurant/Character/Core/RestaurantCharacter.cs index 42105fd49..f3a32003e 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Character/Core/RestaurantCharacter.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Character/Core/RestaurantCharacter.cs @@ -13,19 +13,8 @@ public class RestaurantCharacter : MonoBehaviour, IGameCharacter, IInteractor protected virtual void Awake() { _interactionComponent = GetComponent(); + _interactionComponent.InitializeSolvers(); _spineController = GetComponent(); - foreach (var typeToSolver in RestaurantInteractionEventSolvers.TypeToSolver) - { - var flag = typeToSolver.Key; - if (flag == InteractionType.None) continue; - - if ((_interactionComponent.AvailableInteractions & flag) == 0) continue; - - if (!TryGetComponent(typeToSolver.Value, out _)) - { - gameObject.AddComponent(typeToSolver.Value); - } - } } protected virtual void Start() diff --git a/Assets/_DDD/_Scripts/Restaurant/Character/Interfaces/ICustomerAi.cs b/Assets/_DDD/_Scripts/Restaurant/Character/Interfaces/ICustomerAi.cs index 6fc7ad64f..8672b0e08 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Character/Interfaces/ICustomerAi.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Character/Interfaces/ICustomerAi.cs @@ -4,6 +4,6 @@ namespace DDD { public interface ICustomerAi { - Task InitializeAi(CustomerData inCustomerData); + Task InitializeAi(CustomerDataEntry inCustomerDataEntry); } } \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/Restaurant/Character/Interfaces/ICustomerBlackboard.cs b/Assets/_DDD/_Scripts/Restaurant/Character/Interfaces/ICustomerBlackboard.cs index 3f811c8a3..8754ec832 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Character/Interfaces/ICustomerBlackboard.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Character/Interfaces/ICustomerBlackboard.cs @@ -5,14 +5,12 @@ namespace DDD public enum RestaurantCustomerBlackboardKey { SelfGameObject, - CustomerData, + CustomerDataId, CurrentInteractionTarget, } public interface ICustomerBlackboard { - void SetCustomerData(CustomerData inCustomerData); - void SetCurrentInteractionTarget(GameObject targetGameObject); - GameObject GetCurrentInteractionTarget(); + void SetCustomerData(string inCustomerDataId); } } \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/Restaurant/Character/Npc/Customer/CustomerCharacter.cs b/Assets/_DDD/_Scripts/Restaurant/Character/Npc/Customer/CustomerCharacter.cs index 6dc164fa9..24c04c2e0 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Character/Npc/Customer/CustomerCharacter.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Character/Npc/Customer/CustomerCharacter.cs @@ -8,7 +8,7 @@ namespace DDD.Restaurant [RequireComponent(typeof(CustomerAiComponent))] public class CustomerCharacter : NpcCharacter, ICustomerInitializer { - private CustomerData _customerData; + private CustomerDataEntry _customerDataEntry; protected ICustomerAi _customerAi; protected override void Awake() @@ -17,13 +17,13 @@ protected override void Awake() _customerAi = GetComponent(); } - public void Initialize(CustomerData customerData) + public void Initialize(CustomerDataEntry customerDataEntry) { - _customerData = customerData; - _customerAi.InitializeAi(_customerData); + _customerDataEntry = customerDataEntry; + _customerAi.InitializeAi(_customerDataEntry); // 스킨 설정 - _spineController.SetSkin(_customerData.SpineSkinKey); + _spineController.SetSkin(_customerDataEntry.SpineSkinKey); } } } \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/Restaurant/Character/Player/PlayerInteraction.cs b/Assets/_DDD/_Scripts/Restaurant/Character/Player/PlayerInteraction.cs index 4162945a1..21832e1ea 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Character/Player/PlayerInteraction.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Character/Player/PlayerInteraction.cs @@ -1,3 +1,5 @@ +using System; +using System.Collections.Generic; using System.Threading.Tasks; using UnityEngine; using UnityEngine.InputSystem; @@ -35,6 +37,18 @@ private Task Initialize() return Task.CompletedTask; } + public override void InitializeSolvers() + { + var typesToSolver = RestaurantInteractionEventSolvers.TypeToSolver; + var playerSolver = RestaurantInteractionEventSolvers.TypeToPlayerSolver; + foreach(var pair in playerSolver) + { + typesToSolver.Remove(pair.Key); + } + InitializeInteractionSolvers(typesToSolver); + InitializeInteractionSolvers(playerSolver); + } + protected override void OnDestroy() { base.OnDestroy(); diff --git a/Assets/_DDD/_Scripts/Restaurant/Controller/Conrtollers/EnvironmentController.cs b/Assets/_DDD/_Scripts/Restaurant/Controller/Conrtollers/EnvironmentController.cs index 32c5be4f2..bd52b1ee1 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Controller/Conrtollers/EnvironmentController.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Controller/Conrtollers/EnvironmentController.cs @@ -31,7 +31,7 @@ public override Task OnExitCurrentFlow(GameFlowState exitingFlowState) private void GenerateDummyEnvironmentProps() { // Make dummy placement data - foreach (EnvironmentData prop in DataManager.Instance.GetDataSo().GetDataList()) + foreach (EnvironmentDataEntry prop in DataManager.Instance.GetDataSo().GetDataList()) { for (int i = 0; i < 10; i++) { diff --git a/Assets/_DDD/_Scripts/Restaurant/Controller/Conrtollers/Run/Customer/CustomerFactory.cs b/Assets/_DDD/_Scripts/Restaurant/Controller/Conrtollers/Run/Customer/CustomerFactory.cs index a19fc2565..fadd08e19 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Controller/Conrtollers/Run/Customer/CustomerFactory.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Controller/Conrtollers/Run/Customer/CustomerFactory.cs @@ -14,12 +14,12 @@ public interface ICustomerFactory public interface ICustomerInitializer { - void Initialize(CustomerData customerData); + void Initialize(CustomerDataEntry customerDataEntry); } public struct CustomerSpawnArgs { - public CustomerData CustomerData; + public CustomerDataEntry CustomerDataEntry; public Vector3 Position; public Quaternion Rotation; public Transform Parent; @@ -41,7 +41,7 @@ public async Task CreateAsync(CustomerSpawnArgs args) if (newCustomer.TryGetComponent(out ICustomerInitializer initializer)) { - initializer.Initialize(args.CustomerData); + initializer.Initialize(args.CustomerDataEntry); } return newCustomer; } diff --git a/Assets/_DDD/_Scripts/Restaurant/Controller/Conrtollers/RunController.cs b/Assets/_DDD/_Scripts/Restaurant/Controller/Conrtollers/RunController.cs index 20074746e..03db4ea75 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Controller/Conrtollers/RunController.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Controller/Conrtollers/RunController.cs @@ -14,9 +14,9 @@ public class RunController : FlowController private CancellationTokenSource _cts; // Runtime dependencies used by the execution logic - private LevelDataSo _levelDataSo; - private CustomerDataSo _customerDataSo; - private CustomerPoolDataSo _customerPoolDataSo; + private LevelDataAsset _levelDataAsset; + private CustomerDataAsset _customerDataAsset; + private CustomerPoolDataAsset _customerPoolDataAsset; private ICustomerFactory _iCustomerFactory; private ISpawnPointProvider _spawnPointProvider; @@ -71,21 +71,21 @@ public override Task OnExitCurrentFlow(GameFlowState exitingFlowState) private async Task StartSpawnLoopAsync(CancellationToken token) { var currentGameLevel = GameState.Instance.LevelState.Level; - _levelDataSo ??= DataManager.Instance.GetDataSo(); - _customerDataSo ??= DataManager.Instance.GetDataSo(); - _customerPoolDataSo ??= DataManager.Instance.GetDataSo(); + _levelDataAsset ??= DataManager.Instance.GetDataSo(); + _customerDataAsset ??= DataManager.Instance.GetDataSo(); + _customerPoolDataAsset ??= DataManager.Instance.GetDataSo(); - var currentLevelData = _levelDataSo.GetDataList().FirstOrDefault(data => data.Level == currentGameLevel); + var currentLevelData = _levelDataAsset.GetDataList().FirstOrDefault(data => data.Level == currentGameLevel); Debug.Assert(currentLevelData != null, "currentLevelData is null"); if (currentLevelData == null) return; // 안전 가드 - var normalPool = _customerPoolDataSo.GetDataById(currentLevelData.CustomerPool); - var specialPool = _customerPoolDataSo.GetDataById(currentLevelData.SpecialCustomerPool); + var normalPool = _customerPoolDataAsset.GetDataById(currentLevelData.CustomerPool); + var specialPool = _customerPoolDataAsset.GetDataById(currentLevelData.SpecialCustomerPool); await RunSpawnLoopAsync(currentLevelData, normalPool, specialPool, token); } - private async Task RunSpawnLoopAsync(LevelData levelData, CustomerPoolData normalPool, CustomerPoolData specialPool, CancellationToken token) + private async Task RunSpawnLoopAsync(LevelDataEntry levelDataEntry, CustomerPoolDataEntry normalPool, CustomerPoolDataEntry specialPool, CancellationToken token) { var runData = RestaurantData.Instance? RestaurantData.Instance.RunData : null; float firstDelay = Mathf.Max(0f, runData? runData.FirstSpawnDelaySeconds : 5f); @@ -94,7 +94,7 @@ private async Task RunSpawnLoopAsync(LevelData levelData, CustomerPoolData norma await Awaitable.WaitForSecondsAsync(firstDelay, token); } - var scheduleBuilder = CreateBuilder(levelData.SpawnType); + var scheduleBuilder = CreateBuilder(levelDataEntry.SpawnType); int randomSeed = Environment.TickCount; SpawnSchedule MakeSchedule() => scheduleBuilder.Build(new SpawnScheduleBuildArgs @@ -107,7 +107,7 @@ SpawnSchedule MakeSchedule() => scheduleBuilder.Build(new SpawnScheduleBuildArgs }); _spawnSchedule = MakeSchedule(); - float wait = Mathf.Max(0.1f, levelData.CustomerRespawnTime); + float wait = Mathf.Max(0.1f, levelDataEntry.CustomerRespawnTime); while (token.IsCancellationRequested == false) { @@ -118,13 +118,13 @@ SpawnSchedule MakeSchedule() => scheduleBuilder.Build(new SpawnScheduleBuildArgs if (_spawnSchedule.TryDequeue(out var customerId) == false) break; - if (_customerDataSo.TryGetDataById(customerId, out var customerData)) + if (_customerDataAsset.TryGetDataById(customerId, out var customerData)) { var rotation = Quaternion.identity; await _iCustomerFactory.CreateAsync(new CustomerSpawnArgs { - CustomerData = customerData, + CustomerDataEntry = customerData, Position = _restaurantRunStateSo.SpawnPoint, Rotation = rotation, Parent = null diff --git a/Assets/_DDD/_Scripts/Restaurant/Controller/Conrtollers/Tasks/CreateRestaurantEnvironment.cs b/Assets/_DDD/_Scripts/Restaurant/Controller/Conrtollers/Tasks/CreateRestaurantEnvironment.cs index d63885208..a0812a08a 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Controller/Conrtollers/Tasks/CreateRestaurantEnvironment.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Controller/Conrtollers/Tasks/CreateRestaurantEnvironment.cs @@ -13,7 +13,7 @@ public override Task ReadyFlowTask() public override Task RunFlowTask() { - // TODO : Base prefab from EnvironmentDataSo + // TODO : Base prefab from EnvironmentDataAsset var props = RestaurantState.Instance.EnvironmentState.Props; foreach (var prop in props) diff --git a/Assets/_DDD/_Scripts/Restaurant/Environment/Interactions/InteractionSubsystem_Meal.cs b/Assets/_DDD/_Scripts/Restaurant/Environment/Interactions/InteractionSubsystem_Meal.cs index 25433d327..48b1b410d 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Environment/Interactions/InteractionSubsystem_Meal.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Environment/Interactions/InteractionSubsystem_Meal.cs @@ -1,4 +1,5 @@ using System; +using Unity.VisualScripting; using UnityEngine; namespace DDD @@ -23,11 +24,13 @@ public RestaurantMealType GetInteractionSubsystemType() public void SetInteractionSubsystemType(RestaurantMealType inValue) { + Debug.Log($"[{gameObject.GetHashCode()}, {GetType().Name}] SetInteractionSubsystemType {inValue.ToString()}"); _currentRestaurantMealType = inValue; } public void InitializeSubsystem() { + Debug.Log($"[{gameObject.GetHashCode()}, {GetType().Name}] InitializeSubsystem"); _currentRestaurantMealType = RestaurantMealType.None; } @@ -38,6 +41,7 @@ public bool CanInteract() public bool OnInteracted(IInteractor interactor, ScriptableObject payloadSo = null) { + Debug.Log($"[{gameObject.GetHashCode()}, {GetType().Name}] OnInteracted"); var prev = _currentRestaurantMealType; _currentRestaurantMealType = GetNextState(prev); return true; diff --git a/Assets/_DDD/_Scripts/Restaurant/Environment/Interactions/InteractionSubsystem_Order.cs b/Assets/_DDD/_Scripts/Restaurant/Environment/Interactions/InteractionSubsystem_Order.cs index eebb1f995..fde3d3f3c 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Environment/Interactions/InteractionSubsystem_Order.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Environment/Interactions/InteractionSubsystem_Order.cs @@ -14,7 +14,12 @@ public enum RestaurantOrderType : uint Dirty = 1u << 4, } - public class InteractionSubsystem_Order : MonoBehaviour, IInteractionSubsystemObject + public interface IRestaurantOrderObject + { + void TransitionToNextPhase(); + } + + public class InteractionSubsystem_Order : MonoBehaviour, IInteractionSubsystemObject, IRestaurantOrderObject { [FormerlySerializedAs("orderType")] [SerializeField] protected RestaurantOrderType _orderType = RestaurantOrderType.Wait; private RestaurantOrderType _currentRestaurantOrderType; @@ -26,18 +31,23 @@ private void Start() public bool CanInteract() { - //if (GetInteractionSubsystemType() == RestaurantOrderType.Wait) - //{ - // return true; - //} + if (GetInteractionSubsystemType() == RestaurantOrderType.Wait) + { + return CanTransitionToNextPhase(); + } return true; } + + public void TransitionToNextPhase() + { + // 간단한 상태 전이: 현재 상태에서 다음 상태로 이동 + var currentState = GetInteractionSubsystemType(); + var nextState = GetNextState(currentState); + SetInteractionSubsystemType(nextState); + } public bool OnInteracted(IInteractor interactor, ScriptableObject payloadSo = null) { - // 간단한 상태 전이: 현재 상태에서 다음 상태로 이동 - var prev = _currentRestaurantOrderType; - _currentRestaurantOrderType = GetNextState(prev); return true; } @@ -74,5 +84,10 @@ private RestaurantOrderType GetNextState(RestaurantOrderType state) default: return RestaurantOrderType.Wait; } } + + public bool CanTransitionToNextPhase() + { + return true; + } } } \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/Restaurant/Environment/RestaurantEnvironment.cs b/Assets/_DDD/_Scripts/Restaurant/Environment/RestaurantEnvironment.cs index a15895274..6b1ae5890 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Environment/RestaurantEnvironment.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Environment/RestaurantEnvironment.cs @@ -16,47 +16,47 @@ public class RestaurantEnvironment : MonoBehaviour public void Initialize(RestaurantPropLocation location) { - EnvironmentData environmentData = DataManager.Instance.GetDataSo().GetDataById(location.Id); + EnvironmentDataEntry environmentDataEntry = DataManager.Instance.GetDataSo().GetDataById(location.Id); _collider = GetComponent(); _rootObject = transform.Find(CommonConstants.RootObject); _visualLook = _rootObject.Find(CommonConstants.VisualLook); - if (environmentData == null) + if (environmentDataEntry == null) { - Debug.Assert(false, "environmentData is null"); + Debug.Assert(false, "environmentDataEntry is null"); } - if (environmentData.RendererType == RendererType.Sprite) + if (environmentDataEntry.RendererType == RendererType.Sprite) { var spriteRenderer = _visualLook.AddComponent(); _renderer = spriteRenderer; - spriteRenderer.sprite = DataManager.Instance.GetSprite(environmentData.SpriteKey); + spriteRenderer.sprite = DataManager.Instance.GetSprite(environmentDataEntry.SpriteKey); spriteRenderer.sortingOrder = 5; //Material material = await AssetManager.LoadAssetAsync(DataConstants.BasePropSpriteMaterial); //spriteRenderer.material = new Material(material); } - else if (environmentData.RendererType == RendererType.Spine) + else if (environmentDataEntry.RendererType == RendererType.Spine) { var skeletonAnimation = _visualLook.AddComponent(); - //var skeletonDataAsset = await AssetManager.LoadAssetAsync(environmentData.SkeletonDataName); + //var skeletonDataAsset = await AssetManager.LoadAssetAsync(environmentDataEntry.SkeletonDataName); //skeletonAnimation.skeletonDataAsset = skeletonDataAsset; var spineController = transform.AddComponent(); - spineController.SetSkin(environmentData.SkinName); - spineController.PlayAnimation(environmentData.DefaultAnimationName, true); + spineController.SetSkin(environmentDataEntry.SkinName); + spineController.PlayAnimation(environmentDataEntry.DefaultAnimationName, true); _renderer = _visualLook.GetComponent(); } - _collider.isTrigger = environmentData.IsTrigger == 1; + _collider.isTrigger = environmentDataEntry.IsTrigger == 1; transform.position = new Vector3(location.Position.x, 0f, location.Position.y); - transform.localScale = Vector3.one * environmentData.Size; + transform.localScale = Vector3.one * environmentDataEntry.Size; // Interaction initialize - if (environmentData.InteractionType != InteractionType.None) + if (environmentDataEntry.InteractionType != InteractionType.None) { var interactionComponent = transform.AddComponent(); - interactionComponent.InitializeInteraction(environmentData.InteractionType); + interactionComponent.InitializeInteraction(environmentDataEntry.InteractionType); } } } diff --git a/Assets/_DDD/_Scripts/Restaurant/Event/RestaurantInteractionComponent.cs b/Assets/_DDD/_Scripts/Restaurant/Event/RestaurantInteractionComponent.cs index 46227d570..5d2c2272a 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Event/RestaurantInteractionComponent.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Event/RestaurantInteractionComponent.cs @@ -13,7 +13,6 @@ public static class RestaurantInteractionSubsystems { {InteractionType.RestaurantOrder, typeof(InteractionSubsystem_Order)}, {InteractionType.RestaurantManagement, typeof(InteractionSubsystem_Management)}, - {InteractionType.RestaurantMeal, typeof(InteractionSubsystem_Meal)}, {InteractionType.RestaurantCook, typeof(InteractionSubsystem_Cook)}, }; } diff --git a/Assets/_DDD/_Scripts/Restaurant/Event/RestaurantInteractionEvents.cs b/Assets/_DDD/_Scripts/Restaurant/Event/RestaurantInteractionEvents.cs index 9fe0c5cef..f006c3e85 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Event/RestaurantInteractionEvents.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Event/RestaurantInteractionEvents.cs @@ -10,9 +10,12 @@ public static class RestaurantInteractionEventSolvers { {InteractionType.RestaurantManagement, typeof(RestaurantManagementSolver)}, {InteractionType.RestaurantOrder, typeof(RestaurantOrderSolver)}, - {InteractionType.RestaurantMeal, typeof(RestaurantMealSolver)}, {InteractionType.RestaurantCook, typeof(RestaurantCookSolver)} }; + public static Dictionary TypeToPlayerSolver = new() + { + {InteractionType.RestaurantOrder, typeof(RestaurantOrderPlayerSolver)}, + }; } public class RestaurantInteractionEvent : IEvent diff --git a/Assets/_DDD/_Scripts/Restaurant/Event/Solvers/RestaurantOrders/RestaurantOrderSolver.cs b/Assets/_DDD/_Scripts/Restaurant/Event/Solvers/RestaurantOrders/RestaurantOrderSolver.cs index a0f2bab02..b752ebdda 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Event/Solvers/RestaurantOrders/RestaurantOrderSolver.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Event/Solvers/RestaurantOrders/RestaurantOrderSolver.cs @@ -10,9 +10,19 @@ public class RestaurantOrderSolver : RestaurantSubsystemSolver GetSubsystemSolverTypeMappings() + { + return _typeToOrderSolver; + } + } + public class RestaurantOrderPlayerSolver : RestaurantSubsystemSolver + { + private Dictionary _typeToOrderSolver = new() + { { RestaurantOrderType.Order, typeof(RestaurantOrderSolver_Order) }, { RestaurantOrderType.Serve, typeof(RestaurantOrderSolver_Serve) }, - { RestaurantOrderType.Busy, typeof(RestaurantOrderSolver_Busy) }, { RestaurantOrderType.Dirty, typeof(RestaurantOrderSolver_Dirty) } }; protected override Dictionary GetSubsystemSolverTypeMappings() diff --git a/Assets/_DDD/_Scripts/Restaurant/Event/Solvers/RestaurantOrders/RestaurantOrderSolver_Wait.cs b/Assets/_DDD/_Scripts/Restaurant/Event/Solvers/RestaurantOrders/RestaurantOrderSolver_Wait.cs index 361b0c465..62dc989e4 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Event/Solvers/RestaurantOrders/RestaurantOrderSolver_Wait.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Event/Solvers/RestaurantOrders/RestaurantOrderSolver_Wait.cs @@ -8,11 +8,16 @@ public class RestaurantOrderSolver_Wait : MonoBehaviour, IInteractionSubsystemSo public bool ExecuteInteractionSubsystem(IInteractor interactor, IInteractable interactable, ScriptableObject payload = null) { if (CanExecuteInteractionSubsystem(interactor, interactable, payload) == false) return false; - // TODO : DO SOMETHING!!! - /* TODO - * OnInteracted에서 상태를 바꾸는 대신, 여기서 직접 바꿔주고, 현재 나에게 점유되어 있다는 사실을 알려주기? 그리고 CanInteractTo에서 이게 일치해야만 참 반환하게? - * 필요하다면 IInteractable 인터페이스에 CurrentInteractor를 등록하는 메소드를 추가해야 할수도? - */ + + if (interactable is not IInteractionSubsystemOwner subsystemOwner) + return false; + if (!subsystemOwner.TryGetSubsystemObject(out var subsystem)) + return false; + if (subsystem is IRestaurantOrderObject orderObject) + { + orderObject.TransitionToNextPhase(); + } + return true; } diff --git a/Assets/_DDD/_Scripts/Restaurant/State/FlowStates/RestaurantManagementState.cs b/Assets/_DDD/_Scripts/Restaurant/State/FlowStates/RestaurantManagementState.cs index bb0fb2705..47a4e6aae 100644 --- a/Assets/_DDD/_Scripts/Restaurant/State/FlowStates/RestaurantManagementState.cs +++ b/Assets/_DDD/_Scripts/Restaurant/State/FlowStates/RestaurantManagementState.cs @@ -79,7 +79,7 @@ public bool TryAddTodayMenu(ItemModel model) if (model.ItemType != ItemType.Recipe) return false; - if (DataManager.Instance.GetDataSo().TryGetDataById(recipeId, out RecipeData recipeData) == false) return false; + if (DataManager.Instance.GetDataSo().TryGetDataById(recipeId, out RecipeDataEntry recipeData) == false) return false; bool added = false; @@ -87,7 +87,7 @@ public bool TryAddTodayMenu(ItemModel model) { if (_todayFoodRecipeIds.Count >= GetRestaurantManagementData().MaxFoodCount || _todayFoodRecipeIds.ContainsKey(recipeId)) return false; - var foodData = DataManager.Instance.GetDataSo().GetDataById(recipeData.RecipeResult); + var foodData = DataManager.Instance.GetDataSo().GetDataById(recipeData.RecipeResult); var craftableCount = foodData.GetCraftableCount(); foodData.ConsumeAllCraftableIngredients(); @@ -98,7 +98,7 @@ public bool TryAddTodayMenu(ItemModel model) { if (_todayDrinkRecipeIds.Count >= GetRestaurantManagementData().MaxDrinkCount || _todayDrinkRecipeIds.ContainsKey(recipeId)) return false; - var drinkData = DataManager.Instance.GetDataSo().GetDataById(recipeData.RecipeResult); + var drinkData = DataManager.Instance.GetDataSo().GetDataById(recipeData.RecipeResult); var craftableCount = drinkData.GetCraftableCount(); drinkData.ConsumeAllCraftableIngredients(); @@ -128,7 +128,7 @@ public bool TryRemoveTodayMenu(ItemModel model) string recipeId = model.Id; var removedEvt = RestaurantEvents.TodayMenuRemovedEvent; - if (DataManager.Instance.GetDataSo().TryGetDataById(recipeId, out RecipeData recipeData) == false) return false; + if (DataManager.Instance.GetDataSo().TryGetDataById(recipeId, out RecipeDataEntry recipeData) == false) return false; bool removed = false; int refundCount = 0; @@ -142,7 +142,7 @@ public bool TryRemoveTodayMenu(ItemModel model) if (removed) { - var foodData = DataManager.Instance.GetDataSo().GetDataById(recipeData.RecipeResult); + var foodData = DataManager.Instance.GetDataSo().GetDataById(recipeData.RecipeResult); foodData.RefundIngredients(refundCount); } } @@ -156,7 +156,7 @@ public bool TryRemoveTodayMenu(ItemModel model) if (removed) { - var drinkData = DataManager.Instance.GetDataSo().GetDataById(recipeData.RecipeResult); + var drinkData = DataManager.Instance.GetDataSo().GetDataById(recipeData.RecipeResult); drinkData.RefundIngredients(refundCount); } } @@ -183,7 +183,7 @@ public bool TryAddTodayCookware(ItemModel model) { var cookwareId = model.Id; - if (model.HasItem == false || DataManager.Instance.GetDataSo().ContainsData(cookwareId) == false) return false; + if (model.HasItem == false || DataManager.Instance.GetDataSo().ContainsData(cookwareId) == false) return false; if (_cookwareToRecipeIds.Count >= GetRestaurantManagementData().MaxCookwareCount || _cookwareToRecipeIds.ContainsKey(cookwareId)) return false; @@ -212,7 +212,7 @@ public bool TryRemoveTodayCookware(ItemModel model) { var cookwareId = model.Id; - if (DataManager.Instance.GetDataSo().ContainsData(cookwareId) == false) return false; + if (DataManager.Instance.GetDataSo().ContainsData(cookwareId) == false) return false; if (_cookwareToRecipeIds.Remove(cookwareId) == false) return false; @@ -228,14 +228,14 @@ public bool TryRemoveTodayCookware(ItemModel model) private string GetRequiredCookwareKey(string recipeId) { - if (DataManager.Instance.GetDataSo().TryGetDataById(recipeId, out var recipeData) == false) return null; + if (DataManager.Instance.GetDataSo().TryGetDataById(recipeId, out var recipeData) == false) return null; var resultKey = recipeData.RecipeResult; return recipeData.RecipeType switch { - RecipeType.FoodRecipe => DataManager.Instance.GetDataSo().GetDataById(resultKey).CookwareKey, - RecipeType.DrinkRecipe => DataManager.Instance.GetDataSo().GetDataById(resultKey).CookwareKey, + RecipeType.FoodRecipe => DataManager.Instance.GetDataSo().GetDataById(resultKey).CookwareKey, + RecipeType.DrinkRecipe => DataManager.Instance.GetDataSo().GetDataById(resultKey).CookwareKey, _ => null }; } diff --git a/Assets/_DDD/_Scripts/Restaurant/Ui/CookUi/CookViewModel.cs b/Assets/_DDD/_Scripts/Restaurant/Ui/CookUi/CookViewModel.cs index ae41c6dd6..d4b6e08ee 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Ui/CookUi/CookViewModel.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Ui/CookUi/CookViewModel.cs @@ -13,12 +13,12 @@ public class SelectedCookSnapshot public Sprite CookIcon { get; } public string CookPrice { get; } public IReadOnlyList IngredientEntries { get; } - public IReadOnlyList Tastes { get; } + public IReadOnlyList Tastes { get; } public Material TasteMaterial { get; } public SelectedCookSnapshot(LocalizedString name, LocalizedString description, Sprite cookIcon, string cookPrice, IReadOnlyList ingredientEntries, - IReadOnlyList tastes, Material tasteMaterial) + IReadOnlyList tastes, Material tasteMaterial) { Name = name; Description = description; @@ -35,7 +35,7 @@ public SelectedCookSnapshot(LocalizedString name, cookIcon: null, cookPrice: null, ingredientEntries: null, - tastes: System.Array.Empty(), + tastes: System.Array.Empty(), tasteMaterial: null); } @@ -89,7 +89,7 @@ public void SetCookwareType(CookwareType cookwareType) if (_currentCookwareType == cookwareType) return; _currentCookwareType = cookwareType; - var cookwareDatas = DataManager.Instance.GetDataSo().GetDataList(); + var cookwareDatas = DataManager.Instance.GetDataSo().GetDataList(); var cookwareKey = cookwareDatas.Find(data => data.CookwareType == cookwareType).Id; CookwareIcon = DataManager.Instance.GetIcon(cookwareKey); CookwareName = LocalizationManager.Instance.GetLocalizedName(cookwareKey); @@ -119,7 +119,7 @@ public void CreateAddedCookItemSlot(Transform parent) var cookwareId = cookwareToRecipe.Key; var recipeIds = cookwareToRecipe.Value; - if (DataManager.Instance.GetDataSo().TryGetDataById(cookwareId, out var cookwareData) && + if (DataManager.Instance.GetDataSo().TryGetDataById(cookwareId, out var cookwareData) && cookwareData.CookwareType == _currentCookwareType) { foreach (var recipeId in recipeIds) @@ -174,7 +174,7 @@ public void CreateIngredientInventoryItemSlot(Transform parent) // } // else // { - // if (DataManager.Instance.GetDataSo().TryGetDataById(model.Id, out var cookwareData)) + // if (DataManager.Instance.GetDataSo().TryGetDataById(model.Id, out var cookwareData)) // { // interactor.Initialize(TodayMenuEventType.Add, new TodayCookwareInteractorStrategy()); // } diff --git a/Assets/_DDD/_Scripts/Restaurant/Ui/PropUiDisplayComponent.cs b/Assets/_DDD/_Scripts/Restaurant/Ui/PropUiDisplayComponent.cs new file mode 100644 index 000000000..817d2635c --- /dev/null +++ b/Assets/_DDD/_Scripts/Restaurant/Ui/PropUiDisplayComponent.cs @@ -0,0 +1,9 @@ +using UnityEngine; + +namespace DDD.Restaurant +{ + public class PropUiDisplayComponent : MonoBehaviour + { + + } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/Restaurant/Ui/PropUiDisplayComponent.cs.meta b/Assets/_DDD/_Scripts/Restaurant/Ui/PropUiDisplayComponent.cs.meta new file mode 100644 index 000000000..2b5b6d8ec --- /dev/null +++ b/Assets/_DDD/_Scripts/Restaurant/Ui/PropUiDisplayComponent.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 37e749c7ec5440d587f83c715f29ca8f +timeCreated: 1756353198 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ExtensionsUi/CraftingHelper.cs b/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ExtensionsUi/CraftingHelper.cs index ac018625f..6275ee513 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ExtensionsUi/CraftingHelper.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ExtensionsUi/CraftingHelper.cs @@ -29,15 +29,15 @@ public static List ExtractIngredients(params string[] values) return list; } - public static List ResolveTasteDatas(string[] tasteKeys, TasteDataSo tasteSo) + public static List ResolveTasteDatas(string[] tasteKeys, TasteDataAsset tasteAsset) { - var result = new List(); + var result = new List(); foreach (var key in tasteKeys) { if (string.IsNullOrWhiteSpace(key)) continue; - if (tasteSo.TryGetDataById(key, out var taste)) + if (tasteAsset.TryGetDataById(key, out var taste)) { result.Add(taste); } diff --git a/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ExtensionsUi/DrinkDataExtensions.cs b/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ExtensionsUi/DrinkDataExtensions.cs index 95ec90f6c..da00d7b3a 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ExtensionsUi/DrinkDataExtensions.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ExtensionsUi/DrinkDataExtensions.cs @@ -4,34 +4,34 @@ namespace DDD { public static class DrinkDataExtensions { - public static List GetIngredients(this DrinkData data) + public static List GetIngredients(this DrinkDataEntry dataEntry) => CraftingHelper.ExtractIngredients( - data.IngredientKey1, data.IngredientAmount1, - data.IngredientKey2, data.IngredientAmount2, - data.IngredientKey3, data.IngredientAmount3, - data.IngredientKey4, data.IngredientAmount4 + dataEntry.IngredientKey1, dataEntry.IngredientAmount1, + dataEntry.IngredientKey2, dataEntry.IngredientAmount2, + dataEntry.IngredientKey3, dataEntry.IngredientAmount3, + dataEntry.IngredientKey4, dataEntry.IngredientAmount4 ); - public static List GetTasteDatas(this DrinkData data) + public static List GetTasteDatas(this DrinkDataEntry dataEntry) => CraftingHelper.ResolveTasteDatas( - new[] { data.TasteKey1, data.TasteKey2, data.TasteKey3, data.TasteKey4, data.TasteKey5, data.TasteKey6 }, - DataManager.Instance.GetDataSo() + new[] { dataEntry.TasteKey1, dataEntry.TasteKey2, dataEntry.TasteKey3, dataEntry.TasteKey4, dataEntry.TasteKey5, dataEntry.TasteKey6 }, + DataManager.Instance.GetDataSo() ); - public static int GetCraftableCount(this DrinkData data) - => CraftingHelper.GetCraftableCount(data.GetIngredients()); + public static int GetCraftableCount(this DrinkDataEntry dataEntry) + => CraftingHelper.GetCraftableCount(dataEntry.GetIngredients()); - public static bool TryConsumeIngredients(this DrinkData data, int count = 1) - => CraftingHelper.TryConsumeIngredients(data.GetIngredients(), count); + public static bool TryConsumeIngredients(this DrinkDataEntry dataEntry, int count = 1) + => CraftingHelper.TryConsumeIngredients(dataEntry.GetIngredients(), count); - public static int ConsumeAllCraftableIngredients(this DrinkData data) + public static int ConsumeAllCraftableIngredients(this DrinkDataEntry dataEntry) { - var ingredients = data.GetIngredients(); + var ingredients = dataEntry.GetIngredients(); int count = CraftingHelper.GetCraftableCount(ingredients); return CraftingHelper.ConsumeAll(ingredients, count); } - public static void RefundIngredients(this DrinkData data, int count = 1) - => CraftingHelper.RefundIngredients(data.GetIngredients(), count); + public static void RefundIngredients(this DrinkDataEntry dataEntry, int count = 1) + => CraftingHelper.RefundIngredients(dataEntry.GetIngredients(), count); } } \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ExtensionsUi/FoodDataExtensions.cs b/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ExtensionsUi/FoodDataExtensions.cs index ddbf6f0e0..491d6923c 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ExtensionsUi/FoodDataExtensions.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ExtensionsUi/FoodDataExtensions.cs @@ -4,33 +4,33 @@ namespace DDD { public static class FoodDataExtensions { - public static List GetIngredients(this FoodData data) => CraftingHelper.ExtractIngredients( - data.IngredientKey1, data.IngredientAmount1, - data.IngredientKey2, data.IngredientAmount2, - data.IngredientKey3, data.IngredientAmount3, - data.IngredientKey4, data.IngredientAmount4 + public static List GetIngredients(this FoodDataEntry dataEntry) => CraftingHelper.ExtractIngredients( + dataEntry.IngredientKey1, dataEntry.IngredientAmount1, + dataEntry.IngredientKey2, dataEntry.IngredientAmount2, + dataEntry.IngredientKey3, dataEntry.IngredientAmount3, + dataEntry.IngredientKey4, dataEntry.IngredientAmount4 ); - public static List GetTasteDatas(this FoodData data) + public static List GetTasteDatas(this FoodDataEntry dataEntry) => CraftingHelper.ResolveTasteDatas( - new[] { data.TasteKey1, data.TasteKey2, data.TasteKey3, data.TasteKey4, data.TasteKey5, data.TasteKey6 }, - DataManager.Instance.GetDataSo() + new[] { dataEntry.TasteKey1, dataEntry.TasteKey2, dataEntry.TasteKey3, dataEntry.TasteKey4, dataEntry.TasteKey5, dataEntry.TasteKey6 }, + DataManager.Instance.GetDataSo() ); - public static int GetCraftableCount(this FoodData data) - => CraftingHelper.GetCraftableCount(data.GetIngredients()); + public static int GetCraftableCount(this FoodDataEntry dataEntry) + => CraftingHelper.GetCraftableCount(dataEntry.GetIngredients()); - public static bool TryConsumeIngredients(this FoodData data, int count = 1) - => CraftingHelper.TryConsumeIngredients(data.GetIngredients(), count); + public static bool TryConsumeIngredients(this FoodDataEntry dataEntry, int count = 1) + => CraftingHelper.TryConsumeIngredients(dataEntry.GetIngredients(), count); - public static int ConsumeAllCraftableIngredients(this FoodData data) + public static int ConsumeAllCraftableIngredients(this FoodDataEntry dataEntry) { - var ingredients = data.GetIngredients(); + var ingredients = dataEntry.GetIngredients(); int count = CraftingHelper.GetCraftableCount(ingredients); return CraftingHelper.ConsumeAll(ingredients, count); } - public static void RefundIngredients(this FoodData data, int count = 1) - => CraftingHelper.RefundIngredients(data.GetIngredients(), count); + public static void RefundIngredients(this FoodDataEntry dataEntry, int count = 1) + => CraftingHelper.RefundIngredients(dataEntry.GetIngredients(), count); } } \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ItemDetailView.cs b/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ItemDetailView.cs index 8c4cf708e..4320bfa2a 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ItemDetailView.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ItemDetailView.cs @@ -16,7 +16,7 @@ public sealed class ItemDetailSnapshot public Sprite CookwareSprite { get; } public LocalizedString Name { get; } public LocalizedString Description { get; } - public IReadOnlyList Tastes { get; } + public IReadOnlyList Tastes { get; } public Material TasteMaterial { get; } public ItemDetailSnapshot( @@ -26,7 +26,7 @@ public ItemDetailSnapshot( Sprite cookwareSprite, LocalizedString name, LocalizedString description, - IReadOnlyList tastes, + IReadOnlyList tastes, Material tasteMaterial) { BackgroundSprite = backgroundSprite; @@ -46,7 +46,7 @@ public ItemDetailSnapshot( cookwareSprite: null, name: null, description: null, - tastes: System.Array.Empty(), + tastes: System.Array.Empty(), tasteMaterial: null); } diff --git a/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ItemUi/ItemModel.cs b/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ItemUi/ItemModel.cs index 4db0f3964..90f2892a7 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ItemUi/ItemModel.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ItemUi/ItemModel.cs @@ -27,18 +27,18 @@ public ItemModel(string id, ItemType itemType) public bool HasItem => Count > 0; public string DisplayName => LocalizationManager.Instance.GetName(Id); - public RecipeType RecipeType => ItemType == ItemType.Recipe ? DataManager.Instance.GetDataSo().GetDataById(Id).RecipeType : RecipeType.None; + public RecipeType RecipeType => ItemType == ItemType.Recipe ? DataManager.Instance.GetDataSo().GetDataById(Id).RecipeType : RecipeType.None; public Sprite ItemSprite { get { if (ItemType == ItemType.Recipe) { - DataManager.Instance.GetDataSo().TryGetDataById(Id, out var recipe); + DataManager.Instance.GetDataSo().TryGetDataById(Id, out var recipe); return DataManager.Instance.GetSprite(recipe.RecipeResult); } - if (DataManager.Instance.GetDataSo().ContainsData(Id)) + if (DataManager.Instance.GetDataSo().ContainsData(Id)) { return DataManager.Instance.GetIcon(Id); } @@ -52,7 +52,7 @@ public string GetRecipeResultKey { if (ItemType != ItemType.Recipe) return null; - return DataManager.Instance.GetDataSo().GetDataById(Id).RecipeResult; + return DataManager.Instance.GetDataSo().GetDataById(Id).RecipeResult; } } @@ -65,8 +65,8 @@ public string GetCookwareKey return RecipeType switch { - RecipeType.FoodRecipe => DataManager.Instance.GetDataSo().GetDataById(resultKey).CookwareKey, - RecipeType.DrinkRecipe => DataManager.Instance.GetDataSo().GetDataById(resultKey).CookwareKey, + RecipeType.FoodRecipe => DataManager.Instance.GetDataSo().GetDataById(resultKey).CookwareKey, + RecipeType.DrinkRecipe => DataManager.Instance.GetDataSo().GetDataById(resultKey).CookwareKey, _ => null }; } @@ -81,8 +81,8 @@ public int GetPrice return RecipeType switch { - RecipeType.FoodRecipe => DataManager.Instance.GetDataSo().GetDataById(resultKey).Price, - RecipeType.DrinkRecipe => DataManager.Instance.GetDataSo().GetDataById(resultKey).Price, + RecipeType.FoodRecipe => DataManager.Instance.GetDataSo().GetDataById(resultKey).Price, + RecipeType.DrinkRecipe => DataManager.Instance.GetDataSo().GetDataById(resultKey).Price, _ => -1 }; } @@ -98,11 +98,11 @@ public Sprite GetCookwareIcon string cookwareKey = null; if (RecipeType == RecipeType.FoodRecipe) { - cookwareKey = DataManager.Instance.GetDataSo().GetDataById(resultKey).CookwareKey; + cookwareKey = DataManager.Instance.GetDataSo().GetDataById(resultKey).CookwareKey; } else if (RecipeType == RecipeType.DrinkRecipe) { - cookwareKey = DataManager.Instance.GetDataSo().GetDataById(resultKey).CookwareKey; + cookwareKey = DataManager.Instance.GetDataSo().GetDataById(resultKey).CookwareKey; } return DataManager.Instance.GetIcon(cookwareKey); } @@ -117,25 +117,25 @@ public List GetIngredients switch (RecipeType) { case RecipeType.FoodRecipe: - return DataManager.Instance.GetDataSo().GetDataById(GetRecipeResultKey).GetIngredients(); + return DataManager.Instance.GetDataSo().GetDataById(GetRecipeResultKey).GetIngredients(); case RecipeType.DrinkRecipe: - return DataManager.Instance.GetDataSo().GetDataById(GetRecipeResultKey).GetIngredients(); + return DataManager.Instance.GetDataSo().GetDataById(GetRecipeResultKey).GetIngredients(); } return null; } } - public List GetTasteDatas + public List GetTasteDatas { get { switch (RecipeType) { case RecipeType.FoodRecipe: - return DataManager.Instance.GetDataSo().GetDataById(GetRecipeResultKey).GetTasteDatas(); + return DataManager.Instance.GetDataSo().GetDataById(GetRecipeResultKey).GetTasteDatas(); case RecipeType.DrinkRecipe: - return DataManager.Instance.GetDataSo().GetDataById(GetRecipeResultKey).GetTasteDatas(); + return DataManager.Instance.GetDataSo().GetDataById(GetRecipeResultKey).GetTasteDatas(); } return null; @@ -153,12 +153,12 @@ public void UpdateCount() if (RecipeType == RecipeType.FoodRecipe) { - var foodData = DataManager.Instance.GetDataSo().GetDataById(resultKey); + var foodData = DataManager.Instance.GetDataSo().GetDataById(resultKey); craftableCount = foodData.GetCraftableCount(); } else if (RecipeType == RecipeType.DrinkRecipe) { - var drinkData = DataManager.Instance.GetDataSo().GetDataById(resultKey); + var drinkData = DataManager.Instance.GetDataSo().GetDataById(resultKey); craftableCount = drinkData.GetCraftableCount(); } diff --git a/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ItemUi/ItemViewModelFactory.cs b/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ItemUi/ItemViewModelFactory.cs index 621d8c10a..4b9be19ca 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ItemUi/ItemViewModelFactory.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/ItemUi/ItemViewModelFactory.cs @@ -33,16 +33,16 @@ public static List CreateRestaurantManagementInventoryItem() private static int CalculateCraftableCount(string recipeId) { - if (!DataManager.Instance.GetDataSo().TryGetDataById(recipeId, out var recipe)) return 0; + if (!DataManager.Instance.GetDataSo().TryGetDataById(recipeId, out var recipe)) return 0; string recipeResult = recipe.RecipeResult; return recipe.RecipeType switch { - RecipeType.FoodRecipe => DataManager.Instance.GetDataSo().TryGetDataById(recipeResult, out var food) + RecipeType.FoodRecipe => DataManager.Instance.GetDataSo().TryGetDataById(recipeResult, out var food) ? food.GetCraftableCount() : 0, - RecipeType.DrinkRecipe => DataManager.Instance.GetDataSo().TryGetDataById(recipeResult, out var drink) + RecipeType.DrinkRecipe => DataManager.Instance.GetDataSo().TryGetDataById(recipeResult, out var drink) ? drink.GetCraftableCount() : 0, _ => 0 @@ -51,7 +51,7 @@ private static int CalculateCraftableCount(string recipeId) public static ItemModel CreateByItemId(string itemId) { - var itemSo = DataManager.Instance.GetDataSo(); + var itemSo = DataManager.Instance.GetDataSo(); if (!itemSo.TryGetDataById(itemId, out var itemData)) return null; if (InventoryManager.Instance.GetItemDataByIdOrNull(itemId) == null) return null; diff --git a/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/RestaurantManagementViewModel.cs b/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/RestaurantManagementViewModel.cs index 4675bc003..3ada7d5d4 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/RestaurantManagementViewModel.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/RestaurantManagementViewModel.cs @@ -252,7 +252,7 @@ public void CreateInventoryItemSlot(Transform parent) } else { - if (DataManager.Instance.GetDataSo().TryGetDataById(model.Id, out var cookwareData)) + if (DataManager.Instance.GetDataSo().TryGetDataById(model.Id, out var cookwareData)) { interactor.Initialize(TodayMenuEventType.Add, new TodayCookwareInteractorStrategy()); } @@ -334,18 +334,18 @@ private bool MatchesCategory(ItemModel model, InventoryCategoryType category) case InventoryCategoryType.Food: if (model.ItemType != ItemType.Recipe) return false; - return DataManager.Instance.GetDataSo() + return DataManager.Instance.GetDataSo() .TryGetDataById(model.Id, out var foodRecipe) && foodRecipe.RecipeType == RecipeType.FoodRecipe; case InventoryCategoryType.Drink: if (model.ItemType != ItemType.Recipe) return false; - return DataManager.Instance.GetDataSo() + return DataManager.Instance.GetDataSo() .TryGetDataById(model.Id, out var drinkRecipe) && drinkRecipe.RecipeType == RecipeType.DrinkRecipe; case InventoryCategoryType.Ingredient: return model.ItemType == ItemType.Ingredient; case InventoryCategoryType.Cookware: - return DataManager.Instance.GetDataSo() + return DataManager.Instance.GetDataSo() .TryGetDataById(model.Id, out var cookwareData); case InventoryCategoryType.Special: return false; @@ -431,7 +431,7 @@ private void RecomputeItemDetail() tasteMaterial: tasteMat); } - public IReadOnlyList GetTastes() => SelectedItem?.GetTasteDatas; + public IReadOnlyList GetTastes() => SelectedItem?.GetTasteDatas; public Material GetTasteMaterial() { diff --git a/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/TasteHashTagSlotUi.cs b/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/TasteHashTagSlotUi.cs index 8d03b22d8..d17b48a71 100644 --- a/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/TasteHashTagSlotUi.cs +++ b/Assets/_DDD/_Scripts/Restaurant/Ui/RestaurantManagementUi/TasteHashTagSlotUi.cs @@ -22,7 +22,7 @@ private void OnDestroy() } } - public void Initialize(Material material, TasteData tasteData) + public void Initialize(Material material, TasteDataEntry tasteDataEntry) { if (_materialInstance != null) { @@ -31,6 +31,6 @@ public void Initialize(Material material, TasteData tasteData) _materialInstance = new Material(material); _backgroundImage.material = _materialInstance; - _localizeStringEvent.StringReference = LocalizationManager.Instance.GetLocalizedName(tasteData.Id); + _localizeStringEvent.StringReference = LocalizationManager.Instance.GetLocalizedName(tasteDataEntry.Id); } } \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/Utilities/Constants.cs b/Assets/_DDD/_Scripts/Utilities/Constants.cs index 7f438dcd7..8bc7ccd7a 100644 --- a/Assets/_DDD/_Scripts/Utilities/Constants.cs +++ b/Assets/_DDD/_Scripts/Utilities/Constants.cs @@ -14,16 +14,16 @@ public static class DataConstants { public const string GameStateSo = "GameStateSo"; public const string InventoryTestDataSo = "InventoryTestDataSo"; - public const string ItemDataSo = "ItemDataSo"; - public const string RecipeDataSo = "RecipeDataSo"; - public const string FoodDataSo = "FoodDataSo"; - public const string DrinkDataSo = "DrinkDataSo"; - public const string IngredientDataSo = "IngredientDataSo"; - public const string CookwareDataSo = "CookwareDataSo"; - public const string TasteDataSo = "TasteDataSo"; - public const string EnvironmentDataSo = "EnvironmentDataSo"; - public const string LevelDataSo = "LevelDataSo"; - public const string CustomerPoolDataSo = "CustomerPoolDataSo"; + public const string ItemDataSo = "ItemDataAsset"; + public const string RecipeDataSo = "RecipeDataAsset"; + public const string FoodDataSo = "FoodDataAsset"; + public const string DrinkDataSo = "DrinkDataAsset"; + public const string IngredientDataSo = "IngredientDataAsset"; + public const string CookwareDataSo = "CookwareDataAsset"; + public const string TasteDataSo = "TasteDataAsset"; + public const string EnvironmentDataSo = "EnvironmentDataAsset"; + public const string LevelDataSo = "LevelDataAsset"; + public const string CustomerPoolDataSo = "CustomerPoolDataAsset"; public const string UiInputBindingSo = "UiInputBindingSo"; public const string RestaurantDataSo = "RestaurantDataSo";