DataManager 로직 변경 및 구글 시트 데이터 최신화

This commit is contained in:
NTG_Lenovo 2025-07-30 18:42:33 +09:00
parent 0c6ec55470
commit cbc1d6982d
35 changed files with 9594 additions and 305 deletions

View File

@ -27,6 +27,12 @@ MonoBehaviour:
m_SerializedLabels: m_SerializedLabels:
- GoogleSheetSo - GoogleSheetSo
FlaggedDuringContentUpdateRestriction: 0 FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 5c7c87af5db0e884eb3b979cb1d2188b
m_Address: CookwareDataSo
m_ReadOnly: 0
m_SerializedLabels:
- GoogleSheetSo
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 7446495d3106eff4ab5b0f9d7d97b579 - m_GUID: 7446495d3106eff4ab5b0f9d7d97b579
m_Address: DrinkDataSo m_Address: DrinkDataSo
m_ReadOnly: 0 m_ReadOnly: 0

View File

@ -4220,11 +4220,11 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 6289760680591803305, guid: 05aeb8078f8dc7c489b71a0ce5bc4fac, type: 3} - target: {fileID: 6289760680591803305, guid: 05aeb8078f8dc7c489b71a0ce5bc4fac, type: 3}
propertyPath: _currentVersion propertyPath: _currentVersion
value: "4 - 2025-07-28 18:14:02 by \uB0A8\uD0DC\uAC74" value: "6 - 2025-07-30 16:48:31 by \uB0A8\uD0DC\uAC74"
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 6289760680591803305, guid: 05aeb8078f8dc7c489b71a0ce5bc4fac, type: 3} - target: {fileID: 6289760680591803305, guid: 05aeb8078f8dc7c489b71a0ce5bc4fac, type: 3}
propertyPath: _refreshTrigger propertyPath: _refreshTrigger
value: 1 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_RemovedGameObjects: [] m_RemovedGameObjects: []

View File

@ -53,6 +53,7 @@ MonoBehaviour:
- RecipeData - RecipeData
- FoodData - FoodData
- DrinkData - DrinkData
- CookwareData
- IngredientData - IngredientData
- TasteData - TasteData
- EnvironmentData - EnvironmentData

File diff suppressed because it is too large Load Diff

View File

