Files
unity-application/Assets/Common/Scripts/ListCoursesScreen.cs
Dries Van Schuylenbergh 7b6eb4db69 Test accounts
2023-03-25 15:35:26 +00:00

58 lines
1.5 KiB
C#

using UnityEngine;
/// <summary>
/// ListCourseScreen scene manager
/// </summary>
public class ListCoursesScreen : MonoBehaviour
{
/// <summary>
/// Reference to the userlist
/// </summary>
public UserList userList;
/// <summary>
/// Reference to the course-list container object
/// </summary>
public Transform courseContainer;
/// <summary>
/// Prefab of the course item object
/// </summary>
public GameObject courseItemPrefab;
/// <summary>
/// Reference to the list of all courses
/// </summary>
public CourseList courseList;
/// <summary>
/// Start is called before the first frame update
/// </summary>
void Start()
{
userList.Load();
User user = userList.GetCurrentUser();
foreach (Course course in courseList.courses)
{
// Create instance of prefab
GameObject instance = GameObject.Instantiate(courseItemPrefab, courseContainer);
// Dynamically load appearance
CourseItem item = instance.GetComponent<CourseItem>();
item.course = course;
Progress progress = user.GetCourseProgress(course.index);
item.progress = progress != null ? progress.Get<float>("courseProgress") : 0.0f;
}
}
/// <summary>
/// Method used as callback for course item onClick events
/// </summary>
public void GotoCourseInfo()
{
SystemController.GetInstance().LoadNextScene("Common/Scenes/CourseActivityScreen");
}
}