From 9bae1b0f41117f051c25634bf447572cccc5ef60 Mon Sep 17 00:00:00 2001 From: Jeonghyeon Ha Date: Thu, 17 Jul 2025 15:20:30 +0900 Subject: [PATCH 1/2] =?UTF-8?q?DDD-63=20=EB=A0=88=EC=8A=A4=ED=86=A0?= =?UTF-8?q?=EB=9E=91=20=EC=83=81=ED=83=9C=20=EA=B8=B0=EB=B0=98=20=ED=83=9C?= =?UTF-8?q?=EC=8A=A4=ED=81=AC=20=EB=B0=8F=20=EB=A0=88=EC=8A=A4=ED=86=A0?= =?UTF-8?q?=EB=9E=91=20=EC=BB=A8=ED=8A=B8=EB=A1=A4=EB=9F=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_DDD/_Scripts/GameFlow/GameFlowManager.cs | 23 +----- ...ameFlowReadyHandler.cs => GameFlowTask.cs} | 2 +- .../_Scripts/GameFlow/IGameFlowHandler.cs | 9 +++ .../CreateRestaurantPlayer.cs | 2 +- .../RestaurantController.cs | 76 +++++++++++++++++++ .../CreateEnvironment.cs | 28 ++----- .../RestaurantEnvironment.cs | 11 +-- .../RestaurantEnvironmentData.cs | 0 .../RestaurantEnvironmentDataSo.cs | 0 .../RestaurantEnvironmentState.cs | 13 ++++ 10 files changed, 110 insertions(+), 54 deletions(-) rename Assets/_DDD/_Scripts/GameFlow/{GameFlowReadyHandler.cs => GameFlowTask.cs} (69%) create mode 100644 Assets/_DDD/_Scripts/GameFlow/IGameFlowHandler.cs create mode 100644 Assets/_DDD/_Scripts/RestaurantController/RestaurantController.cs rename Assets/_DDD/_Scripts/{RestaurantEnvironment => RestaurantState}/RestaurantEnvironmentData.cs (100%) rename Assets/_DDD/_Scripts/{RestaurantEnvironment => RestaurantState}/RestaurantEnvironmentDataSo.cs (100%) create mode 100644 Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentState.cs diff --git a/Assets/_DDD/_Scripts/GameFlow/GameFlowManager.cs b/Assets/_DDD/_Scripts/GameFlow/GameFlowManager.cs index 109080e86..5c4cf76e4 100644 --- a/Assets/_DDD/_Scripts/GameFlow/GameFlowManager.cs +++ b/Assets/_DDD/_Scripts/GameFlow/GameFlowManager.cs @@ -17,8 +17,8 @@ public enum GameFlowState public class GameFlowManager : Singleton, IManager { public GameFlowDataSo GameFlowDataSo; - public GameFlowAssetsSo GameFlowAssetsSo; public GameFlowSceneMappingSo GameFlowSceneMappingSo; + public List FlowHandlers = new List(); public void Init() { @@ -69,27 +69,6 @@ private async Task ReadyNewFlow(GameFlowState newFlowState) { GameFlowDataSo.CurrentGameState = newFlowState; - if (GameFlowAssetsSo.FlowItems.TryGetValue(newFlowState, out var stringKeys)) - { - foreach (var key in stringKeys) - { - await AssetManager.LoadAsset(key); - } - } - - if (GameFlowAssetsSo.FlowAssets.TryGetValue(newFlowState, out var assetRefs)) - { - foreach (var assetRef in assetRefs) - { - var obj = await AssetManager.LoadAsset(assetRef); - - if (obj is GameFlowReadyHandler handler) - { - await handler.OnReadyNewFlow(newFlowState); - } - } - } - OpenFlowScene(newFlowState); StartFlow(); diff --git a/Assets/_DDD/_Scripts/GameFlow/GameFlowReadyHandler.cs b/Assets/_DDD/_Scripts/GameFlow/GameFlowTask.cs similarity index 69% rename from Assets/_DDD/_Scripts/GameFlow/GameFlowReadyHandler.cs rename to Assets/_DDD/_Scripts/GameFlow/GameFlowTask.cs index 3f79cd3b7..fbc42f2fa 100644 --- a/Assets/_DDD/_Scripts/GameFlow/GameFlowReadyHandler.cs +++ b/Assets/_DDD/_Scripts/GameFlow/GameFlowTask.cs @@ -3,7 +3,7 @@ namespace DDD { - public abstract class GameFlowReadyHandler : ScriptableObject + public abstract class GameFlowTask : ScriptableObject { public abstract Task OnReadyNewFlow(GameFlowState newFlowState); } diff --git a/Assets/_DDD/_Scripts/GameFlow/IGameFlowHandler.cs b/Assets/_DDD/_Scripts/GameFlow/IGameFlowHandler.cs new file mode 100644 index 000000000..3089ff6cb --- /dev/null +++ b/Assets/_DDD/_Scripts/GameFlow/IGameFlowHandler.cs @@ -0,0 +1,9 @@ +using System.Threading.Tasks; + +namespace DDD +{ + public interface IGameFlowHandler + { + public Task OnReadyNewFlow(GameFlowState newFlowState); + } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantCharacter/CreateRestaurantPlayer.cs b/Assets/_DDD/_Scripts/RestaurantCharacter/CreateRestaurantPlayer.cs index 81e29ce4e..2fc6891b4 100644 --- a/Assets/_DDD/_Scripts/RestaurantCharacter/CreateRestaurantPlayer.cs +++ b/Assets/_DDD/_Scripts/RestaurantCharacter/CreateRestaurantPlayer.cs @@ -4,7 +4,7 @@ namespace DDD { [CreateAssetMenu(fileName = "CreateRestaurantPlayer", menuName = "GameFlow/CreateRestaurantPlayer")] - public class CreateRestaurantPlayer : GameFlowReadyHandler + public class CreateRestaurantPlayer : GameFlowTask { [SerializeField] private Vector3 _spawnPosition; diff --git a/Assets/_DDD/_Scripts/RestaurantController/RestaurantController.cs b/Assets/_DDD/_Scripts/RestaurantController/RestaurantController.cs new file mode 100644 index 000000000..f1a449a95 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantController/RestaurantController.cs @@ -0,0 +1,76 @@ +using System.Threading.Tasks; +using UnityEngine; + +namespace DDD +{ + public class RestaurantController : Singleton, IManager, IGameFlowHandler + { + private RestaurantEnvironmentState _restaurantEnvironmentState; + public RestaurantEnvironmentState RestaurantEnvironmentState => _restaurantEnvironmentState; + + // TODO : GameManager에 등록되게 So에 추가해주세요. + + public void Init() + { + LoadOrCreateRestaurantState(); + RegisterFlowHandler(); + } + + public void PostInit() + { + GenerateDummyEnvironmentProps();// XXX : DUMMY! REMOVE THIS + } + + private void RegisterFlowHandler() + { + GameFlowManager.Instance.FlowHandlers.Add(this); + } + + private void LoadOrCreateRestaurantState() + { + // TODO : Load states from saved files. if none, create them. + _restaurantEnvironmentState = new RestaurantEnvironmentState(); + } + + private void GenerateDummyEnvironmentProps() + { + // Make dummy placement data + foreach (EnvironmentData prop in DataManager.Instance.EnvironmentDataSo.GetDataList()) + { + if (prop.EnvironmentType != EnvironmentType.Prop) + { + continue; + } + + for (int i = 0; i < 10; i++) + { + // Make random position + Vector2 randomPos = new Vector2( + Random.Range(-10f, 10f), + Random.Range(10f, 20f) + ); + RestaurantEnvironmentData randomPropData = new RestaurantEnvironmentData(); + randomPropData.Position = randomPos; + randomPropData.Id = prop.Id; + _restaurantEnvironmentState.RestaurantEnvironmentProps.Add(randomPropData); + } + } + } + + + public Task OnReadyNewFlow(GameFlowState newFlowState) + { + if (newFlowState == GameFlowState.ReadyForRestaurant) + { + CreateRestaurantPlayer createRestaurantPlayerJob = new CreateRestaurantPlayer(); + CreateEnvironment createEnvironmentJob = new CreateEnvironment(); + var playerHandle = createRestaurantPlayerJob.OnReadyNewFlow(newFlowState); + var propHandle = createEnvironmentJob.OnReadyNewFlow(newFlowState); + // Combine handles and return it + return Task.WhenAll(playerHandle, propHandle); + } + + return Task.CompletedTask; + } + } +} \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantEnvironment/CreateEnvironment.cs b/Assets/_DDD/_Scripts/RestaurantEnvironment/CreateEnvironment.cs index 9a023babe..cebb28c5b 100644 --- a/Assets/_DDD/_Scripts/RestaurantEnvironment/CreateEnvironment.cs +++ b/Assets/_DDD/_Scripts/RestaurantEnvironment/CreateEnvironment.cs @@ -4,34 +4,18 @@ namespace DDD { [CreateAssetMenu(fileName = "CreateEnvironment", menuName = "GameFlow/CreateEnvironment")] - public class CreateEnvironment : GameFlowReadyHandler + public class CreateEnvironment : GameFlowTask { public override async Task OnReadyNewFlow(GameFlowState newFlowState) { var baseRestaurantEnvironmentPrefab = await AssetManager.LoadAsset(CommonConstants.BaseRestaurantEnvironment); - for (int i = 0; i < 10; i++) + var props = RestaurantController.Instance.RestaurantEnvironmentState.RestaurantEnvironmentProps; + foreach (var prop in props) { - var restaurantEnvironment = Instantiate(baseRestaurantEnvironmentPrefab).GetComponent(); - restaurantEnvironment.Initialize("Item_Environment_001"); - } - - for (int i = 0; i < 10; i++) - { - var restaurantEnvironment = Instantiate(baseRestaurantEnvironmentPrefab).GetComponent(); - restaurantEnvironment.Initialize("Item_Environment_002"); - } - - for (int i = 0; i < 10; i++) - { - var restaurantEnvironment = Instantiate(baseRestaurantEnvironmentPrefab).GetComponent(); - restaurantEnvironment.Initialize("Item_Environment_003"); - } - - for (int i = 0; i < 10; i++) - { - var restaurantEnvironment = Instantiate(baseRestaurantEnvironmentPrefab).GetComponent(); - restaurantEnvironment.Initialize("Item_Environment_004"); + var restaurantEnvironment = + Instantiate(baseRestaurantEnvironmentPrefab).GetComponent(); + restaurantEnvironment.Initialize(prop); } } } diff --git a/Assets/_DDD/_Scripts/RestaurantEnvironment/RestaurantEnvironment.cs b/Assets/_DDD/_Scripts/RestaurantEnvironment/RestaurantEnvironment.cs index 4103c4c36..21d5a7152 100644 --- a/Assets/_DDD/_Scripts/RestaurantEnvironment/RestaurantEnvironment.cs +++ b/Assets/_DDD/_Scripts/RestaurantEnvironment/RestaurantEnvironment.cs @@ -12,11 +12,11 @@ public class RestaurantEnvironment : MonoBehaviour private Transform _visualLook; private Renderer _renderer; - public async void Initialize(string id) + public async void Initialize(RestaurantEnvironmentData data) { await DataManager.Instance.WaitUntilInitialized(); - EnvironmentData environmentData = DataManager.Instance.EnvironmentDataSo.GetDataById(id); + EnvironmentData environmentData = DataManager.Instance.EnvironmentDataSo.GetDataById(data.Id); _collider = GetComponent(); _visualLook = transform.Find(CommonConstants.VisualLook); @@ -48,12 +48,7 @@ public async void Initialize(string id) _collider.isTrigger = environmentData.IsTrigger == 1; - Vector2 randomPos = new Vector2( - Random.Range(-10f, 10f), - Random.Range(10f, 20f) - ); - - transform.position = new Vector3(randomPos.x, 0f, randomPos.y); + transform.position = new Vector3(data.Position.x, 0f, data.Position.y); transform.localScale = Vector3.one * environmentData.Size; } } diff --git a/Assets/_DDD/_Scripts/RestaurantEnvironment/RestaurantEnvironmentData.cs b/Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentData.cs similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantEnvironment/RestaurantEnvironmentData.cs rename to Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentData.cs diff --git a/Assets/_DDD/_Scripts/RestaurantEnvironment/RestaurantEnvironmentDataSo.cs b/Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentDataSo.cs similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantEnvironment/RestaurantEnvironmentDataSo.cs rename to Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentDataSo.cs diff --git a/Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentState.cs b/Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentState.cs new file mode 100644 index 000000000..e8e53c3d3 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentState.cs @@ -0,0 +1,13 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace DDD +{ + // [CreateAssetMenu(fileName = "FILENAME", menuName = "MENUNAME", order = 0)] + public class RestaurantEnvironmentState : ScriptableObject + { + // TODO : Public??? + public List RestaurantEnvironmentProps = new List(); + public List RestaurantEnvironmentObjects = new List(); + } +} \ No newline at end of file From 29b5d3db727d7e77b81b12079f3a5222cb486125 Mon Sep 17 00:00:00 2001 From: Jeonghyeon Ha Date: Thu, 17 Jul 2025 15:20:58 +0900 Subject: [PATCH 2/2] DDD-63 updated metadate and prefabs --- .../Prefabs/RestaurantController.prefab | 47 +++++++++++++ .../Prefabs/RestaurantController.prefab.meta | 7 ++ .../_ScriptAssets/So/GameFlowAssetsSo.asset | 66 +------------------ ...dyHandler.cs.meta => GameFlowTask.cs.meta} | 0 .../GameFlow/IGameFlowHandler.cs.meta | 3 + .../_DDD/_Scripts/RestaurantController.meta | 3 + .../RestaurantController.cs.meta | 3 + Assets/_DDD/_Scripts/RestaurantState.meta | 3 + .../RestaurantEnvironmentData.cs.meta | 0 .../RestaurantEnvironmentDataSo.cs.meta | 0 .../RestaurantEnvironmentState.cs.meta | 3 + 11 files changed, 70 insertions(+), 65 deletions(-) create mode 100644 Assets/_DDD/_ScriptAssets/Prefabs/RestaurantController.prefab create mode 100644 Assets/_DDD/_ScriptAssets/Prefabs/RestaurantController.prefab.meta rename Assets/_DDD/_Scripts/GameFlow/{GameFlowReadyHandler.cs.meta => GameFlowTask.cs.meta} (100%) create mode 100644 Assets/_DDD/_Scripts/GameFlow/IGameFlowHandler.cs.meta create mode 100644 Assets/_DDD/_Scripts/RestaurantController.meta create mode 100644 Assets/_DDD/_Scripts/RestaurantController/RestaurantController.cs.meta create mode 100644 Assets/_DDD/_Scripts/RestaurantState.meta rename Assets/_DDD/_Scripts/{RestaurantEnvironment => RestaurantState}/RestaurantEnvironmentData.cs.meta (100%) rename Assets/_DDD/_Scripts/{RestaurantEnvironment => RestaurantState}/RestaurantEnvironmentDataSo.cs.meta (100%) create mode 100644 Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentState.cs.meta diff --git a/Assets/_DDD/_ScriptAssets/Prefabs/RestaurantController.prefab b/Assets/_DDD/_ScriptAssets/Prefabs/RestaurantController.prefab new file mode 100644 index 000000000..786cdcddf --- /dev/null +++ b/Assets/_DDD/_ScriptAssets/Prefabs/RestaurantController.prefab @@ -0,0 +1,47 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4494202516554020285 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 19655205931395604} + - component: {fileID: 8500549904376788358} + m_Layer: 0 + m_Name: RestaurantController + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &19655205931395604 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4494202516554020285} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 3.0732, y: 0, z: 18.71973} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8500549904376788358 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4494202516554020285} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e51cd804b1464fb282ba2729ddffae69, type: 3} + m_Name: + m_EditorClassIdentifier: + _persistent: 0 diff --git a/Assets/_DDD/_ScriptAssets/Prefabs/RestaurantController.prefab.meta b/Assets/_DDD/_ScriptAssets/Prefabs/RestaurantController.prefab.meta new file mode 100644 index 000000000..a7199402c --- /dev/null +++ b/Assets/_DDD/_ScriptAssets/Prefabs/RestaurantController.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d81cf4649bf54485a8b0da7a235f3817 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_DDD/_ScriptAssets/So/GameFlowAssetsSo.asset b/Assets/_DDD/_ScriptAssets/So/GameFlowAssetsSo.asset index 32677509b..e68c2d6c5 100644 --- a/Assets/_DDD/_ScriptAssets/So/GameFlowAssetsSo.asset +++ b/Assets/_DDD/_ScriptAssets/So/GameFlowAssetsSo.asset @@ -56,71 +56,7 @@ MonoBehaviour: Data: 1 - Name: Entry: 12 - Data: 1 - - Name: - Entry: 7 - Data: - - Name: $k - Entry: 3 - Data: 1 - - Name: $v - Entry: 7 - Data: 3|System.Collections.Generic.List`1[[UnityEngine.AddressableAssets.AssetReference, - Unity.Addressables]], mscorlib - - Name: - Entry: 12 - Data: 2 - - Name: - Entry: 7 - Data: 4|UnityEngine.AddressableAssets.AssetReference, Unity.Addressables - - Name: m_AssetGUID - Entry: 1 - Data: 47e757b9a170ab649af14c4d7b80ac41 - - Name: m_SubObjectName - Entry: 6 - Data: - - Name: m_SubObjectType - Entry: 6 - Data: - - Name: m_SubObjectGUID - Entry: 1 - Data: - - Name: m_EditorAssetChanged - Entry: 5 - Data: true - - Name: - Entry: 8 - Data: - - Name: - Entry: 7 - Data: 5|UnityEngine.AddressableAssets.AssetReference, Unity.Addressables - - Name: m_AssetGUID - Entry: 1 - Data: 0912c3de85fd61848a41575faa2794ed - - Name: m_SubObjectName - Entry: 6 - Data: - - Name: m_SubObjectType - Entry: 6 - Data: - - Name: m_SubObjectGUID - Entry: 1 - Data: - - Name: m_EditorAssetChanged - Entry: 5 - Data: true - - Name: - Entry: 8 - Data: - - Name: - Entry: 13 - Data: - - Name: - Entry: 8 - Data: - - Name: - Entry: 8 - Data: + Data: 0 - Name: Entry: 13 Data: diff --git a/Assets/_DDD/_Scripts/GameFlow/GameFlowReadyHandler.cs.meta b/Assets/_DDD/_Scripts/GameFlow/GameFlowTask.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/GameFlow/GameFlowReadyHandler.cs.meta rename to Assets/_DDD/_Scripts/GameFlow/GameFlowTask.cs.meta diff --git a/Assets/_DDD/_Scripts/GameFlow/IGameFlowHandler.cs.meta b/Assets/_DDD/_Scripts/GameFlow/IGameFlowHandler.cs.meta new file mode 100644 index 000000000..baf1bb365 --- /dev/null +++ b/Assets/_DDD/_Scripts/GameFlow/IGameFlowHandler.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 57907d840def417997b2511445a85da5 +timeCreated: 1752732011 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantController.meta b/Assets/_DDD/_Scripts/RestaurantController.meta new file mode 100644 index 000000000..28b5a3105 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantController.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: f3de96aa3cc24115ac3b7531effd5040 +timeCreated: 1752730369 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantController/RestaurantController.cs.meta b/Assets/_DDD/_Scripts/RestaurantController/RestaurantController.cs.meta new file mode 100644 index 000000000..ed1ff821c --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantController/RestaurantController.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: e51cd804b1464fb282ba2729ddffae69 +timeCreated: 1752730386 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantState.meta b/Assets/_DDD/_Scripts/RestaurantState.meta new file mode 100644 index 000000000..76d801e45 --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantState.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: d3f6e4fcc2934f36970e3a1077fb3c70 +timeCreated: 1752729763 \ No newline at end of file diff --git a/Assets/_DDD/_Scripts/RestaurantEnvironment/RestaurantEnvironmentData.cs.meta b/Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentData.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantEnvironment/RestaurantEnvironmentData.cs.meta rename to Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentData.cs.meta diff --git a/Assets/_DDD/_Scripts/RestaurantEnvironment/RestaurantEnvironmentDataSo.cs.meta b/Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentDataSo.cs.meta similarity index 100% rename from Assets/_DDD/_Scripts/RestaurantEnvironment/RestaurantEnvironmentDataSo.cs.meta rename to Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentDataSo.cs.meta diff --git a/Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentState.cs.meta b/Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentState.cs.meta new file mode 100644 index 000000000..70b77fd9b --- /dev/null +++ b/Assets/_DDD/_Scripts/RestaurantState/RestaurantEnvironmentState.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 0c87c6773ca54d81ab1d8c2e218081c4 +timeCreated: 1752729814 \ No newline at end of file