From 1b5e1b935940979e8f4a872538d2ffdc274736bd Mon Sep 17 00:00:00 2001 From: Vladimir Koshevarov Date: Sun, 5 Mar 2023 18:37:28 +0200 Subject: [PATCH] Fridge can store food --- Assets/Prefabs/CashierDesk.prefab | 18 +-- Assets/Prefabs/PlasticBag.prefab | 142 ++++++++++++++++++ Assets/Prefabs/PlasticBag.prefab.meta | 7 + Assets/Prefabs/bag-with-handle Variant.prefab | 4 +- Assets/Scenes/TestRoom.unity | 41 ++++- .../InteractableObjects/CashierDesk.cs | 39 +++++ .../InteractableObjects/CashierDesk.cs.meta | 11 ++ .../InteractableObjects/Items/FoodItem.cs | 13 +- .../InteractableObjects/ShopingBasket.cs | 2 +- .../ScriptableObjects/PlasticBag.asset | 17 +++ .../ScriptableObjects/PlasticBag.asset.meta | 8 + Assets/Scripts/UIElements/ContainerItemsUI.cs | 6 +- 12 files changed, 273 insertions(+), 35 deletions(-) create mode 100644 Assets/Prefabs/PlasticBag.prefab create mode 100644 Assets/Prefabs/PlasticBag.prefab.meta create mode 100644 Assets/Scripts/InteractableObjects/CashierDesk.cs create mode 100644 Assets/Scripts/InteractableObjects/CashierDesk.cs.meta create mode 100644 Assets/Scripts/ScriptableObjects/PlasticBag.asset create mode 100644 Assets/Scripts/ScriptableObjects/PlasticBag.asset.meta diff --git a/Assets/Prefabs/CashierDesk.prefab b/Assets/Prefabs/CashierDesk.prefab index bae01215..a79f4ac3 100644 --- a/Assets/Prefabs/CashierDesk.prefab +++ b/Assets/Prefabs/CashierDesk.prefab @@ -40,7 +40,6 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 7908616180235619651} - - component: {fileID: 6310266293964722079} m_Layer: 6 m_Name: CashierDesk m_TagString: Untagged @@ -64,21 +63,8 @@ Transform: - {fileID: 236322353151543006} - {fileID: 5263837543333092293} m_Father: {fileID: 0} - m_RootOrder: -1 + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: -90, z: 0} ---- !u!114 &6310266293964722079 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5577632863133830020} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2af31bf77e63ee64da69d7c708550949, type: 3} - m_Name: - m_EditorClassIdentifier: - _playerArrivePoint: {fileID: 1595984948554774838} --- !u!1 &8562307062121537200 GameObject: m_ObjectHideFlags: 0 @@ -124,7 +110,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c67621cbedb3453428fcc7207806f507, type: 3} m_Name: m_EditorClassIdentifier: - _selectedObject: {fileID: 6310266293964722079} + _selectedObject: {fileID: 0} visualGameObjectArray: - {fileID: 7761104378980903954} - {fileID: 8401444598182898373} diff --git a/Assets/Prefabs/PlasticBag.prefab b/Assets/Prefabs/PlasticBag.prefab new file mode 100644 index 00000000..17c1978d --- /dev/null +++ b/Assets/Prefabs/PlasticBag.prefab @@ -0,0 +1,142 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1702364597089646125 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1702364597089646122} + - component: {fileID: 1702364597089646123} + m_Layer: 0 + m_Name: PlasticBag + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1702364597089646122 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1702364597089646125} + m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1164948966528447356} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} +--- !u!114 &1702364597089646123 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1702364597089646125} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8e6fa409eb749c54cab3871962e90678, type: 3} + m_Name: + m_EditorClassIdentifier: + _containerSO: {fileID: 11400000, guid: d901709f604b5a14db9f4c906051b367, type: 2} +--- !u!1001 &1702364596790072471 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1702364597089646122} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 1878632aac58c914180151b3ba21e701, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 1878632aac58c914180151b3ba21e701, + type: 3} + propertyPath: m_LocalScale.x + value: 1.5 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 1878632aac58c914180151b3ba21e701, + type: 3} + propertyPath: m_LocalScale.y + value: 1.5 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 1878632aac58c914180151b3ba21e701, + type: 3} + propertyPath: m_LocalScale.z + value: 1.5 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 1878632aac58c914180151b3ba21e701, + type: 3} + propertyPath: m_LocalPosition.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 1878632aac58c914180151b3ba21e701, + type: 3} + propertyPath: m_LocalPosition.y + value: -0.317 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 1878632aac58c914180151b3ba21e701, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 1878632aac58c914180151b3ba21e701, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 1878632aac58c914180151b3ba21e701, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 1878632aac58c914180151b3ba21e701, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 1878632aac58c914180151b3ba21e701, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 1878632aac58c914180151b3ba21e701, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 1878632aac58c914180151b3ba21e701, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 1878632aac58c914180151b3ba21e701, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: 1878632aac58c914180151b3ba21e701, + type: 3} + propertyPath: m_Name + value: bag-with-handle + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1878632aac58c914180151b3ba21e701, type: 3} +--- !u!4 &1164948966528447356 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 1878632aac58c914180151b3ba21e701, + type: 3} + m_PrefabInstance: {fileID: 1702364596790072471} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Prefabs/PlasticBag.prefab.meta b/Assets/Prefabs/PlasticBag.prefab.meta new file mode 100644 index 00000000..70abc30c --- /dev/null +++ b/Assets/Prefabs/PlasticBag.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: dac0081f9dadb1d4f9eacc9bcf9a06d0 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/bag-with-handle Variant.prefab b/Assets/Prefabs/bag-with-handle Variant.prefab index 908a095c..69cd9466 100644 --- a/Assets/Prefabs/bag-with-handle Variant.prefab +++ b/Assets/Prefabs/bag-with-handle Variant.prefab @@ -11,7 +11,7 @@ PrefabInstance: - target: {fileID: -8679921383154817045, guid: 1878632aac58c914180151b3ba21e701, type: 3} propertyPath: m_RootOrder - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 1878632aac58c914180151b3ba21e701, type: 3} @@ -76,7 +76,7 @@ PrefabInstance: - target: {fileID: 919132149155446097, guid: 1878632aac58c914180151b3ba21e701, type: 3} propertyPath: m_Name - value: bag-with-handle + value: bag-with-handle Variant objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] diff --git a/Assets/Scenes/TestRoom.unity b/Assets/Scenes/TestRoom.unity index 98a43973..ebb37e36 100644 --- a/Assets/Scenes/TestRoom.unity +++ b/Assets/Scenes/TestRoom.unity @@ -194,6 +194,20 @@ BoxCollider: serializedVersion: 3 m_Size: {x: 2.5, y: 1, z: 1} m_Center: {x: 0, y: 0.5, z: -0.2} +--- !u!114 &6974614 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6974610} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2b3df7729a1cd4e479add673fa0f9b76, type: 3} + m_Name: + m_EditorClassIdentifier: + _playerArrivePoint: {fileID: 1691030852} + _containerSO: {fileID: 11400000, guid: e3d520733a0700b4f8ec3baae6be6e76, type: 2} --- !u!1 &7095968 GameObject: m_ObjectHideFlags: 0 @@ -1283,13 +1297,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 343793320} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 7 + m_Father: {fileID: 971260931} + m_RootOrder: -1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &385441352 GameObject: @@ -4259,7 +4273,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 963194225} - m_LocalRotation: {x: 0.54491353, y: 0.00000002885483, z: -0.00000001875198, w: 0.8384923} + m_LocalRotation: {x: 0.54491353, y: -0.00000002885484, z: 0.000000018751987, w: 0.8384923} m_LocalPosition: {x: 0.49909282, y: 3.5104675, z: -2.911191} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 @@ -4375,6 +4389,7 @@ Transform: - {fileID: 307039700} - {fileID: 1550470211} - {fileID: 1689632238} + - {fileID: 343793322} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -11050,6 +11065,12 @@ Transform: m_Father: {fileID: 971260931} m_RootOrder: -1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &1691030852 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1595984948554774838, guid: 88fcb1c95eeeabc479f95a580dea8152, + type: 3} + m_PrefabInstance: {fileID: 345981746231327724} + m_PrefabAsset: {fileID: 0} --- !u!850595691 &1709286000 LightingSettings: m_ObjectHideFlags: 0 @@ -12814,7 +12835,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2110938951} - m_LocalRotation: {x: 0.54491353, y: 0.00000002885483, z: -0.00000001875198, w: 0.8384923} + m_LocalRotation: {x: 0.54491353, y: -0.00000002885484, z: 0.000000018751987, w: 0.8384923} m_LocalPosition: {x: 0.49909282, y: 3.5104675, z: -2.911191} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 @@ -13760,6 +13781,11 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 274182514} m_Modifications: + - target: {fileID: 2369538501029799684, guid: 88fcb1c95eeeabc479f95a580dea8152, + type: 3} + propertyPath: _selectedObject + value: + objectReference: {fileID: 6974614} - target: {fileID: 5577632863133830020, guid: 88fcb1c95eeeabc479f95a580dea8152, type: 3} propertyPath: m_Name @@ -13822,6 +13848,7 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: - {fileID: 5281299890643327518, guid: 88fcb1c95eeeabc479f95a580dea8152, type: 3} + - {fileID: 6310266293964722079, guid: 88fcb1c95eeeabc479f95a580dea8152, type: 3} m_RemovedGameObjects: [] m_AddedGameObjects: [] m_AddedComponents: @@ -13829,6 +13856,10 @@ PrefabInstance: type: 3} insertIndex: -1 addedObject: {fileID: 6974613} + - targetCorrespondingSourceObject: {fileID: 5577632863133830020, guid: 88fcb1c95eeeabc479f95a580dea8152, + type: 3} + insertIndex: -1 + addedObject: {fileID: 6974614} m_SourcePrefab: {fileID: 100100000, guid: 88fcb1c95eeeabc479f95a580dea8152, type: 3} --- !u!1 &373119079977234910 GameObject: diff --git a/Assets/Scripts/InteractableObjects/CashierDesk.cs b/Assets/Scripts/InteractableObjects/CashierDesk.cs new file mode 100644 index 00000000..60069b12 --- /dev/null +++ b/Assets/Scripts/InteractableObjects/CashierDesk.cs @@ -0,0 +1,39 @@ +using System.Linq; +using UnityEngine; + +public class CashierDesk : BaseInteractableObject +{ + [SerializeField] + private ContainerSO _containerSO; + + public override void Interact(Player player) + { + if (player.IsHoldContainerItem()) + { + var playerContainer = player.GetContainerItem(); + var playerItemsList = playerContainer.GetItems(); + player.ClearContainerItem(); + if (playerItemsList.Any()) + { + float finalPrice = 0; + foreach (var item in playerItemsList) + { + finalPrice += item.Price; + } + + var transform = Instantiate(_containerSO.prefab, _playerArrivePoint); + var containerItem = transform.GetComponent(); + if (containerItem == null) + { + Debug.LogError("Container Item is null"); + return; + } + player.Pay(finalPrice); + containerItem.AddItems(playerItemsList); + player.SetContainerItem(containerItem); + } + } + } + + +} diff --git a/Assets/Scripts/InteractableObjects/CashierDesk.cs.meta b/Assets/Scripts/InteractableObjects/CashierDesk.cs.meta new file mode 100644 index 00000000..260be996 --- /dev/null +++ b/Assets/Scripts/InteractableObjects/CashierDesk.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2b3df7729a1cd4e479add673fa0f9b76 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/InteractableObjects/Items/FoodItem.cs b/Assets/Scripts/InteractableObjects/Items/FoodItem.cs index 755bdde3..5298ec27 100644 --- a/Assets/Scripts/InteractableObjects/Items/FoodItem.cs +++ b/Assets/Scripts/InteractableObjects/Items/FoodItem.cs @@ -1,12 +1,5 @@ -using UnityEngine; - -public class FoodItem : MonoBehaviour +public class FoodItem { - [SerializeField] - private SellableItemSO _foodObjectSO; - - public SellableItemSO GetFoodObjectSO() - { - return _foodObjectSO; - } + public string Name { get; set; } + public int Energy { get; set; } } diff --git a/Assets/Scripts/InteractableObjects/ShopingBasket.cs b/Assets/Scripts/InteractableObjects/ShopingBasket.cs index 38b18399..919ba773 100644 --- a/Assets/Scripts/InteractableObjects/ShopingBasket.cs +++ b/Assets/Scripts/InteractableObjects/ShopingBasket.cs @@ -1,6 +1,6 @@ using UnityEngine; -public class ShopingBasket : BaseInteractableObject +public class ShopingContainer : BaseInteractableObject { [SerializeField] private ContainerSO _containerSO; diff --git a/Assets/Scripts/ScriptableObjects/PlasticBag.asset b/Assets/Scripts/ScriptableObjects/PlasticBag.asset new file mode 100644 index 00000000..1b3caaa2 --- /dev/null +++ b/Assets/Scripts/ScriptableObjects/PlasticBag.asset @@ -0,0 +1,17 @@ +%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: 570c5458f6b5110448188e51cb5becbb, type: 3} + m_Name: PlasticBag + m_EditorClassIdentifier: + Name: Plastic bag + MaxCapacity: 5 + prefab: {fileID: 1702364597089646122, guid: dac0081f9dadb1d4f9eacc9bcf9a06d0, type: 3} diff --git a/Assets/Scripts/ScriptableObjects/PlasticBag.asset.meta b/Assets/Scripts/ScriptableObjects/PlasticBag.asset.meta new file mode 100644 index 00000000..6cee0c6a --- /dev/null +++ b/Assets/Scripts/ScriptableObjects/PlasticBag.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e3d520733a0700b4f8ec3baae6be6e76 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/UIElements/ContainerItemsUI.cs b/Assets/Scripts/UIElements/ContainerItemsUI.cs index 6bf2f143..683f1b71 100644 --- a/Assets/Scripts/UIElements/ContainerItemsUI.cs +++ b/Assets/Scripts/UIElements/ContainerItemsUI.cs @@ -20,9 +20,9 @@ public class ContainerItemsUI : MonoBehaviour { if (Player.Instance.IsHoldContainerItem()) { + var playerContainer = Player.Instance.GetContainerItem(); _container.gameObject.SetActive(true); - var playerContainer = Player.Instance.GetContainerItem(); if (playerContainer.GetItems().Any()) { foreach (Transform child in _itemsList) @@ -40,5 +40,9 @@ public class ContainerItemsUI : MonoBehaviour } } } + else + { + _container.gameObject.SetActive(false); + } } }