Added Comments
This commit is contained in:
parent
9151d987a7
commit
5f1a5e5abc
10 changed files with 67 additions and 2 deletions
|
|
@ -3,6 +3,10 @@ using Assets.Scripts.Actions;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Actions {
|
namespace Actions {
|
||||||
|
/// <summary>
|
||||||
|
/// AcrionManagaer managing Actions.
|
||||||
|
/// ActionHandler implement either NextDayActionHandler or ClickActionHandler and have to be added to the matching list in the instatiationmethod
|
||||||
|
/// </summary>
|
||||||
public class ActionManager {
|
public class ActionManager {
|
||||||
#region Singleton
|
#region Singleton
|
||||||
private static ActionManager _instance;
|
private static ActionManager _instance;
|
||||||
|
|
@ -27,10 +31,17 @@ namespace Actions {
|
||||||
instantiateNextDayActionHandlers();
|
instantiateNextDayActionHandlers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// NextDayActionHandlers to be instatiated and added to the corresponding List
|
||||||
|
/// </summary>
|
||||||
private void instantiateNextDayActionHandlers() {
|
private void instantiateNextDayActionHandlers() {
|
||||||
_nextDayActionHandlers.Add(new FarmlandTileNextDayActionHandler());
|
_nextDayActionHandlers.Add(new FarmlandTileNextDayActionHandler());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ClickActionHandlers to be instatiated and added to the corresponding List
|
||||||
|
/// </summary>
|
||||||
private void instantiateClickActionHandlers() {
|
private void instantiateClickActionHandlers() {
|
||||||
_clickActionHandlers.Add(new GrassTileClickHoeActionHandler());
|
_clickActionHandlers.Add(new GrassTileClickHoeActionHandler());
|
||||||
_clickActionHandlers.Add(new GrassTileClickShovelActionHandler());
|
_clickActionHandlers.Add(new GrassTileClickShovelActionHandler());
|
||||||
|
|
@ -45,6 +56,12 @@ namespace Actions {
|
||||||
_clickActionHandlers.Add(new WaterTileClickFishingRodActionHandler());
|
_clickActionHandlers.Add(new WaterTileClickFishingRodActionHandler());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Used to Invoke ClickActions, all ClickActionHandlers in ClickActionHandlers list are iterated through,
|
||||||
|
/// only one will be invoked per method call
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="gameObject">The affected gameObject</param>
|
||||||
|
/// <param name="usableItem">the current tool</param>
|
||||||
public void ClickAction(GameObject gameObject, UsableItem usableItem) {
|
public void ClickAction(GameObject gameObject, UsableItem usableItem) {
|
||||||
foreach (ClickActionHandler actionHandler in _clickActionHandlers) {
|
foreach (ClickActionHandler actionHandler in _clickActionHandlers) {
|
||||||
if(actionHandler.Matches(gameObject, usableItem)) {
|
if(actionHandler.Matches(gameObject, usableItem)) {
|
||||||
|
|
@ -54,6 +71,12 @@ namespace Actions {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Used to Invoke ClickActions, all ClickActionHandlers in ClickActionHandlers list are iterated through,
|
||||||
|
/// only one will be invoked per method call
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="gameObject">The affected gameObject</param>
|
||||||
|
/// <param name="usableItem">the current tool</param>
|
||||||
public void NextDayAction(GameObject gameObject) {
|
public void NextDayAction(GameObject gameObject) {
|
||||||
Debug.Log("nextday action");
|
Debug.Log("nextday action");
|
||||||
foreach (NextDayActionHandler actionHandler in _nextDayActionHandlers) {
|
foreach (NextDayActionHandler actionHandler in _nextDayActionHandlers) {
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,9 @@ using System.Transactions;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Actions {
|
namespace Actions {
|
||||||
|
/// <summary>
|
||||||
|
/// Implementing classes handle ClickActions
|
||||||
|
/// </summary>
|
||||||
public interface ClickActionHandler {
|
public interface ClickActionHandler {
|
||||||
public void InvokeAction(GameObject gameObject);
|
public void InvokeAction(GameObject gameObject);
|
||||||
public bool Matches(GameObject gameObject, UsableItem usableItem);
|
public bool Matches(GameObject gameObject, UsableItem usableItem);
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
using Tiles;
|
using Tiles;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
|
/// Definitions of ClickActionHandlers here
|
||||||
namespace Assets.Scripts.Actions {
|
namespace Assets.Scripts.Actions {
|
||||||
public abstract class AbstractTileClickActionHandler : ClickActionHandler {
|
public abstract class AbstractTileClickActionHandler : ClickActionHandler {
|
||||||
protected BaseTile _tile;
|
protected BaseTile _tile;
|
||||||
|
|
@ -183,7 +184,7 @@ namespace Assets.Scripts.Actions {
|
||||||
public override void InvokeAction(GameObject gameObject) {
|
public override void InvokeAction(GameObject gameObject) {
|
||||||
if(crop.FullyGrown) {
|
if(crop.FullyGrown) {
|
||||||
Inventory.instance.AddElement(ItemContainer.Instance.GetItemByName("Wheat Seeds"),
|
Inventory.instance.AddElement(ItemContainer.Instance.GetItemByName("Wheat Seeds"),
|
||||||
(int)(Random.Range(1, 300)));
|
(int)(Random.Range(1, 3)));
|
||||||
Inventory.instance.AddElement(ItemContainer.Instance.GetItemByName("Wheat"), 1);
|
Inventory.instance.AddElement(ItemContainer.Instance.GetItemByName("Wheat"), 1);
|
||||||
crop.ResetPlant();
|
crop.ResetPlant();
|
||||||
updateFarmlandSprites(gameObject);
|
updateFarmlandSprites(gameObject);
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Actions {
|
namespace Actions {
|
||||||
|
/// <summary>
|
||||||
|
/// Implementing classes handle nextDayAction
|
||||||
|
/// </summary>
|
||||||
public interface NextDayActionHandler {
|
public interface NextDayActionHandler {
|
||||||
public void InvokeAction(GameObject gameObject);
|
public void InvokeAction(GameObject gameObject);
|
||||||
public bool Matches(GameObject gameObject);
|
public bool Matches(GameObject gameObject);
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
using Tiles;
|
using Tiles;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
|
/// Definitions of NextDayActionHandlers here
|
||||||
namespace Actions {
|
namespace Actions {
|
||||||
public abstract class AbstractTileNextDayActionHandler : NextDayActionHandler {
|
public abstract class AbstractTileNextDayActionHandler : NextDayActionHandler {
|
||||||
protected BaseTile _tile;
|
protected BaseTile _tile;
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,9 @@ using UnityEngine;
|
||||||
using Random = UnityEngine.Random;
|
using Random = UnityEngine.Random;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Controlling logic of crop on FarmlandTiles
|
||||||
|
/// </summary>
|
||||||
public class Crop {
|
public class Crop {
|
||||||
private const int FinalGrowthStage = 4;
|
private const int FinalGrowthStage = 4;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,9 @@ using DefaultNamespace;
|
||||||
using Tiles;
|
using Tiles;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Defining the behaviour of tiles
|
||||||
|
/// </summary>
|
||||||
public class TileBehaviour : MonoBehaviour {
|
public class TileBehaviour : MonoBehaviour {
|
||||||
private BaseTile _tile;
|
private BaseTile _tile;
|
||||||
public virtual BaseTile Tile {
|
public virtual BaseTile Tile {
|
||||||
|
|
@ -17,7 +20,7 @@ public class TileBehaviour : MonoBehaviour {
|
||||||
private SpriteRenderer _hoverIndicatorSpriteRenderer;
|
private SpriteRenderer _hoverIndicatorSpriteRenderer;
|
||||||
private static Color _hoverIndicatorColor;
|
private static Color _hoverIndicatorColor;
|
||||||
|
|
||||||
// Start is called before the first frame update
|
/// Start is called before the first frame update
|
||||||
void Start() {
|
void Start() {
|
||||||
Tile = new GrassTile();
|
Tile = new GrassTile();
|
||||||
|
|
||||||
|
|
@ -36,10 +39,16 @@ public class TileBehaviour : MonoBehaviour {
|
||||||
HouseController.NewDayEvent.AddListener(NextDay);
|
HouseController.NewDayEvent.AddListener(NextDay);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// is called when a NewDayEvent is dispersed
|
||||||
|
/// </summary>
|
||||||
private void NextDay() {
|
private void NextDay() {
|
||||||
ActionManager.Instance.NextDayAction(gameObject);
|
ActionManager.Instance.NextDayAction(gameObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Used to invoke Click Actions
|
||||||
|
/// </summary>
|
||||||
void OnMouseDown() {
|
void OnMouseDown() {
|
||||||
UsableItem usableItem = PlayerController.instance.SelectedItem;
|
UsableItem usableItem = PlayerController.instance.SelectedItem;
|
||||||
if(usableItem != null) {
|
if(usableItem != null) {
|
||||||
|
|
@ -47,6 +56,9 @@ public class TileBehaviour : MonoBehaviour {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// used to set hover indicator
|
||||||
|
/// </summary>
|
||||||
private void OnMouseEnter() {
|
private void OnMouseEnter() {
|
||||||
SetHoverIndicatorVisibility(true);
|
SetHoverIndicatorVisibility(true);
|
||||||
}
|
}
|
||||||
|
|
@ -55,6 +67,10 @@ public class TileBehaviour : MonoBehaviour {
|
||||||
SetHoverIndicatorVisibility(false);
|
SetHoverIndicatorVisibility(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sets the visibility of hover indicator
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="visible"></param>
|
||||||
private void SetHoverIndicatorVisibility(bool visible) {
|
private void SetHoverIndicatorVisibility(bool visible) {
|
||||||
if(visible) {
|
if(visible) {
|
||||||
_hoverIndicatorSpriteRenderer.color = _hoverIndicatorColor;
|
_hoverIndicatorSpriteRenderer.color = _hoverIndicatorColor;
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,9 @@ using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Tilemaps;
|
using UnityEngine.Tilemaps;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Instatiates Tiles at beginning of the game
|
||||||
|
/// </summary>
|
||||||
public class TileController : MonoBehaviour {
|
public class TileController : MonoBehaviour {
|
||||||
public GameObject tile;
|
public GameObject tile;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,11 @@ using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
|
|
||||||
namespace Tiles {
|
namespace Tiles {
|
||||||
|
/// <summary>
|
||||||
|
/// Base class of all Tile types
|
||||||
|
/// </summary>
|
||||||
public abstract class BaseTile {
|
public abstract class BaseTile {
|
||||||
protected Sprite _sprite;
|
protected Sprite _sprite;
|
||||||
public virtual Sprite Sprite => _sprite;
|
public virtual Sprite Sprite => _sprite;
|
||||||
|
|
@ -14,6 +18,11 @@ namespace Tiles {
|
||||||
|
|
||||||
public virtual void DayLightStep() { }
|
public virtual void DayLightStep() { }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Used to generate Sprites from files
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="pathToImageFile">Path to the Image file to be Converted to the Sprite</param>
|
||||||
|
/// <returns>the created Sprite</returns>
|
||||||
static public Sprite GenerateSpriteFromFile(String pathToImageFile) {
|
static public Sprite GenerateSpriteFromFile(String pathToImageFile) {
|
||||||
byte[] data = File.ReadAllBytes(pathToImageFile);
|
byte[] data = File.ReadAllBytes(pathToImageFile);
|
||||||
Texture2D texture = new Texture2D(32, 32, TextureFormat.ARGB32, false);
|
Texture2D texture = new Texture2D(32, 32, TextureFormat.ARGB32, false);
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,9 @@ namespace Tiles
|
||||||
{
|
{
|
||||||
public class GrassTile : BaseTile {
|
public class GrassTile : BaseTile {
|
||||||
private Sprite[] _sprites;
|
private Sprite[] _sprites;
|
||||||
|
/// <summary>
|
||||||
|
/// Overridden Property to randomize tiles between the 3 different sprites
|
||||||
|
/// </summary>
|
||||||
public override Sprite Sprite
|
public override Sprite Sprite
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue