ActionHandlers working for Clicks on Tiles
This commit is contained in:
parent
e160867e7e
commit
5d4bf8c940
12 changed files with 352 additions and 15 deletions
48
Assets/Scripts/Actions/ActionManager.cs
Normal file
48
Assets/Scripts/Actions/ActionManager.cs
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
using System.Collections.Generic;
|
||||
using Assets.Scripts.Actions;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Actions {
|
||||
public class ActionManager {
|
||||
private static ActionManager _instance;
|
||||
public static ActionManager Instance {
|
||||
get
|
||||
{
|
||||
if(_instance == null) {
|
||||
_instance = new ActionManager();
|
||||
}
|
||||
return _instance;
|
||||
}
|
||||
}
|
||||
|
||||
private List<ActionHandler> _actionHandlers;
|
||||
public List<ActionHandler> ActionHandlers => _actionHandlers;
|
||||
|
||||
private ActionManager() {
|
||||
_actionHandlers = new List<ActionHandler>();
|
||||
instatiateActionHandlers();
|
||||
}
|
||||
|
||||
private void instatiateActionHandlers() {
|
||||
ActionHandlers.Add(new GrassTileHoeActionHandler());
|
||||
ActionHandlers.Add(new GrassTileShovelActionHandler());
|
||||
ActionHandlers.Add(new GrassTileFenceActionHandler());
|
||||
|
||||
ActionHandlers.Add(new FarmlandTileShovelActionHandler());
|
||||
ActionHandlers.Add(new FarmlandTileScytheActionHandler());
|
||||
ActionHandlers.Add(new FarmlandTileWateringCanActionHandler());
|
||||
ActionHandlers.Add(new FarmlandTileWheatSeedsActionHandler());
|
||||
|
||||
ActionHandlers.Add(new WaterTileShovelActionHandler());
|
||||
ActionHandlers.Add(new WaterTileFishingRodActionHandler());
|
||||
}
|
||||
|
||||
public void HandleAction(GameObject gameObject, UsableItem usableItem) {
|
||||
foreach (ActionHandler actionHandler in ActionHandlers) {
|
||||
if(actionHandler.Matches(gameObject, usableItem)) {
|
||||
actionHandler.InvokeAction(gameObject, usableItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue