Files
unity-application/Assets/Common/Interfaces/MinigameList.cs
Helena Van Breugel a19d89db03 Resolve WES-80 "Data"
2023-03-18 22:32:36 +00:00

49 lines
1.5 KiB
C#

using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// Keep track off installed minigames
/// </summary>
[CreateAssetMenu(menuName = "Create new Scriptable/MinigameList")]
public class MinigameList : ScriptableObject
{
/// <summary>
/// Index of the active/to be loaded/current minigame
/// </summary>
public int currentMinigameIndex = 0;
/// <summary>
/// List of all installed minigames
/// </summary>
public List<Minigame> minigames = new List<Minigame>();
/// <summary>
/// Get a minigame by MinigameIndex
/// </summary>
/// <param name="minigameIndex">MinigameIndex of the minigame, each unique minigame has a unique MinigameIndex</param>
/// <returns>Minigame associated with this index, null if no minigame was found</returns>
public Minigame GetMinigameByIndex(MinigameIndex minigameIndex)
{
return minigames.Find((m) => m.index == minigameIndex);
}
/// <summary>
/// Function to find a minigame-index in the list based on its title
/// </summary>
/// <param name="title"></param>
public void SetCurrentMinigame(string title)
{
this.currentMinigameIndex = minigames.FindIndex((mi) => mi.title == title);
}
/// <summary>
/// Function to find a minigame-index in the list based on its index
/// </summary>
/// <param name="title"></param>
public void SetCurrentMinigame(MinigameIndex index)
{
this.currentMinigameIndex = minigames.FindIndex((mi) => mi.index == index);
}
}