Files
unity-application/Assets/Common/Scripts/CourseActivityScreen.cs
2023-05-14 12:37:36 +00:00

135 lines
3.7 KiB
C#

using TMPro;
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.UI;
/// <summary>
/// Manager infopage for the Courses
/// </summary>
public class CourseActivityScreen : MonoBehaviour
{
// vvv TEMPORARY STUFF vvv
public GameObject playButton;
public GameObject previewButton;
// ^^^ TEMPORARY STUFF ^^^
public GameObject restartButton;
/// <summary>
/// Reference to the courses
/// </summary>
public CourseList courseList;
/// <summary>
/// Reference to the course progress
/// </summary>
private PersistentDataController.SavedCourseProgress progress;
/// <summary>
/// Title Display
/// </summary>
public TMP_Text title;
/// <summary>
/// Description Display
/// </summary>
public TMP_Text description;
/// <summary>
/// Image Display (Thumbnail)
/// </summary>
public Image courseImage;
/// <summary>
/// Progress bar Display
/// </summary>
public Slider progressBar;
/// <summary>
/// Reference to the progressBar gameObject
/// </summary>
public GameObject progressObject;
/// <summary>
/// Reference to the 'completed' gameObject
/// </summary>
public GameObject completedObject;
/// <summary>
/// Reference to the scene playable director
/// </summary>
public PlayableDirector directorEnterFromCourseMenu;
/// <summary>
/// Sets the infopage for a given course
/// </summary>
void Start()
{
int index = courseList.currentCourseIndex;
Course course = courseList.courses[index];
// vvv TEMPORARY STUFF vvv
playButton.SetActive(course.theme.modelIndex != ModelIndex.NONE);
previewButton.SetActive(course.theme.modelIndex == ModelIndex.NONE);
// ^^^ TEMPORARY STUFF ^^^
title.text = course.title;
description.text = course.description;
courseImage.sprite = course.thumbnail;
//progressBar.value = progressValue;
// Set progress
PersistentDataController.GetInstance().Load();
progress = UserList.GetCurrentUser().GetCourseProgress(course.index);
if (progress != null)
{
progressBar.value = progress.progress;
if (progress.progress == 1.0f)
{
playButton.SetActive(false);
previewButton.SetActive(false);
progressObject.SetActive(false);
completedObject.SetActive(true);
}
if (progress.inUseLearnables > 0)
{
restartButton.SetActive(true);
playButton.transform.Find("Button Text").GetComponent<TMP_Text>().text = "Verder";
}
else
{
restartButton.SetActive(false);
}
}
else
{
progressBar.value = 0.0f;
restartButton.SetActive(false);
playButton.transform.Find("Button Text").GetComponent<TMP_Text>().text = "Begin";
}
var sys = SystemController.GetInstance();
if (sys.previousScene == SystemController.GetSceneIndex("Common/Scenes/CoursesMenuScreen"))
directorEnterFromCourseMenu.Play();
}
/// <summary>
/// Callback to reset and start the course
/// </summary>
public void ResetCourseProgress()
{
UserList.GetCurrentUser().ResetCourseProgress(progress.courseIndex);
UserList.Save();
progressBar.value = 0.0f;
StartCourse();
}
/// <summary>
/// Callback to start the course
/// </summary>
public void StartCourse()
{
SystemController.GetInstance().LoadNextScene("Courses/Scenes/CourseScreen");
}
}