@ -8,17 +8,10 @@ namespace DDD
{ {
public class DataManager : Singleton<DataManager>, IManager public class DataManager : Singleton<DataManager>, IManager
{ {
public ItemDataSo ItemDataSo { get; private set; } private readonly Dictionary<Type, ScriptableObject> _dataSoTable = new();
public RecipeDataSo RecipeDataSo { get; private set; }
public FoodDataSo FoodDataSo { get; private set; }
public DrinkDataSo DrinkDataSo { get; private set; }
public IngredientDataSo IngredientDataSo { get; private set; }
public TasteDataSo TasteDataSo { get; private set; }
public EnvironmentDataSo EnvironmentDataSo { get; private set; }
private Dictionary<string, Sprite> _spriteAtlas; private Dictionary<string, Sprite> _spriteAtlas;
public bool IsInitialized { get; private set; } private const string SoLabel = "GoogleSheetSo";
public void PreInit() public void PreInit()
{ {
@ -27,14 +20,30 @@ public void PreInit()
public async Task Init() public async Task Init()
{ {
ItemDataSo = await AssetManager.LoadAsset<ItemDataSo>(DataConstants.ItemDataSo); await LoadAllGameDataSo();
RecipeDataSo = await AssetManager.LoadAsset<RecipeDataSo>(DataConstants.RecipeDataSo); await LoadSpriteAtlas();
FoodDataSo = await AssetManager.LoadAsset<FoodDataSo>(DataConstants.FoodDataSo); }
DrinkDataSo = await AssetManager.LoadAsset<DrinkDataSo>(DataConstants.DrinkDataSo);
IngredientDataSo = await AssetManager.LoadAsset<IngredientDataSo>(DataConstants.IngredientDataSo);
TasteDataSo = await AssetManager.LoadAsset<TasteDataSo>(DataConstants.TasteDataSo);
EnvironmentDataSo = await AssetManager.LoadAsset<EnvironmentDataSo>(DataConstants.EnvironmentDataSo);
public void PostInit()
{
}
private async Task LoadAllGameDataSo()
{
var soList = await AssetManager.LoadAssetsByLabel<ScriptableObject>(SoLabel);
foreach (var so in soList)
{
var type = so.GetType();
_dataSoTable.TryAdd(type, so);
}
Debug.Log($"[DataManager] {_dataSoTable.Count}개의 SO가 로드되었습니다.");
}
private async Task LoadSpriteAtlas()
{
List<SpriteAtlas> spriteAtlases = await AssetManager.LoadAssetsByLabel<SpriteAtlas>(DataConstants.AtlasLabel); List<SpriteAtlas> spriteAtlases = await AssetManager.LoadAssetsByLabel<SpriteAtlas>(DataConstants.AtlasLabel);
_spriteAtlas = new Dictionary<string, Sprite>(spriteAtlases.Count); _spriteAtlas = new Dictionary<string, Sprite>(spriteAtlases.Count);
@ -56,21 +65,17 @@ public async Task Init()
_spriteAtlas.TryAdd(key, sprite); _spriteAtlas.TryAdd(key, sprite);
} }
} }
IsInitialized = true;
} }
public void PostInit() public T GetDataSo<T>() where T : ScriptableObject
{ {
if (_dataSoTable.TryGetValue(typeof(T), out var so))
}
public async Task WaitUntilInitialized()
{
while (!IsInitialized)
{ {
await Task.Yield(); return so as T;
} }
Debug.LogError($"[DataManager] {typeof(T).Name} SO를 찾을 수 없습니다.");
return null;
} }
public Sprite GetSprite(string key) => _spriteAtlas.GetValueOrDefault(key); public Sprite GetSprite(string key) => _spriteAtlas.GetValueOrDefault(key);

View File

@ -38,7 +38,7 @@ public void PostInit()
private void InitializeItemData() private void InitializeItemData()
{ {
var itemDataSo = DataManager.Instance.ItemDataSo; var itemDataSo = DataManager.Instance.GetDataSo<ItemDataSo>();
Debug.Assert(itemDataSo != null, "itemDataSo != null"); Debug.Assert(itemDataSo != null, "itemDataSo != null");
_itemDataLookup = itemDataSo.GetDataList() _itemDataLookup = itemDataSo.GetDataList()

View File

@ -44,7 +44,7 @@ public bool TryAddTodayMenu(ItemSlotUi itemSlotUi)
if (itemSlotUi.Model.ItemType != ItemType.Recipe) return false; if (itemSlotUi.Model.ItemType != ItemType.Recipe) return false;
if (!DataManager.Instance.RecipeDataSo.TryGetDataById(recipeId, out RecipeData recipeData)) return false; if (!DataManager.Instance.GetDataSo<RecipeDataSo>().TryGetDataById(recipeId, out RecipeData recipeData)) return false;
bool added = false; bool added = false;
@ -52,7 +52,7 @@ public bool TryAddTodayMenu(ItemSlotUi itemSlotUi)
{ {
if (_foodRecipeIds.Count >= MaxFoodCount || _foodRecipeIds.ContainsKey(recipeId)) return false; if (_foodRecipeIds.Count >= MaxFoodCount || _foodRecipeIds.ContainsKey(recipeId)) return false;
var foodData = DataManager.Instance.FoodDataSo.GetDataById(recipeData.RecipeResult); var foodData = DataManager.Instance.GetDataSo<FoodDataSo>().GetDataById(recipeData.RecipeResult);
var craftableCount = foodData.GetCraftableCount(); var craftableCount = foodData.GetCraftableCount();
foodData.ConsumeAllCraftableIngredients(); foodData.ConsumeAllCraftableIngredients();
@ -63,7 +63,7 @@ public bool TryAddTodayMenu(ItemSlotUi itemSlotUi)
{ {
if (_drinkRecipeIds.Count >= MaxDrinkCount || _drinkRecipeIds.ContainsKey(recipeId)) return false; if (_drinkRecipeIds.Count >= MaxDrinkCount || _drinkRecipeIds.ContainsKey(recipeId)) return false;
var drinkData = DataManager.Instance.DrinkDataSo.GetDataById(recipeData.RecipeResult); var drinkData = DataManager.Instance.GetDataSo<DrinkDataSo>().GetDataById(recipeData.RecipeResult);
var craftableCount = drinkData.GetCraftableCount(); var craftableCount = drinkData.GetCraftableCount();
drinkData.ConsumeAllCraftableIngredients(); drinkData.ConsumeAllCraftableIngredients();
@ -84,7 +84,7 @@ public bool TryRemoveTodayMenu(ItemSlotUi itemSlotUi)
string recipeId = itemSlotUi.Model.Id; string recipeId = itemSlotUi.Model.Id;
var evt = RestaurantEvents.TodayMenuRemovedEvent; var evt = RestaurantEvents.TodayMenuRemovedEvent;
if (!DataManager.Instance.RecipeDataSo.TryGetDataById(recipeId, out RecipeData recipeData)) return false; if (!DataManager.Instance.GetDataSo<RecipeDataSo>().TryGetDataById(recipeId, out RecipeData recipeData)) return false;
bool removed = false; bool removed = false;
int refundCount = 0; int refundCount = 0;
@ -98,7 +98,7 @@ public bool TryRemoveTodayMenu(ItemSlotUi itemSlotUi)
if (removed) if (removed)
{ {
var foodData = DataManager.Instance.FoodDataSo.GetDataById(recipeData.RecipeResult); var foodData = DataManager.Instance.GetDataSo<FoodDataSo>().GetDataById(recipeData.RecipeResult);
foodData.RefundIngredients(refundCount); foodData.RefundIngredients(refundCount);
} }
} }
@ -112,7 +112,7 @@ public bool TryRemoveTodayMenu(ItemSlotUi itemSlotUi)
if (removed) if (removed)
{ {
var drinkData = DataManager.Instance.DrinkDataSo.GetDataById(recipeData.RecipeResult); var drinkData = DataManager.Instance.GetDataSo<DrinkDataSo>().GetDataById(recipeData.RecipeResult);
drinkData.RefundIngredients(refundCount); drinkData.RefundIngredients(refundCount);
} }
} }

View File

@ -47,10 +47,10 @@ private void RemoveItem()
private IEnumerable<string> GetItemIds() private IEnumerable<string> GetItemIds()
{ {
if (!Application.isPlaying || DataManager.Instance?.ItemDataSo == null) if (!Application.isPlaying || DataManager.Instance?.GetDataSo<ItemDataSo>() == null)
return Enumerable.Empty<string>(); return Enumerable.Empty<string>();
return DataManager.Instance.ItemDataSo.GetDataList() return DataManager.Instance.GetDataSo<ItemDataSo>().GetDataList()
.Select(data => data.Id) .Select(data => data.Id)
.Where(id => !string.IsNullOrEmpty(id)); .Where(id => !string.IsNullOrEmpty(id));
} }

View File

@ -15,7 +15,7 @@ public static List<IngredientEntry> GetIngredients(this DrinkData data)
public static List<TasteData> GetTasteDatas(this DrinkData data) public static List<TasteData> GetTasteDatas(this DrinkData data)
=> CraftingHelper.ResolveTasteDatas( => CraftingHelper.ResolveTasteDatas(
new[] { data.TasteKey1, data.TasteKey2, data.TasteKey3, data.TasteKey4, data.TasteKey5, data.TasteKey6 }, new[] { data.TasteKey1, data.TasteKey2, data.TasteKey3, data.TasteKey4, data.TasteKey5, data.TasteKey6 },
DataManager.Instance.TasteDataSo DataManager.Instance.GetDataSo<TasteDataSo>()
); );
public static int GetCraftableCount(this DrinkData data) public static int GetCraftableCount(this DrinkData data)

View File

@ -14,7 +14,7 @@ public static List<IngredientEntry> GetIngredients(this FoodData data) => Crafti
public static List<TasteData> GetTasteDatas(this FoodData data) public static List<TasteData> GetTasteDatas(this FoodData data)
=> CraftingHelper.ResolveTasteDatas( => CraftingHelper.ResolveTasteDatas(
new[] { data.TasteKey1, data.TasteKey2, data.TasteKey3, data.TasteKey4, data.TasteKey5, data.TasteKey6 }, new[] { data.TasteKey1, data.TasteKey2, data.TasteKey3, data.TasteKey4, data.TasteKey5, data.TasteKey6 },
DataManager.Instance.TasteDataSo DataManager.Instance.GetDataSo<TasteDataSo>()
); );
public static int GetCraftableCount(this FoodData data) public static int GetCraftableCount(this FoodData data)

View File

@ -92,13 +92,17 @@ private bool MatchesCategory(ItemViewModel model, InventoryCategoryType category
case InventoryCategoryType.Food: case InventoryCategoryType.Food:
if (model.ItemType != ItemType.Recipe) return false; if (model.ItemType != ItemType.Recipe) return false;
return DataManager.Instance.RecipeDataSo.TryGetDataById(model.Id, out var foodRecipe) && foodRecipe.RecipeType == RecipeType.FoodRecipe; return DataManager.Instance.GetDataSo<RecipeDataSo>().TryGetDataById(model.Id, out var foodRecipe) && foodRecipe.RecipeType == RecipeType.FoodRecipe;
case InventoryCategoryType.Drink: case InventoryCategoryType.Drink:
if (model.ItemType != ItemType.Recipe) return false; if (model.ItemType != ItemType.Recipe) return false;
return DataManager.Instance.RecipeDataSo.TryGetDataById(model.Id, out var drinkRecipe) && drinkRecipe.RecipeType == RecipeType.DrinkRecipe; return DataManager.Instance.GetDataSo<RecipeDataSo>().TryGetDataById(model.Id, out var drinkRecipe) && drinkRecipe.RecipeType == RecipeType.DrinkRecipe;
case InventoryCategoryType.Ingredient: case InventoryCategoryType.Ingredient:
return model.ItemType == ItemType.Ingredient; return model.ItemType == ItemType.Ingredient;
case InventoryCategoryType.Cookware:
case InventoryCategoryType.Special:
return true;
default: default:
return false; return false;
} }

View File

@ -9,14 +9,14 @@ public class ItemViewModel
public ItemType ItemType; public ItemType ItemType;
public int Count; public int Count;
public RecipeType RecipeType => ItemType == ItemType.Recipe ? DataManager.Instance.RecipeDataSo.GetDataById(Id).RecipeType : RecipeType.None; public RecipeType RecipeType => ItemType == ItemType.Recipe ? DataManager.Instance.GetDataSo<RecipeDataSo>().GetDataById(Id).RecipeType : RecipeType.None;
public Sprite ItemSprite public Sprite ItemSprite
{ {
get get
{ {
if (ItemType == ItemType.Recipe) if (ItemType == ItemType.Recipe)
{ {
DataManager.Instance.RecipeDataSo.TryGetDataById(Id, out var recipe); DataManager.Instance.GetDataSo<RecipeDataSo>().TryGetDataById(Id, out var recipe);
return DataManager.Instance.GetSprite(recipe.RecipeResult); return DataManager.Instance.GetSprite(recipe.RecipeResult);
} }
@ -34,10 +34,10 @@ public Sprite GetCookwareSprite
switch (RecipeType) switch (RecipeType)
{ {
case RecipeType.FoodRecipe: case RecipeType.FoodRecipe:
cookwareSpriteKey = DataManager.Instance.FoodDataSo.GetDataById(GetRecipeResultKey).CookwareType.ToString(); cookwareSpriteKey = DataManager.Instance.GetDataSo<FoodDataSo>().GetDataById(GetRecipeResultKey).CookwareKey;
break; break;
case RecipeType.DrinkRecipe: case RecipeType.DrinkRecipe:
cookwareSpriteKey = DataManager.Instance.DrinkDataSo.GetDataById(GetRecipeResultKey).CookwareType.ToString(); cookwareSpriteKey = DataManager.Instance.GetDataSo<DrinkDataSo>().GetDataById(GetRecipeResultKey).CookwareKey;
break; break;
} }
return DataManager.Instance.GetSprite(cookwareSpriteKey); return DataManager.Instance.GetSprite(cookwareSpriteKey);
@ -50,7 +50,7 @@ public string GetRecipeResultKey
{ {
if (ItemType != ItemType.Recipe) return null; if (ItemType != ItemType.Recipe) return null;
return DataManager.Instance.RecipeDataSo.GetDataById(Id).RecipeResult; return DataManager.Instance.GetDataSo<RecipeDataSo>().GetDataById(Id).RecipeResult;
} }
} }
@ -61,9 +61,9 @@ public List<TasteData> GetTasteDatas
switch (RecipeType) switch (RecipeType)
{ {
case RecipeType.FoodRecipe: case RecipeType.FoodRecipe:
return DataManager.Instance.FoodDataSo.GetDataById(GetRecipeResultKey).GetTasteDatas(); return DataManager.Instance.GetDataSo<FoodDataSo>().GetDataById(GetRecipeResultKey).GetTasteDatas();
case RecipeType.DrinkRecipe: case RecipeType.DrinkRecipe:
return DataManager.Instance.DrinkDataSo.GetDataById(GetRecipeResultKey).GetTasteDatas(); return DataManager.Instance.GetDataSo<DrinkDataSo>().GetDataById(GetRecipeResultKey).GetTasteDatas();
} }
return null; return null;
@ -79,12 +79,12 @@ public void UpdateCount()
if (RecipeType == RecipeType.FoodRecipe) if (RecipeType == RecipeType.FoodRecipe)
{ {
var foodData = DataManager.Instance.FoodDataSo.GetDataById(resultKey); var foodData = DataManager.Instance.GetDataSo<FoodDataSo>().GetDataById(resultKey);
craftableCount = foodData.GetCraftableCount(); craftableCount = foodData.GetCraftableCount();
} }
else if (RecipeType == RecipeType.DrinkRecipe) else if (RecipeType == RecipeType.DrinkRecipe)
{ {
var drinkData = DataManager.Instance.DrinkDataSo.GetDataById(resultKey); var drinkData = DataManager.Instance.GetDataSo<DrinkDataSo>().GetDataById(resultKey);
craftableCount = drinkData.GetCraftableCount(); craftableCount = drinkData.GetCraftableCount();
} }

View File

@ -8,10 +8,10 @@ public static class ItemViewModelFactory
public static List<ItemViewModel> CreateRestaurantManagementInventoryItem() public static List<ItemViewModel> CreateRestaurantManagementInventoryItem()
{ {
var result = new List<ItemViewModel>(); var result = new List<ItemViewModel>();
var recipeDataMap = DataManager.Instance.RecipeDataSo.GetDataList().ToDictionary(r => r.Id, r => r); var recipeDataMap = DataManager.Instance.GetDataSo<RecipeDataSo>().GetDataList().ToDictionary(r => r.Id, r => r);
var foodDataMap = DataManager.Instance.FoodDataSo.GetDataList().ToDictionary(f => f.Id, f => f); var foodDataMap = DataManager.Instance.GetDataSo<FoodDataSo>().GetDataList().ToDictionary(f => f.Id, f => f);
var drinkDataMap = DataManager.Instance.DrinkDataSo.GetDataList().ToDictionary(d => d.Id, d => d); var drinkDataMap = DataManager.Instance.GetDataSo<DrinkDataSo>().GetDataList().ToDictionary(d => d.Id, d => d);
var ingredientDataMap = DataManager.Instance.IngredientDataSo.GetDataList().ToDictionary(i => i.Id, i => i); var ingredientDataMap = DataManager.Instance.GetDataSo<IngredientDataSo>().GetDataList().ToDictionary(i => i.Id, i => i);
foreach (var kvp in InventoryManager.Instance.InventoryItems) foreach (var kvp in InventoryManager.Instance.InventoryItems)
{ {
@ -39,16 +39,16 @@ public static List<ItemViewModel> CreateRestaurantManagementInventoryItem()
private static int CalculateCraftableCount(string recipeId) private static int CalculateCraftableCount(string recipeId)
{ {
if (!DataManager.Instance.RecipeDataSo.TryGetDataById(recipeId, out var recipe)) return 0; if (!DataManager.Instance.GetDataSo<RecipeDataSo>().TryGetDataById(recipeId, out var recipe)) return 0;
string recipeResult = recipe.RecipeResult; string recipeResult = recipe.RecipeResult;
return recipe.RecipeType switch return recipe.RecipeType switch
{ {
RecipeType.FoodRecipe => DataManager.Instance.FoodDataSo.TryGetDataById(recipeResult, out var food) RecipeType.FoodRecipe => DataManager.Instance.GetDataSo<FoodDataSo>().TryGetDataById(recipeResult, out var food)
? food.GetCraftableCount() ? food.GetCraftableCount()
: 0, : 0,
RecipeType.DrinkRecipe => DataManager.Instance.DrinkDataSo.TryGetDataById(recipeResult, out var drink) RecipeType.DrinkRecipe => DataManager.Instance.GetDataSo<DrinkDataSo>().TryGetDataById(recipeResult, out var drink)
? drink.GetCraftableCount() ? drink.GetCraftableCount()
: 0, : 0,
_ => 0 _ => 0
@ -57,7 +57,7 @@ private static int CalculateCraftableCount(string recipeId)
public static ItemViewModel CreateByRecipeId(string recipeId) public static ItemViewModel CreateByRecipeId(string recipeId)
{ {
var recipeSo = DataManager.Instance.RecipeDataSo; var recipeSo = DataManager.Instance.GetDataSo<RecipeDataSo>();
if (!recipeSo.TryGetDataById(recipeId, out var recipe)) return null; if (!recipeSo.TryGetDataById(recipeId, out var recipe)) return null;
var item = InventoryManager.Instance.GetItemDataByIdOrNull(recipeId); var item = InventoryManager.Instance.GetItemDataByIdOrNull(recipeId);

View File

@ -1,4 +1,5 @@
using System; using System;
using System.Collections.Generic;
using TMPro; using TMPro;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
@ -18,7 +19,9 @@ public enum InventoryCategoryType
None = 0, None = 0,
Food, Food,
Drink, Drink,
Ingredient Ingredient,
Cookware,
Special
} }
public class TabButtonUi<T> : MonoBehaviour, IInteractableUi where T : Enum public class TabButtonUi<T> : MonoBehaviour, IInteractableUi where T : Enum
@ -27,7 +30,7 @@ public class TabButtonUi<T> : MonoBehaviour, IInteractableUi where T : Enum
[SerializeField] private Button _button; [SerializeField] private Button _button;
[SerializeField] private Animator _animator; [SerializeField] private Animator _animator;
[SerializeField] private TextMeshProUGUI _label; [SerializeField] private TextMeshProUGUI _label;
[SerializeField] private GameObject _content; [SerializeField] private List<GameObject> _content = new();
private Action<T> _onSelected; private Action<T> _onSelected;
private bool _isSelected; private bool _isSelected;
@ -50,11 +53,7 @@ public void Initialize(Action<T> onSelected)
public void SetSelected(bool isSelected) public void SetSelected(bool isSelected)
{ {
_isSelected = isSelected; _isSelected = isSelected;
SetActiveContents(isSelected);
if (_content)
{
_content.SetActive(isSelected);
}
_button.interactable = !_isSelected; _button.interactable = !_isSelected;
if (_isSelected) if (_isSelected)
{ {
@ -68,6 +67,13 @@ public void SetSelected(bool isSelected)
public bool ButtonIsInteractable => _button != null && _button.interactable; public bool ButtonIsInteractable => _button != null && _button.interactable;
public GameObject ButtonGameObject => _button?.gameObject; public GameObject ButtonGameObject => _button?.gameObject;
private void SetActiveContents(bool isActive)
{
foreach (var content in _content)
{
content.SetActive(isActive);
}
}
public void OnInteract() public void OnInteract()
{ {
_onSelected?.Invoke(TabType); _onSelected?.Invoke(TabType);

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: be71db161987564429bd0e62591815eb
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 582a711af5879c942b17b9936b8871e0
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,20 @@
// <auto-generated>
using System;
using UnityEngine;
namespace DDD
{
[Serializable]
public class CookwareData : IId
{
/// <summary>식별ID</summary>
[Tooltip("식별ID")]
[field: SerializeField]
public string Id { get; set; }
/// <summary>요리도구 타입</summary>
[Tooltip("요리도구 타입")]
public CookwareType CookwareType;
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 41fbff9fffb64f941b07a553fa8615c0

View File

@ -0,0 +1,9 @@
// <auto-generated> File: CookwareDataSo.cs
using System.Collections.Generic;
using UnityEngine;
namespace DDD
{
[CreateAssetMenu(fileName = "CookwareDataSo", menuName = "GoogleSheet/CookwareDataSo")]
public class CookwareDataSo : DataSo<CookwareData> { }
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 26445eed59cfeeb40be052d1792170e2

View File

@ -12,9 +12,9 @@ public class DrinkData : IId
[field: SerializeField] [field: SerializeField]
public string Id { get; set; } public string Id { get; set; }
/// <summary>요리도구</summary> /// <summary>요리도구 키 값</summary>
[Tooltip("요리도구")] [Tooltip("요리도구 키 값")]
public CookwareType CookwareType; public string CookwareKey;
/// <summary>요리시간</summary> /// <summary>요리시간</summary>
[Tooltip("요리시간")] [Tooltip("요리시간")]

View File

@ -12,9 +12,9 @@ public class FoodData : IId
[field: SerializeField] [field: SerializeField]
public string Id { get; set; } public string Id { get; set; }
/// <summary>요리도구 타입</summary> /// <summary>요리도구 키 값</summary>
[Tooltip("요리도구 타입")] [Tooltip("요리도구 키 값")]
public CookwareType CookwareType; public string CookwareKey;
/// <summary>요리시간</summary> /// <summary>요리시간</summary>
[Tooltip("요리시간")] [Tooltip("요리시간")]

View File

@ -255,6 +255,38 @@
"Id": "item_environment_005", "Id": "item_environment_005",
"ItemType:Enum": "Environment" "ItemType:Enum": "Environment"
}, },
{
"Id": "item_environment_cookware_001",
"ItemType:Enum": "Environment"
},
{
"Id": "item_environment_cookware_002",
"ItemType:Enum": "Environment"
},
{
"Id": "item_environment_cookware_003",
"ItemType:Enum": "Environment"
},
{
"Id": "item_environment_cookware_004",
"ItemType:Enum": "Environment"
},
{
"Id": "item_environment_cookware_005",
"ItemType:Enum": "Environment"
},
{
"Id": "item_environment_cookware_006",
"ItemType:Enum": "Environment"
},
{
"Id": "item_environment_cookware_007",
"ItemType:Enum": "Environment"
},
{
"Id": "item_environment_cookware_008",
"ItemType:Enum": "Environment"
},
{ {
"Id": "item_drink_001", "Id": "item_drink_001",
"ItemType:Enum": "Drink" "ItemType:Enum": "Drink"
@ -524,7 +556,7 @@
{ {
"Id:string": "식별ID", "Id:string": "식별ID",
"#Name": "이름", "#Name": "이름",
"CookwareType:Enum": "요리도구 타입", "CookwareKey:string": "요리도구 키 값",
"CookTime:int": "요리시간", "CookTime:int": "요리시간",
"Price:int": "요리가격", "Price:int": "요리가격",
"IngredientKey1:string": "재료1", "IngredientKey1:string": "재료1",
@ -545,7 +577,7 @@
{ {
"Id:string": "item_food_001", "Id:string": "item_food_001",
"#Name": "블루 스튜", "#Name": "블루 스튜",
"CookwareType:Enum": "Pot", "CookwareKey:string": "item_environment_cookware_001",
"CookTime:int": 7, "CookTime:int": 7,
"Price:int": 10, "Price:int": 10,
"IngredientKey1:string": "item_ingredient_001", "IngredientKey1:string": "item_ingredient_001",
@ -566,7 +598,7 @@
{ {
"Id:string": "item_food_002", "Id:string": "item_food_002",
"#Name": "햇빛 스튜", "#Name": "햇빛 스튜",
"CookwareType:Enum": "Pot", "CookwareKey:string": "item_environment_cookware_001",
"CookTime:int": 7, "CookTime:int": 7,
"Price:int": 20, "Price:int": 20,
"IngredientKey1:string": "item_ingredient_002", "IngredientKey1:string": "item_ingredient_002",
@ -587,7 +619,7 @@
{ {
"Id:string": "item_food_003", "Id:string": "item_food_003",
"#Name": "심해기억 스튜", "#Name": "심해기억 스튜",
"CookwareType:Enum": "Pot", "CookwareKey:string": "item_environment_cookware_001",
"CookTime:int": 7, "CookTime:int": 7,
"Price:int": 15, "Price:int": 15,
"IngredientKey1:string": "item_ingredient_002", "IngredientKey1:string": "item_ingredient_002",
@ -608,7 +640,7 @@
{ {
"Id:string": "item_food_004", "Id:string": "item_food_004",
"#Name": "치킨 굴라쉬", "#Name": "치킨 굴라쉬",
"CookwareType:Enum": "Pot", "CookwareKey:string": "item_environment_cookware_001",
"CookTime:int": 10, "CookTime:int": 10,
"Price:int": 30, "Price:int": 30,
"IngredientKey1:string": "item_ingredient_005", "IngredientKey1:string": "item_ingredient_005",
@ -629,7 +661,7 @@
{ {
"Id:string": "item_food_005", "Id:string": "item_food_005",
"#Name": "꿈해초 크로켓", "#Name": "꿈해초 크로켓",
"CookwareType:Enum": "Fryer", "CookwareKey:string": "item_environment_cookware_002",
"CookTime:int": 5, "CookTime:int": 5,
"Price:int": 20, "Price:int": 20,
"IngredientKey1:string": "item_ingredient_007", "IngredientKey1:string": "item_ingredient_007",
@ -650,7 +682,7 @@
{ {
"Id:string": "item_food_006", "Id:string": "item_food_006",
"#Name": "선라이즈 당근카츠", "#Name": "선라이즈 당근카츠",
"CookwareType:Enum": "Fryer", "CookwareKey:string": "item_environment_cookware_002",
"CookTime:int": 5, "CookTime:int": 5,
"Price:int": 30, "Price:int": 30,
"IngredientKey1:string": "item_ingredient_003", "IngredientKey1:string": "item_ingredient_003",
@ -671,7 +703,7 @@
{ {
"Id:string": "item_food_007", "Id:string": "item_food_007",
"#Name": "미정", "#Name": "미정",
"CookwareType:Enum": "Fryer", "CookwareKey:string": "item_environment_cookware_002",
"CookTime:int": 5, "CookTime:int": 5,
"Price:int": 30, "Price:int": 30,
"IngredientKey1:string": "item_ingredient_011", "IngredientKey1:string": "item_ingredient_011",
@ -692,7 +724,7 @@
{ {
"Id:string": "item_food_008", "Id:string": "item_food_008",
"#Name": "비늘치킨덕", "#Name": "비늘치킨덕",
"CookwareType:Enum": "FirePit", "CookwareKey:string": "item_environment_cookware_003",
"CookTime:int": 6, "CookTime:int": 6,
"Price:int": 30, "Price:int": 30,
"IngredientKey1:string": "item_ingredient_012", "IngredientKey1:string": "item_ingredient_012",
@ -713,7 +745,7 @@
{ {
"Id:string": "item_food_009", "Id:string": "item_food_009",
"#Name": "화룡장어 구이", "#Name": "화룡장어 구이",
"CookwareType:Enum": "FirePit", "CookwareKey:string": "item_environment_cookware_003",
"CookTime:int": 6, "CookTime:int": 6,
"Price:int": 15, "Price:int": 15,
"IngredientKey1:string": "item_ingredient_014", "IngredientKey1:string": "item_ingredient_014",
@ -734,7 +766,7 @@
{ {
"Id:string": "item_food_010", "Id:string": "item_food_010",
"#Name": "미정", "#Name": "미정",
"CookwareType:Enum": "FirePit", "CookwareKey:string": "item_environment_cookware_003",
"CookTime:int": 6, "CookTime:int": 6,
"Price:int": 30, "Price:int": 30,
"IngredientKey1:string": "item_ingredient_016", "IngredientKey1:string": "item_ingredient_016",
@ -755,7 +787,7 @@
{ {
"Id:string": "item_food_011", "Id:string": "item_food_011",
"#Name": "바다의선물", "#Name": "바다의선물",
"CookwareType:Enum": "CuttingBoard", "CookwareKey:string": "item_environment_cookware_004",
"CookTime:int": 5, "CookTime:int": 5,
"Price:int": 10, "Price:int": 10,
"IngredientKey1:string": "item_ingredient_002", "IngredientKey1:string": "item_ingredient_002",
@ -776,7 +808,7 @@
{ {
"Id:string": "item_food_012", "Id:string": "item_food_012",
"#Name": "유령새우회", "#Name": "유령새우회",
"CookwareType:Enum": "CuttingBoard", "CookwareKey:string": "item_environment_cookware_004",
"CookTime:int": 5, "CookTime:int": 5,
"Price:int": 25, "Price:int": 25,
"IngredientKey1:string": "item_ingredient_017", "IngredientKey1:string": "item_ingredient_017",
@ -797,7 +829,7 @@
{ {
"Id:string": "item_food_013", "Id:string": "item_food_013",
"#Name": "비늘초무침", "#Name": "비늘초무침",
"CookwareType:Enum": "CuttingBoard", "CookwareKey:string": "item_environment_cookware_004",
"CookTime:int": 5, "CookTime:int": 5,
"Price:int": 45, "Price:int": 45,
"IngredientKey1:string": "item_ingredient_018", "IngredientKey1:string": "item_ingredient_018",
@ -818,7 +850,7 @@
{ {
"Id:string": "item_food_014", "Id:string": "item_food_014",
"#Name": "쫀징어 냉채", "#Name": "쫀징어 냉채",
"CookwareType:Enum": "CuttingBoard", "CookwareKey:string": "item_environment_cookware_004",
"CookTime:int": 5, "CookTime:int": 5,
"Price:int": 15, "Price:int": 15,
"IngredientKey1:string": "item_ingredient_011", "IngredientKey1:string": "item_ingredient_011",
@ -839,7 +871,7 @@
{ {
"Id:string": "item_food_015", "Id:string": "item_food_015",
"#Name": "쫀징어링", "#Name": "쫀징어링",
"CookwareType:Enum": "Griddle", "CookwareKey:string": "item_environment_cookware_005",
"CookTime:int": 8, "CookTime:int": 8,
"Price:int": 25, "Price:int": 25,
"IngredientKey1:string": "item_ingredient_011", "IngredientKey1:string": "item_ingredient_011",
@ -860,7 +892,7 @@
{ {
"Id:string": "item_food_016", "Id:string": "item_food_016",
"#Name": "꿈해파리 볶음", "#Name": "꿈해파리 볶음",
"CookwareType:Enum": "Griddle", "CookwareKey:string": "item_environment_cookware_005",
"CookTime:int": 6, "CookTime:int": 6,
"Price:int": 15, "Price:int": 15,
"IngredientKey1:string": "item_ingredient_019", "IngredientKey1:string": "item_ingredient_019",
@ -881,7 +913,7 @@
{ {
"Id:string": "item_food_017", "Id:string": "item_food_017",
"#Name": "페퍼포칼립스", "#Name": "페퍼포칼립스",
"CookwareType:Enum": "Griddle", "CookwareKey:string": "item_environment_cookware_005",
"CookTime:int": 6, "CookTime:int": 6,
"Price:int": 25, "Price:int": 25,
"IngredientKey1:string": "item_ingredient_012", "IngredientKey1:string": "item_ingredient_012",
@ -902,7 +934,7 @@
{ {
"Id:string": "item_food_018", "Id:string": "item_food_018",
"#Name": "미정", "#Name": "미정",
"CookwareType:Enum": "MagicOven", "CookwareKey:string": "item_environment_cookware_006",
"CookTime:int": 0, "CookTime:int": 0,
"Price:int": 0, "Price:int": 0,
"IngredientKey1:string": "", "IngredientKey1:string": "",
@ -923,7 +955,7 @@
{ {
"Id:string": "item_food_019", "Id:string": "item_food_019",
"#Name": "미정", "#Name": "미정",
"CookwareType:Enum": "MagicOven", "CookwareKey:string": "item_environment_cookware_006",
"CookTime:int": 0, "CookTime:int": 0,
"Price:int": 0, "Price:int": 0,
"IngredientKey1:string": "", "IngredientKey1:string": "",
@ -944,7 +976,7 @@
{ {
"Id:string": "item_food_020", "Id:string": "item_food_020",
"#Name": "미정", "#Name": "미정",
"CookwareType:Enum": "MagicOven", "CookwareKey:string": "item_environment_cookware_006",
"CookTime:int": 0, "CookTime:int": 0,
"Price:int": 0, "Price:int": 0,
"IngredientKey1:string": "", "IngredientKey1:string": "",
@ -967,7 +999,7 @@
{ {
"Id:string": "식별ID", "Id:string": "식별ID",
"#Name": "이름", "#Name": "이름",
"CookwareType:Enum": "요리도구", "CookwareKey:string": "요리도구 키 값",
"CookTime:int": "요리시간", "CookTime:int": "요리시간",
"Price:int": "요리가격", "Price:int": "요리가격",
"IngredientKey1:string": "재료1", "IngredientKey1:string": "재료1",
@ -988,7 +1020,7 @@
{ {
"Id:string": "item_drink_001", "Id:string": "item_drink_001",
"#Name": "토마토 주스", "#Name": "토마토 주스",
"CookwareType:Enum": "JuiceMachine", "CookwareKey:string": "item_environment_cookware_007",
"CookTime:int": 1, "CookTime:int": 1,
"Price:int": 10, "Price:int": 10,
"IngredientKey1:string": "item_ingredient_006", "IngredientKey1:string": "item_ingredient_006",
@ -1009,7 +1041,7 @@
{ {
"Id:string": "item_drink_002", "Id:string": "item_drink_002",
"#Name": "오렌지 주스", "#Name": "오렌지 주스",
"CookwareType:Enum": "JuiceMachine", "CookwareKey:string": "item_environment_cookware_007",
"CookTime:int": 1, "CookTime:int": 1,
"Price:int": 10, "Price:int": 10,
"IngredientKey1:string": "item_ingredient_023", "IngredientKey1:string": "item_ingredient_023",
@ -1030,7 +1062,7 @@
{ {
"Id:string": "item_drink_003", "Id:string": "item_drink_003",
"#Name": "여신의눈물", "#Name": "여신의눈물",
"CookwareType:Enum": "Barrel", "CookwareKey:string": "item_environment_cookware_008",
"CookTime:int": 3, "CookTime:int": 3,
"Price:int": 10, "Price:int": 10,
"IngredientKey1:string": "item_ingredient_008", "IngredientKey1:string": "item_ingredient_008",
@ -1051,7 +1083,7 @@
{ {
"Id:string": "item_drink_004", "Id:string": "item_drink_004",
"#Name": "라벨블루", "#Name": "라벨블루",
"CookwareType:Enum": "Barrel", "CookwareKey:string": "item_environment_cookware_008",
"CookTime:int": 3, "CookTime:int": 3,
"Price:int": 10, "Price:int": 10,
"IngredientKey1:string": "item_ingredient_002", "IngredientKey1:string": "item_ingredient_002",
@ -1168,6 +1200,53 @@
"#Name": "오렌지" "#Name": "오렌지"
} }
], ],
"CookwareData": [
{
"Id:string": "식별ID",
"#Name": "이름",
"CookwareType:Enum": "요리도구 타입"
},
{
"Id:string": "item_environment_cookware_001",
"#Name": "냄비",
"CookwareType:Enum": "Pot"
},
{
"Id:string": "item_environment_cookware_002",
"#Name": "튀김",
"CookwareType:Enum": "Fryer"
},
{
"Id:string": "item_environment_cookware_003",
"#Name": "화로",
"CookwareType:Enum": "FirePit"
},
{
"Id:string": "item_environment_cookware_004",
"#Name": "",
"CookwareType:Enum": "CuttingBoard"
},
{
"Id:string": "item_environment_cookware_005",
"#Name": "",
"CookwareType:Enum": "Griddle"
},
{
"Id:string": "item_environment_cookware_006",
"#Name": "",
"CookwareType:Enum": "MagicOven"
},
{
"Id:string": "item_environment_cookware_007",
"#Name": "",
"CookwareType:Enum": "JuiceMachine"
},
{
"Id:string": "item_environment_cookware_008",
"#Name": "",
"CookwareType:Enum": "Barrel"
}
],
"TasteData": [ "TasteData": [
{ {
"Id:string": "식별ID", "Id:string": "식별ID",
@ -1176,92 +1255,92 @@
}, },
{ {
"Id:string": "Sweet", "Id:string": "Sweet",
"#Name": "", "#Name": "단맛",
"TasteType:Enum": "Sweet" "TasteType:Enum": "Sweet"
}, },
{ {
"Id:string": "Warm", "Id:string": "Warm",
"#Name": "", "#Name": "따뜻한",
"TasteType:Enum": "Warm" "TasteType:Enum": "Warm"
}, },
{ {
"Id:string": "Vegetable", "Id:string": "Vegetable",
"#Name": "", "#Name": "채류",
"TasteType:Enum": "Vegetable" "TasteType:Enum": "Vegetable"
}, },
{ {
"Id:string": "Bitter", "Id:string": "Bitter",
"#Name": "", "#Name": "쓴맛",
"TasteType:Enum": "Bitter" "TasteType:Enum": "Bitter"
}, },
{ {
"Id:string": "Salty", "Id:string": "Salty",
"#Name": "", "#Name": "짠맛",
"TasteType:Enum": "Salty" "TasteType:Enum": "Salty"
}, },
{ {
"Id:string": "Mild", "Id:string": "Mild",
"#Name": "", "#Name": "담백한",
"TasteType:Enum": "Mild" "TasteType:Enum": "Mild"
}, },
{ {
"Id:string": "Addictive", "Id:string": "Addictive",
"#Name": "", "#Name": "중독적인",
"TasteType:Enum": "Addictive" "TasteType:Enum": "Addictive"
}, },
{ {
"Id:string": "Sour", "Id:string": "Sour",
"#Name": "", "#Name": "신맛",
"TasteType:Enum": "Sour" "TasteType:Enum": "Sour"
}, },
{ {
"Id:string": "Savory", "Id:string": "Savory",
"#Name": "", "#Name": "고소한",
"TasteType:Enum": "Savory" "TasteType:Enum": "Savory"
}, },
{ {
"Id:string": "Meat", "Id:string": "Meat",
"#Name": "", "#Name": "육류",
"TasteType:Enum": "Meat" "TasteType:Enum": "Meat"
}, },
{ {
"Id:string": "SuperHot", "Id:string": "SuperHot",
"#Name": "", "#Name": "핵불닭맛",
"TasteType:Enum": "SuperHot" "TasteType:Enum": "SuperHot"
}, },
{ {
"Id:string": "Fish", "Id:string": "Fish",
"#Name": "", "#Name": "어류",
"TasteType:Enum": "Fish" "TasteType:Enum": "Fish"
}, },
{ {
"Id:string": "NoneDegree", "Id:string": "NoneDegree",
"#Name": "", "#Name": "도수가없는",
"TasteType:Enum": "NoneDegree" "TasteType:Enum": "NoneDegree"
}, },
{ {
"Id:string": "Soda", "Id:string": "Soda",
"#Name": "", "#Name": "탄산",
"TasteType:Enum": "Soda" "TasteType:Enum": "Soda"
}, },
{ {
"Id:string": "LowDegree", "Id:string": "LowDegree",
"#Name": "", "#Name": "도수가낮은",
"TasteType:Enum": "LowDegree" "TasteType:Enum": "LowDegree"
}, },
{ {
"Id:string": "WoodFlavor", "Id:string": "WoodFlavor",
"#Name": "", "#Name": "나무향",
"TasteType:Enum": "WoodFlavor" "TasteType:Enum": "WoodFlavor"
}, },
{ {
"Id:string": "MiddleDegree", "Id:string": "MiddleDegree",
"#Name": "", "#Name": "도수가보통인",
"TasteType:Enum": "MiddleDegree" "TasteType:Enum": "MiddleDegree"
}, },
{ {
"Id:string": "FruitFlavor", "Id:string": "FruitFlavor",
"#Name": "", "#Name": "과일향",
"TasteType:Enum": "FruitFlavor" "TasteType:Enum": "FruitFlavor"
} }
], ],

View File

@ -0,0 +1,31 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 26445eed59cfeeb40be052d1792170e2, type: 3}
m_Name: CookwareDataSo
m_EditorClassIdentifier:
Datas:
- <Id>k__BackingField: item_environment_cookware_001
CookwareType: 1
- <Id>k__BackingField: item_environment_cookware_002
CookwareType: 2
- <Id>k__BackingField: item_environment_cookware_003
CookwareType: 3
- <Id>k__BackingField: item_environment_cookware_004
CookwareType: 4
- <Id>k__BackingField: item_environment_cookware_005
CookwareType: 5
- <Id>k__BackingField: item_environment_cookware_006
CookwareType: 6
- <Id>k__BackingField: item_environment_cookware_007
CookwareType: 7
- <Id>k__BackingField: item_environment_cookware_008
CookwareType: 8

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5c7c87af5db0e884eb3b979cb1d2188b
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -14,7 +14,7 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
Datas: Datas:
- <Id>k__BackingField: item_drink_001 - <Id>k__BackingField: item_drink_001
CookwareType: 7 CookwareKey: item_environment_cookware_007
CookTime: 1 CookTime: 1
Price: 10 Price: 10
IngredientKey1: item_ingredient_006 IngredientKey1: item_ingredient_006
@ -32,7 +32,7 @@ MonoBehaviour:
TasteKey5: TasteKey5:
TasteKey6: TasteKey6:
- <Id>k__BackingField: item_drink_002 - <Id>k__BackingField: item_drink_002
CookwareType: 7 CookwareKey: item_environment_cookware_007
CookTime: 1 CookTime: 1
Price: 10 Price: 10
IngredientKey1: item_ingredient_023 IngredientKey1: item_ingredient_023
@ -50,7 +50,7 @@ MonoBehaviour:
TasteKey5: TasteKey5:
TasteKey6: TasteKey6:
- <Id>k__BackingField: item_drink_003 - <Id>k__BackingField: item_drink_003
CookwareType: 8 CookwareKey: item_environment_cookware_008
CookTime: 3 CookTime: 3
Price: 10 Price: 10
IngredientKey1: item_ingredient_008 IngredientKey1: item_ingredient_008
@ -68,7 +68,7 @@ MonoBehaviour:
TasteKey5: TasteKey5:
TasteKey6: TasteKey6:
- <Id>k__BackingField: item_drink_004 - <Id>k__BackingField: item_drink_004
CookwareType: 8 CookwareKey: item_environment_cookware_008
CookTime: 3 CookTime: 3
Price: 10 Price: 10
IngredientKey1: item_ingredient_002 IngredientKey1: item_ingredient_002

View File

@ -14,7 +14,7 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
Datas: Datas:
- <Id>k__BackingField: item_food_001 - <Id>k__BackingField: item_food_001
CookwareType: 1 CookwareKey: item_environment_cookware_001
CookTime: 7 CookTime: 7
Price: 10 Price: 10
IngredientKey1: item_ingredient_001 IngredientKey1: item_ingredient_001
@ -32,7 +32,7 @@ MonoBehaviour:
TasteKey5: TasteKey5:
TasteKey6: TasteKey6:
- <Id>k__BackingField: item_food_002 - <Id>k__BackingField: item_food_002
CookwareType: 1 CookwareKey: item_environment_cookware_001
CookTime: 7 CookTime: 7
Price: 20 Price: 20
IngredientKey1: item_ingredient_002 IngredientKey1: item_ingredient_002
@ -50,7 +50,7 @@ MonoBehaviour:
TasteKey5: TasteKey5:
TasteKey6: TasteKey6:
- <Id>k__BackingField: item_food_003 - <Id>k__BackingField: item_food_003
CookwareType: 1 CookwareKey: item_environment_cookware_001
CookTime: 7 CookTime: 7
Price: 15 Price: 15
IngredientKey1: item_ingredient_002 IngredientKey1: item_ingredient_002
@ -68,7 +68,7 @@ MonoBehaviour:
TasteKey5: TasteKey5:
TasteKey6: TasteKey6:
- <Id>k__BackingField: item_food_004 - <Id>k__BackingField: item_food_004
CookwareType: 1 CookwareKey: item_environment_cookware_001
CookTime: 10 CookTime: 10
Price: 30 Price: 30
IngredientKey1: item_ingredient_005 IngredientKey1: item_ingredient_005
@ -86,7 +86,7 @@ MonoBehaviour:
TasteKey5: TasteKey5:
TasteKey6: TasteKey6:
- <Id>k__BackingField: item_food_005 - <Id>k__BackingField: item_food_005
CookwareType: 2 CookwareKey: item_environment_cookware_002
CookTime: 5 CookTime: 5
Price: 20 Price: 20
IngredientKey1: item_ingredient_007 IngredientKey1: item_ingredient_007
@ -104,7 +104,7 @@ MonoBehaviour:
TasteKey5: TasteKey5:
TasteKey6: TasteKey6:
- <Id>k__BackingField: item_food_006 - <Id>k__BackingField: item_food_006
CookwareType: 2 CookwareKey: item_environment_cookware_002
CookTime: 5 CookTime: 5
Price: 30 Price: 30
IngredientKey1: item_ingredient_003 IngredientKey1: item_ingredient_003
@ -122,7 +122,7 @@ MonoBehaviour:
TasteKey5: TasteKey5:
TasteKey6: TasteKey6:
- <Id>k__BackingField: item_food_007 - <Id>k__BackingField: item_food_007
CookwareType: 2 CookwareKey: item_environment_cookware_002
CookTime: 5 CookTime: 5
Price: 30 Price: 30
IngredientKey1: item_ingredient_011 IngredientKey1: item_ingredient_011
@ -140,7 +140,7 @@ MonoBehaviour:
TasteKey5: TasteKey5:
TasteKey6: TasteKey6:
- <Id>k__BackingField: item_food_008 - <Id>k__BackingField: item_food_008
CookwareType: 3 CookwareKey: item_environment_cookware_003
CookTime: 6 CookTime: 6
Price: 30 Price: 30
IngredientKey1: item_ingredient_012 IngredientKey1: item_ingredient_012
@ -158,7 +158,7 @@ MonoBehaviour:
TasteKey5: TasteKey5:
TasteKey6: TasteKey6:
- <Id>k__BackingField: item_food_009 - <Id>k__BackingField: item_food_009
CookwareType: 3 CookwareKey: item_environment_cookware_003
CookTime: 6 CookTime: 6
Price: 15 Price: 15
IngredientKey1: item_ingredient_014 IngredientKey1: item_ingredient_014
@ -176,7 +176,7 @@ MonoBehaviour:
TasteKey5: TasteKey5:
TasteKey6: TasteKey6:
- <Id>k__BackingField: item_food_010 - <Id>k__BackingField: item_food_010
CookwareType: 3 CookwareKey: item_environment_cookware_003
CookTime: 6 CookTime: 6
Price: 30 Price: 30
IngredientKey1: item_ingredient_016 IngredientKey1: item_ingredient_016
@ -194,7 +194,7 @@ MonoBehaviour:
TasteKey5: TasteKey5:
TasteKey6: TasteKey6:
- <Id>k__BackingField: item_food_011 - <Id>k__BackingField: item_food_011
CookwareType: 4 CookwareKey: item_environment_cookware_004
CookTime: 5 CookTime: 5
Price: 10 Price: 10
IngredientKey1: item_ingredient_002 IngredientKey1: item_ingredient_002
@ -212,7 +212,7 @@ MonoBehaviour:
TasteKey5: TasteKey5:
TasteKey6: TasteKey6:
- <Id>k__BackingField: item_food_012 - <Id>k__BackingField: item_food_012
CookwareType: 4 CookwareKey: item_environment_cookware_004
CookTime: 5 CookTime: 5
Price: 25 Price: 25
IngredientKey1: item_ingredient_017 IngredientKey1: item_ingredient_017
@ -230,7 +230,7 @@ MonoBehaviour:
TasteKey5: TasteKey5:
TasteKey6: TasteKey6:
- <Id>k__BackingField: item_food_013 - <Id>k__BackingField: item_food_013
CookwareType: 4 CookwareKey: item_environment_cookware_004
CookTime: 5 CookTime: 5
Price: 45 Price: 45
IngredientKey1: item_ingredient_018 IngredientKey1: item_ingredient_018
@ -248,7 +248,7 @@ MonoBehaviour:
TasteKey5: TasteKey5:
TasteKey6: TasteKey6:
- <Id>k__BackingField: item_food_014 - <Id>k__BackingField: item_food_014
CookwareType: 4 CookwareKey: item_environment_cookware_004
CookTime: 5 CookTime: 5
Price: 15 Price: 15
IngredientKey1: item_ingredient_011 IngredientKey1: item_ingredient_011
@ -266,7 +266,7 @@ MonoBehaviour:
TasteKey5: TasteKey5:
TasteKey6: TasteKey6:
- <Id>k__BackingField: item_food_015 - <Id>k__BackingField: item_food_015
CookwareType: 5 CookwareKey: item_environment_cookware_005
CookTime: 8 CookTime: 8
Price: 25 Price: 25
IngredientKey1: item_ingredient_011 IngredientKey1: item_ingredient_011
@ -284,7 +284,7 @@ MonoBehaviour:
TasteKey5: TasteKey5:
TasteKey6: TasteKey6:
- <Id>k__BackingField: item_food_016 - <Id>k__BackingField: item_food_016
CookwareType: 5 CookwareKey: item_environment_cookware_005
CookTime: 6 CookTime: 6
Price: 15 Price: 15
IngredientKey1: item_ingredient_019 IngredientKey1: item_ingredient_019
@ -302,7 +302,7 @@ MonoBehaviour:
TasteKey5: TasteKey5:
TasteKey6: TasteKey6:
- <Id>k__BackingField: item_food_017 - <Id>k__BackingField: item_food_017
CookwareType: 5 CookwareKey: item_environment_cookware_005
CookTime: 6 CookTime: 6
Price: 25 Price: 25
IngredientKey1: item_ingredient_012 IngredientKey1: item_ingredient_012
@ -320,7 +320,7 @@ MonoBehaviour:
TasteKey5: TasteKey5:
TasteKey6: TasteKey6:
- <Id>k__BackingField: item_food_018 - <Id>k__BackingField: item_food_018
CookwareType: 6 CookwareKey: item_environment_cookware_006
CookTime: 0 CookTime: 0
Price: 0 Price: 0
IngredientKey1: IngredientKey1:
@ -338,7 +338,7 @@ MonoBehaviour:
TasteKey5: TasteKey5:
TasteKey6: TasteKey6:
- <Id>k__BackingField: item_food_019 - <Id>k__BackingField: item_food_019
CookwareType: 6 CookwareKey: item_environment_cookware_006
CookTime: 0 CookTime: 0
Price: 0 Price: 0
IngredientKey1: IngredientKey1:
@ -356,7 +356,7 @@ MonoBehaviour:
TasteKey5: TasteKey5:
TasteKey6: TasteKey6:
- <Id>k__BackingField: item_food_020 - <Id>k__BackingField: item_food_020
CookwareType: 6 CookwareKey: item_environment_cookware_006
CookTime: 0 CookTime: 0
Price: 0 Price: 0
IngredientKey1: IngredientKey1:

View File

@ -109,6 +109,22 @@ MonoBehaviour:
ItemType: 3 ItemType: 3
- <Id>k__BackingField: item_environment_005 - <Id>k__BackingField: item_environment_005
ItemType: 3 ItemType: 3
- <Id>k__BackingField: item_environment_cookware_001
ItemType: 3
- <Id>k__BackingField: item_environment_cookware_002
ItemType: 3
- <Id>k__BackingField: item_environment_cookware_003
ItemType: 3
- <Id>k__BackingField: item_environment_cookware_004
ItemType: 3
- <Id>k__BackingField: item_environment_cookware_005
ItemType: 3
- <Id>k__BackingField: item_environment_cookware_006
ItemType: 3
- <Id>k__BackingField: item_environment_cookware_007
ItemType: 3
- <Id>k__BackingField: item_environment_cookware_008
ItemType: 3
- <Id>k__BackingField: item_drink_001 - <Id>k__BackingField: item_drink_001
ItemType: 4 ItemType: 4
- <Id>k__BackingField: item_drink_002 - <Id>k__BackingField: item_drink_002

View File

@ -40,7 +40,7 @@ private void LoadOrCreateRestaurantState()
private void GenerateDummyEnvironmentProps() private void GenerateDummyEnvironmentProps()
{ {
// Make dummy placement data // Make dummy placement data
foreach (EnvironmentData prop in DataManager.Instance.EnvironmentDataSo.GetDataList()) foreach (EnvironmentData prop in DataManager.Instance.GetDataSo<EnvironmentDataSo>().GetDataList())
{ {
for (int i = 0; i < 10; i++) for (int i = 0; i < 10; i++)
{ {

View File

@ -15,9 +15,7 @@ public class RestaurantEnvironment : MonoBehaviour
public async void Initialize(RestaurantEnvironmentData data) public async void Initialize(RestaurantEnvironmentData data)
{ {
await DataManager.Instance.WaitUntilInitialized(); EnvironmentData environmentData = DataManager.Instance.GetDataSo<EnvironmentDataSo>().GetDataById(data.Id);
EnvironmentData environmentData = DataManager.Instance.EnvironmentDataSo.GetDataById(data.Id);
_collider = GetComponent<Collider>(); _collider = GetComponent<Collider>();
_visualLook = transform.Find(CommonConstants.VisualLook); _visualLook = transform.Find(CommonConstants.VisualLook);

View File

@ -17,6 +17,7 @@ public static class DataConstants
public const string FoodDataSo = "FoodDataSo"; public const string FoodDataSo = "FoodDataSo";
public const string DrinkDataSo = "DrinkDataSo"; public const string DrinkDataSo = "DrinkDataSo";
public const string IngredientDataSo = "IngredientDataSo"; public const string IngredientDataSo = "IngredientDataSo";
public const string CookwareDataSo = "CookwareDataSo";
public const string TasteDataSo = "TasteDataSo"; public const string TasteDataSo = "TasteDataSo";
public const string EnvironmentDataSo = "EnvironmentDataSo"; public const string EnvironmentDataSo = "EnvironmentDataSo";
public const string RestaurantPlayerDataSo = "RestaurantPlayerDataSo"; public const string RestaurantPlayerDataSo = "RestaurantPlayerDataSo";