Added TerraformingTools & functionality
This commit is contained in:
parent
4612938b54
commit
1e2ae28c12
8 changed files with 65 additions and 15 deletions
6
Assets/.gitignore
vendored
6
Assets/.gitignore
vendored
|
|
@ -1,6 +1,10 @@
|
|||
# Created by https://www.toptal.com/developers/gitignore/api/unity,rider
|
||||
# Edit at https://www.toptal.com/developers/gitignore?templates=unity,rider
|
||||
|
||||
|
||||
# Custom
|
||||
*.meta
|
||||
|
||||
### Rider ###
|
||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
||||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||
|
|
@ -154,4 +158,4 @@ sysinfo.txt
|
|||
|
||||
# End of https://www.toptal.com/developers/gitignore/api/unity,rider
|
||||
|
||||
/ProjectSettings/RiderScriptEditorPersistedState.asset
|
||||
/ProjectSettings/RiderScriptEditorPersistedState.asset
|
||||
|
|
|
|||
10
Assets/Scripts/Items/TerraformingTools/GrassTool.cs
Normal file
10
Assets/Scripts/Items/TerraformingTools/GrassTool.cs
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
using Tiles;
|
||||
|
||||
namespace Items.TerraformingTools
|
||||
{
|
||||
public class GrassTool : TerraformingTool
|
||||
{
|
||||
public GrassTool(int id) :
|
||||
base(typeof(GrassTile), "Grass Tool", "Sets clicked Tile to Grass", id) { }
|
||||
}
|
||||
}
|
||||
17
Assets/Scripts/Items/TerraformingTools/TerraformingTool.cs
Normal file
17
Assets/Scripts/Items/TerraformingTools/TerraformingTool.cs
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
using System;
|
||||
|
||||
namespace Items.TerraformingTools
|
||||
{
|
||||
public abstract class TerraformingTool : UsableItem
|
||||
{
|
||||
public readonly Type TileType;
|
||||
|
||||
protected TerraformingTool(Type tileType, string displayName, string description, int id) :
|
||||
base(displayName, description, id)
|
||||
{
|
||||
this.TileType = tileType;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
10
Assets/Scripts/Items/TerraformingTools/WaterTool.cs
Normal file
10
Assets/Scripts/Items/TerraformingTools/WaterTool.cs
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
using Tiles;
|
||||
|
||||
namespace Items.TerraformingTools
|
||||
{
|
||||
public class WaterTool : TerraformingTool
|
||||
{
|
||||
public WaterTool(int id) :
|
||||
base(typeof(WaterTile), "Water Tool", "Sets clicked Tile to water", id) { }
|
||||
}
|
||||
}
|
||||
|
|
@ -42,5 +42,4 @@ public class PlayerController : MonoBehaviour {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -1,13 +1,14 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Items.TerraformingTools;
|
||||
using Tiles;
|
||||
using UnityEngine;
|
||||
|
||||
public class TileBehaviour : MonoBehaviour
|
||||
{
|
||||
private BaseTile tile;
|
||||
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
|
|
@ -18,24 +19,33 @@ public class TileBehaviour : MonoBehaviour
|
|||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
void OnMouseDown()
|
||||
{
|
||||
Debug.Log("Clicked");
|
||||
|
||||
// SelectedItem always null for now
|
||||
BaseTile temp = tile.Clicked(PlayerController.getInstance().SelectedItem);
|
||||
if (temp != null)
|
||||
UsableItem usable = PlayerController.getInstance().SelectedItem;
|
||||
BaseTile tileToSetTo = null;
|
||||
if (usable.GetType() == typeof(TerraformingTool))
|
||||
{
|
||||
SetTile(temp);
|
||||
TerraformingTool terraformingTool = (TerraformingTool) usable;
|
||||
Type tileTypeToSetTo = terraformingTool.TileType;
|
||||
tileToSetTo = (BaseTile) Activator.CreateInstance(tileTypeToSetTo);
|
||||
}
|
||||
else
|
||||
{
|
||||
tile.Clicked(usable);
|
||||
}
|
||||
if (tileToSetTo != null)
|
||||
{
|
||||
SetTile(tileToSetTo);
|
||||
}
|
||||
}
|
||||
|
||||
void SetTile(BaseTile tileToSet)
|
||||
{
|
||||
Debug.Log("Set tile to " + tileToSet.ToString());
|
||||
tile = tileToSet;
|
||||
GetComponent<SpriteRenderer>().color = tile.getColor; // TODO: Change to Sprite
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
using Items.TerraformingTools;
|
||||
using UnityEngine;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ namespace Tiles
|
|||
/// </summary>
|
||||
/// <param name="usable">the UsableItem that the Tile was clicked on with</param>
|
||||
/// <returns>a subclass of BaseTile if the Tile has to change, null if it stays the same type</returns>
|
||||
new public BaseTile Clicked(UsableItem usable) {
|
||||
public new BaseTile Clicked(UsableItem usable) {
|
||||
base.Clicked(usable);
|
||||
BaseTile rv = null;
|
||||
if (usable.GetType() == typeof(Items.Hoe))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue