diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 54a4ff0..cc7778e 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -225,6 +225,12 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0, y: 0} +--- !u!23 &201909686 stripped +MeshRenderer: + m_CorrespondingSourceObject: {fileID: 8973027846639507769, guid: d671b66cd8e9f4deeb781bc7d10da0f0, + type: 3} + m_PrefabInstance: {fileID: 566795316} + m_PrefabAsset: {fileID: 0} --- !u!4 &248205447 stripped Transform: m_CorrespondingSourceObject: {fileID: 8651806400854419403, guid: 66eec70868d614d6ba8cf1c62f3e117e, @@ -242,6 +248,7 @@ GameObject: - component: {fileID: 253544596} - component: {fileID: 253544597} - component: {fileID: 253544598} + - component: {fileID: 253544599} m_Layer: 0 m_Name: ServingArea m_TagString: Untagged @@ -299,6 +306,20 @@ BoxCollider: serializedVersion: 3 m_Size: {x: 4, y: 4, z: 0.5} m_Center: {x: 0, y: 2, z: 0} +--- !u!114 &253544599 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 253544595} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2ed23b7040243a5a32e53e61e2c2e7d, type: 3} + m_Name: + m_EditorClassIdentifier: + renderer: {fileID: 1993873275} + color: {r: 0.023294266, g: 0.46226418, b: 0, a: 0.31764707} --- !u!1 &330585543 GameObject: m_ObjectHideFlags: 0 @@ -620,7 +641,11 @@ PrefabInstance: m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] - m_AddedComponents: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 387984634472192736, guid: d671b66cd8e9f4deeb781bc7d10da0f0, + type: 3} + insertIndex: -1 + addedObject: {fileID: 1389854322} m_SourcePrefab: {fileID: 100100000, guid: d671b66cd8e9f4deeb781bc7d10da0f0, type: 3} --- !u!1 &751256445 GameObject: @@ -655,8 +680,15 @@ Transform: - {fileID: 1389854319} - {fileID: 2035388612} - {fileID: 248205447} + - {fileID: 1220184286} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &794293907 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 387984634472192736, guid: d671b66cd8e9f4deeb781bc7d10da0f0, + type: 3} + m_PrefabInstance: {fileID: 566795316} + m_PrefabAsset: {fileID: 0} --- !u!1 &832575517 GameObject: m_ObjectHideFlags: 0 @@ -706,6 +738,12 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &990546120 stripped +MeshRenderer: + m_CorrespondingSourceObject: {fileID: 51244377859543979, guid: d546f4312453d48f0ad3c78f85759b59, + type: 3} + m_PrefabInstance: {fileID: 1810578439566628829} + m_PrefabAsset: {fileID: 0} --- !u!1 &1148183956 GameObject: m_ObjectHideFlags: 0 @@ -840,12 +878,32 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1148183956} m_CullTransparentMesh: 1 +--- !u!4 &1220184286 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4189148411694503855, guid: d546f4312453d48f0ad3c78f85759b59, + type: 3} + m_PrefabInstance: {fileID: 1810578439566628829} + m_PrefabAsset: {fileID: 0} --- !u!4 &1389854319 stripped Transform: m_CorrespondingSourceObject: {fileID: 801393368767180562, guid: d671b66cd8e9f4deeb781bc7d10da0f0, type: 3} m_PrefabInstance: {fileID: 566795316} m_PrefabAsset: {fileID: 0} +--- !u!114 &1389854322 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 794293907} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c2ed23b7040243a5a32e53e61e2c2e7d, type: 3} + m_Name: + m_EditorClassIdentifier: + renderer: {fileID: 201909686} + color: {r: 0.023294266, g: 0.46226418, b: 0, a: 0.31764707} --- !u!1001 &1398285204 PrefabInstance: m_ObjectHideFlags: 0 @@ -1914,6 +1972,12 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1827577396} m_PrefabAsset: {fileID: 0} +--- !u!23 &1993873275 stripped +MeshRenderer: + m_CorrespondingSourceObject: {fileID: -7511558181221131132, guid: 56a697dc4a3424913b2fb842bed34895, + type: 3} + m_PrefabInstance: {fileID: 1827577396} + m_PrefabAsset: {fileID: 0} --- !u!4 &2035388612 stripped Transform: m_CorrespondingSourceObject: {fileID: 8077602063367728820, guid: c28cd4186b6b642648a4e261624da0f4, @@ -1926,7 +1990,7 @@ PrefabInstance: serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 0} + m_TransformParent: {fileID: 751256446} m_Modifications: - target: {fileID: 4189148411694503855, guid: d546f4312453d48f0ad3c78f85759b59, type: 3} @@ -1951,17 +2015,17 @@ PrefabInstance: - target: {fileID: 4189148411694503855, guid: d546f4312453d48f0ad3c78f85759b59, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4189148411694503855, guid: d546f4312453d48f0ad3c78f85759b59, type: 3} propertyPath: m_LocalRotation.y - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4189148411694503855, guid: d546f4312453d48f0ad3c78f85759b59, type: 3} propertyPath: m_LocalRotation.z - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 4189148411694503855, guid: d546f4312453d48f0ad3c78f85759b59, type: 3} @@ -1978,6 +2042,31 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 7850909087314291058, guid: d546f4312453d48f0ad3c78f85759b59, + type: 3} + propertyPath: color.a + value: 0.31764707 + objectReference: {fileID: 0} + - target: {fileID: 7850909087314291058, guid: d546f4312453d48f0ad3c78f85759b59, + type: 3} + propertyPath: color.b + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7850909087314291058, guid: d546f4312453d48f0ad3c78f85759b59, + type: 3} + propertyPath: color.g + value: 0.46226418 + objectReference: {fileID: 0} + - target: {fileID: 7850909087314291058, guid: d546f4312453d48f0ad3c78f85759b59, + type: 3} + propertyPath: color.r + value: 0.023294266 + objectReference: {fileID: 0} + - target: {fileID: 7850909087314291058, guid: d546f4312453d48f0ad3c78f85759b59, + type: 3} + propertyPath: renderer + value: + objectReference: {fileID: 990546120} - target: {fileID: 8956721155346258093, guid: d546f4312453d48f0ad3c78f85759b59, type: 3} propertyPath: m_Name @@ -2000,4 +2089,3 @@ SceneRoots: - {fileID: 119321859} - {fileID: 1487485855} - {fileID: 1745227402} - - {fileID: 1810578439566628829} diff --git a/Assets/_Project/IngredientStorage/LettuceStorage.prefab b/Assets/_Project/IngredientStorage/LettuceStorage.prefab index 1265c07..97467d4 100644 --- a/Assets/_Project/IngredientStorage/LettuceStorage.prefab +++ b/Assets/_Project/IngredientStorage/LettuceStorage.prefab @@ -74,6 +74,12 @@ Transform: type: 3} m_PrefabInstance: {fileID: 2792559301580156025} m_PrefabAsset: {fileID: 0} +--- !u!23 &3531029101429616893 stripped +MeshRenderer: + m_CorrespondingSourceObject: {fileID: -7511558181221131132, guid: b0c02325178d34a0b938982e17b7ccf8, + type: 3} + m_PrefabInstance: {fileID: 2792559301580156025} + m_PrefabAsset: {fileID: 0} --- !u!1001 &9112942970013958499 PrefabInstance: m_ObjectHideFlags: 0 @@ -137,6 +143,31 @@ PrefabInstance: propertyPath: m_Name value: LettuceStorage objectReference: {fileID: 0} + - target: {fileID: 5381207624550945565, guid: 050820fc8557444aa85837bdb52052fc, + type: 3} + propertyPath: color.a + value: 0.31764707 + objectReference: {fileID: 0} + - target: {fileID: 5381207624550945565, guid: 050820fc8557444aa85837bdb52052fc, + type: 3} + propertyPath: color.b + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5381207624550945565, guid: 050820fc8557444aa85837bdb52052fc, + type: 3} + propertyPath: color.g + value: 0.46226418 + objectReference: {fileID: 0} + - target: {fileID: 5381207624550945565, guid: 050820fc8557444aa85837bdb52052fc, + type: 3} + propertyPath: color.r + value: 0.023294266 + objectReference: {fileID: 0} + - target: {fileID: 5381207624550945565, guid: 050820fc8557444aa85837bdb52052fc, + type: 3} + propertyPath: renderer + value: + objectReference: {fileID: 3531029101429616893} - target: {fileID: 9055992294027097849, guid: 050820fc8557444aa85837bdb52052fc, type: 3} propertyPath: ingredient diff --git a/Assets/_Project/IngredientStorage/OnionStorage.prefab b/Assets/_Project/IngredientStorage/OnionStorage.prefab index ba6395e..06d6692 100644 --- a/Assets/_Project/IngredientStorage/OnionStorage.prefab +++ b/Assets/_Project/IngredientStorage/OnionStorage.prefab @@ -74,6 +74,12 @@ Transform: type: 3} m_PrefabInstance: {fileID: 2331558468734909361} m_PrefabAsset: {fileID: 0} +--- !u!23 &4006736589930489653 stripped +MeshRenderer: + m_CorrespondingSourceObject: {fileID: -7511558181221131132, guid: 6d61e5fac8fe6488c9fca38729ac5170, + type: 3} + m_PrefabInstance: {fileID: 2331558468734909361} + m_PrefabAsset: {fileID: 0} --- !u!1001 &8538720490515941404 PrefabInstance: m_ObjectHideFlags: 0 @@ -137,6 +143,31 @@ PrefabInstance: propertyPath: m_Name value: OnionStorage objectReference: {fileID: 0} + - target: {fileID: 5381207624550945565, guid: 050820fc8557444aa85837bdb52052fc, + type: 3} + propertyPath: color.a + value: 0.31764707 + objectReference: {fileID: 0} + - target: {fileID: 5381207624550945565, guid: 050820fc8557444aa85837bdb52052fc, + type: 3} + propertyPath: color.b + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5381207624550945565, guid: 050820fc8557444aa85837bdb52052fc, + type: 3} + propertyPath: color.g + value: 0.46226418 + objectReference: {fileID: 0} + - target: {fileID: 5381207624550945565, guid: 050820fc8557444aa85837bdb52052fc, + type: 3} + propertyPath: color.r + value: 0.023294266 + objectReference: {fileID: 0} + - target: {fileID: 5381207624550945565, guid: 050820fc8557444aa85837bdb52052fc, + type: 3} + propertyPath: renderer + value: + objectReference: {fileID: 4006736589930489653} - target: {fileID: 9055992294027097849, guid: 050820fc8557444aa85837bdb52052fc, type: 3} propertyPath: ingredient diff --git a/Assets/_Project/IngredientStorage/TomatoStorage.prefab b/Assets/_Project/IngredientStorage/TomatoStorage.prefab index 1265795..0aa50c1 100644 --- a/Assets/_Project/IngredientStorage/TomatoStorage.prefab +++ b/Assets/_Project/IngredientStorage/TomatoStorage.prefab @@ -63,6 +63,31 @@ PrefabInstance: propertyPath: m_Name value: TomatoStorage objectReference: {fileID: 0} + - target: {fileID: 5381207624550945565, guid: 050820fc8557444aa85837bdb52052fc, + type: 3} + propertyPath: color.a + value: 0.31764707 + objectReference: {fileID: 0} + - target: {fileID: 5381207624550945565, guid: 050820fc8557444aa85837bdb52052fc, + type: 3} + propertyPath: color.b + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5381207624550945565, guid: 050820fc8557444aa85837bdb52052fc, + type: 3} + propertyPath: color.g + value: 0.46226418 + objectReference: {fileID: 0} + - target: {fileID: 5381207624550945565, guid: 050820fc8557444aa85837bdb52052fc, + type: 3} + propertyPath: color.r + value: 0.023294266 + objectReference: {fileID: 0} + - target: {fileID: 5381207624550945565, guid: 050820fc8557444aa85837bdb52052fc, + type: 3} + propertyPath: renderer + value: + objectReference: {fileID: 8973027846639507769} - target: {fileID: 9055992294027097849, guid: 050820fc8557444aa85837bdb52052fc, type: 3} propertyPath: ingredient @@ -158,3 +183,9 @@ Transform: type: 3} m_PrefabInstance: {fileID: 7730161479667697085} m_PrefabAsset: {fileID: 0} +--- !u!23 &8973027846639507769 stripped +MeshRenderer: + m_CorrespondingSourceObject: {fileID: -7511558181221131132, guid: 88d4bd973de08441ba307fab6791744f, + type: 3} + m_PrefabInstance: {fileID: 7730161479667697085} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/_Project/Scripts/WellDonegeon/Highlighter.cs b/Assets/_Project/Scripts/WellDonegeon/Highlighter.cs new file mode 100644 index 0000000..b31520c --- /dev/null +++ b/Assets/_Project/Scripts/WellDonegeon/Highlighter.cs @@ -0,0 +1,26 @@ +using System; +using UnityEngine; + +namespace WellDonegeon +{ + public class Highlighter : MonoBehaviour + { + [SerializeField] private Renderer renderer; + [SerializeField] private Color color = Color.white; + + public void SetHighlighted(bool selected) + { + var material = renderer.material; + if (selected) + { + material.EnableKeyword("_EMISSION"); + //before we can set the color + material.SetColor("_EmissionColor", color); + } + else + { + material.DisableKeyword("_EMISSION"); + } + } + } +} \ No newline at end of file diff --git a/Assets/_Project/Scripts/WellDonegeon/Highlighter.cs.meta b/Assets/_Project/Scripts/WellDonegeon/Highlighter.cs.meta new file mode 100644 index 0000000..d467feb --- /dev/null +++ b/Assets/_Project/Scripts/WellDonegeon/Highlighter.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: c2ed23b7040243a5a32e53e61e2c2e7d +timeCreated: 1698162612 \ No newline at end of file diff --git a/Assets/_Project/Scripts/WellDonegeon/IInteractable.cs b/Assets/_Project/Scripts/WellDonegeon/IInteractable.cs index 4e99823..3ae5a87 100644 --- a/Assets/_Project/Scripts/WellDonegeon/IInteractable.cs +++ b/Assets/_Project/Scripts/WellDonegeon/IInteractable.cs @@ -7,8 +7,9 @@ public interface IInteractable { // Should be non-null public ITransferParty GetTransferParty(); - // TODO - // public SetSelected(byWho, isSelected); + + // Assume only 1 player for now + public void SetSelected(bool selected); } public class TransferProcessor diff --git a/Assets/_Project/Scripts/WellDonegeon/IngredientStorage.cs b/Assets/_Project/Scripts/WellDonegeon/IngredientStorage.cs index d7a9f64..9a9def2 100644 --- a/Assets/_Project/Scripts/WellDonegeon/IngredientStorage.cs +++ b/Assets/_Project/Scripts/WellDonegeon/IngredientStorage.cs @@ -2,15 +2,28 @@ namespace WellDonegeon { + [RequireComponent(typeof(Highlighter))] public class IngredientStorage : MonoBehaviour, IInteractable { [SerializeField] private Ingredient ingredient; + private Highlighter _highlighter; + + private void Awake() + { + _highlighter = GetComponent(); + } + public ITransferParty GetTransferParty() { return new TransferParty(ingredient); } + public void SetSelected(bool selected) + { + _highlighter.SetHighlighted(selected); + } + private class TransferParty : ITransferParty { private readonly Ingredient _ingredient; diff --git a/Assets/_Project/Scripts/WellDonegeon/PlayerHandsController.cs b/Assets/_Project/Scripts/WellDonegeon/PlayerHandsController.cs index c4f02e5..6374c75 100644 --- a/Assets/_Project/Scripts/WellDonegeon/PlayerHandsController.cs +++ b/Assets/_Project/Scripts/WellDonegeon/PlayerHandsController.cs @@ -21,7 +21,7 @@ private void FixedUpdate() transform.position + Vector3.up, transform.TransformDirection(Vector3.forward), out hit, - 3)) + 1)) { if (hit.transform.gameObject.TryGetComponent(out var interactable)) { @@ -44,9 +44,9 @@ private void SetSelectedInteractable(IInteractable interactable) { if (_interactable != interactable) { - // _interactable?.SetSelected(me, false); + _interactable?.SetSelected(false); _interactable = interactable; - // _interactable?.SetSelected(me, true); + _interactable?.SetSelected(true); } } diff --git a/Assets/_Project/Scripts/WellDonegeon/ServingArea.cs b/Assets/_Project/Scripts/WellDonegeon/ServingArea.cs index 85c93ec..2a3e378 100644 --- a/Assets/_Project/Scripts/WellDonegeon/ServingArea.cs +++ b/Assets/_Project/Scripts/WellDonegeon/ServingArea.cs @@ -5,17 +5,30 @@ namespace WellDonegeon { + [RequireComponent(typeof(Highlighter))] public class ServingArea : MonoBehaviour, IInteractable { [SerializeField] private TextMeshProUGUI scoreText; + private Highlighter _highlighter; + private int _score; + private void Awake() + { + _highlighter = GetComponent(); + } + public ITransferParty GetTransferParty() { return new TransferParty(this); } + public void SetSelected(bool selected) + { + _highlighter.SetHighlighted(selected); + } + // Currently accepting whatever we are given class TransferParty : ITransferParty { diff --git a/Assets/_Project/Scripts/WellDonegeon/SimpleTable.cs b/Assets/_Project/Scripts/WellDonegeon/SimpleTable.cs index 69cc092..5e06932 100644 --- a/Assets/_Project/Scripts/WellDonegeon/SimpleTable.cs +++ b/Assets/_Project/Scripts/WellDonegeon/SimpleTable.cs @@ -1,18 +1,32 @@ +using System; using UnityEngine; namespace WellDonegeon { + [RequireComponent(typeof(Highlighter))] public class SimpleTable : MonoBehaviour, IInteractable, ITransferParty { [SerializeField] private Transform itemSlot; + private Highlighter _highlighter; + private IHoldable _item; - + + private void Awake() + { + _highlighter = GetComponent(); + } + public ITransferParty GetTransferParty() { return this; } + public void SetSelected(bool selected) + { + _highlighter.SetHighlighted(selected); + } + public IHoldable PeekHoldable() { return _item;