From 4612938b5423eee792b9a55c521b6c8ed5ff6393 Mon Sep 17 00:00:00 2001 From: j-weissen Date: Wed, 18 May 2022 23:59:49 +0200 Subject: [PATCH] added Player GameObject, updated GrassTile.Clicked() --- Assets/Scenes/MainScene.unity | 45 ++++++++++++++++++++++++++++++ Assets/Scripts/PlayerController.cs | 6 +++- Assets/Scripts/TileBehaviour.cs | 10 +++++-- Assets/Scripts/Tiles/BaseTile.cs | 5 ++-- Assets/Scripts/Tiles/GrassTile.cs | 15 ++++++++++ 5 files changed, 76 insertions(+), 5 deletions(-) diff --git a/Assets/Scenes/MainScene.unity b/Assets/Scenes/MainScene.unity index 177eff4..c39a2c8 100644 --- a/Assets/Scenes/MainScene.unity +++ b/Assets/Scenes/MainScene.unity @@ -253,3 +253,48 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1800469988 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1800469990} + - component: {fileID: 1800469989} + m_Layer: 0 + m_Name: Player + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1800469989 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1800469988} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7ff39a43f7a5df74b9d3456085e32adf, type: 3} + m_Name: + m_EditorClassIdentifier: + startMoney: 100 +--- !u!4 &1800469990 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1800469988} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.741637, y: -0.3807241, z: -0.019921448} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Scripts/PlayerController.cs b/Assets/Scripts/PlayerController.cs index 6bd9b7e..eef9edf 100644 --- a/Assets/Scripts/PlayerController.cs +++ b/Assets/Scripts/PlayerController.cs @@ -7,7 +7,9 @@ public class PlayerController : MonoBehaviour { private Dictionary inventory; private int money; private UsableItem selectedItem; - + + public UsableItem SelectedItem => selectedItem; + private static PlayerController instance; public int startMoney = 100; @@ -39,4 +41,6 @@ public class PlayerController : MonoBehaviour { Debug.Log("An item requested to select isn't in the inventory" + item); } } + + } diff --git a/Assets/Scripts/TileBehaviour.cs b/Assets/Scripts/TileBehaviour.cs index 5a16978..e4992c0 100644 --- a/Assets/Scripts/TileBehaviour.cs +++ b/Assets/Scripts/TileBehaviour.cs @@ -24,12 +24,18 @@ public class TileBehaviour : MonoBehaviour void OnMouseDown() { Debug.Log("Clicked"); - tile.Clicked(/* Current tool */ null); + + // SelectedItem always null for now + BaseTile temp = tile.Clicked(PlayerController.getInstance().SelectedItem); + if (temp != null) + { + SetTile(temp); + } } void SetTile(BaseTile tileToSet) { tile = tileToSet; - GetComponent().color = tile.getColor; + GetComponent().color = tile.getColor; // TODO: Change to Sprite } } diff --git a/Assets/Scripts/Tiles/BaseTile.cs b/Assets/Scripts/Tiles/BaseTile.cs index 47e2114..1816d03 100644 --- a/Assets/Scripts/Tiles/BaseTile.cs +++ b/Assets/Scripts/Tiles/BaseTile.cs @@ -9,7 +9,7 @@ namespace Tiles { protected Color color; public Color getColor => color; - // Later to be replaced with + // TODO: Change to Sprite, also in subclasses // public Sprite sprite; protected BaseTile(Color color) @@ -32,9 +32,10 @@ namespace Tiles } - public void Clicked(UsableItem usable) + public BaseTile Clicked(UsableItem usable) { Debug.Log(usable.ToString() + " used on " + this.ToString()); + return null; } diff --git a/Assets/Scripts/Tiles/GrassTile.cs b/Assets/Scripts/Tiles/GrassTile.cs index 0efeb0a..4923c07 100644 --- a/Assets/Scripts/Tiles/GrassTile.cs +++ b/Assets/Scripts/Tiles/GrassTile.cs @@ -8,5 +8,20 @@ namespace Tiles { } + + /// + /// to be invoked when the Tile is clicked, handles the actions following on the click + /// + /// the UsableItem that the Tile was clicked on with + /// a subclass of BaseTile if the Tile has to change, null if it stays the same type + new public BaseTile Clicked(UsableItem usable) { + base.Clicked(usable); + BaseTile rv = null; + if (usable.GetType() == typeof(Items.Hoe)) + { + rv = new FarmlandTile(); + } + return rv; + } } } \ No newline at end of file