79 lines
2.4 KiB
C#
79 lines
2.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
/// <summary>
|
|
/// CourseMenuScreen scene manager
|
|
/// </summary>
|
|
public class CourseMenuScreen : MonoBehaviour
|
|
{
|
|
/// <summary>
|
|
/// Reference to text that displays when there are no recent courses
|
|
/// </summary>
|
|
public GameObject noRecentCourses;
|
|
|
|
/// <summary>
|
|
/// Reference to recent-courses-list container object
|
|
/// </summary>
|
|
public Transform recentCoursesContainer;
|
|
|
|
/// <summary>
|
|
/// Reference to recommended-courses-list container object
|
|
/// </summary>
|
|
public Transform recommendedCoursesContainer;
|
|
|
|
/// <summary>
|
|
/// Prefab of the course item object
|
|
/// </summary>
|
|
public GameObject courseItem;
|
|
|
|
/// <summary>
|
|
/// Reference to the courses
|
|
/// </summary>
|
|
public CourseList courseList;
|
|
|
|
/// <summary>
|
|
/// Start is called before the first frame update
|
|
/// </summary>
|
|
void Start()
|
|
{
|
|
PersistentDataController.GetInstance().Load();
|
|
User user = UserList.GetCurrentUser();
|
|
|
|
// Recent courses
|
|
List<Tuple<CourseIndex, float>> recentCourses = user.GetRecentCourses();
|
|
noRecentCourses.SetActive(recentCourses.Count <= 0);
|
|
foreach (Tuple<CourseIndex, float> course in recentCourses)
|
|
{
|
|
// Create instance of prefab
|
|
GameObject instance = GameObject.Instantiate(courseItem, recentCoursesContainer);
|
|
|
|
// Dynamically load appearance
|
|
CourseItem item = instance.GetComponent<CourseItem>();
|
|
item.course = courseList.GetCourseByIndex(course.Item1);
|
|
item.progress = course.Item2;
|
|
}
|
|
|
|
// Recommended courses
|
|
List<Tuple<CourseIndex, float>> recommenedCourses = user.GetRecommendedCourses();
|
|
foreach (Tuple<CourseIndex, float> course in recommenedCourses)
|
|
{
|
|
// Create instance of prefab
|
|
GameObject instance = GameObject.Instantiate(courseItem, recommendedCoursesContainer);
|
|
|
|
// Dynamically load appearance
|
|
CourseItem item = instance.GetComponent<CourseItem>();
|
|
item.course = courseList.GetCourseByIndex(course.Item1);
|
|
item.progress = course.Item2;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Method used as callback for 'all courses' button onClick events
|
|
/// </summary>
|
|
public void GotoListOfCourses()
|
|
{
|
|
SystemController.GetInstance().LoadNextScene("Common/Scenes/ListCoursesScreen");
|
|
}
|
|
}
|