mirror of
				https://github.com/boudji-ludwig-pett/cnam-geometry-dash.git
				synced 2025-06-27 11:58:51 +02:00 
			
		
		
		
	feat: navigate between previous and next levels
This commit is contained in:
		@@ -8,6 +8,7 @@ public class Level
 | 
			
		||||
    public int totalJumps;
 | 
			
		||||
    public int totalAttempts;
 | 
			
		||||
    public int killedCount;
 | 
			
		||||
    public int order;
 | 
			
		||||
 | 
			
		||||
    public static Level CreateFromJSON(string jsonString)
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,38 @@
 | 
			
		||||
using System.IO;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
 | 
			
		||||
public class LevelsLoader : MonoBehaviour
 | 
			
		||||
{
 | 
			
		||||
    public Level level;
 | 
			
		||||
    public List<Level> levels = new();
 | 
			
		||||
    public Level levelCurrent;
 | 
			
		||||
 | 
			
		||||
    public void Start()
 | 
			
		||||
    private void Start()
 | 
			
		||||
    {
 | 
			
		||||
        DontDestroyOnLoad(gameObject);
 | 
			
		||||
        LoadAllLevels();
 | 
			
		||||
        levelCurrent = levels[0];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
        TextAsset jsonTextFile = Resources.Load<TextAsset>(Path.Combine("Levels", "BackOnTrack"));
 | 
			
		||||
        level = JsonUtility.FromJson<Level>(jsonTextFile.text);
 | 
			
		||||
    private void LoadAllLevels()
 | 
			
		||||
    {
 | 
			
		||||
        TextAsset[] levelFiles = Resources.LoadAll<TextAsset>("Levels");
 | 
			
		||||
        foreach (TextAsset jsonTextFile in levelFiles)
 | 
			
		||||
        {
 | 
			
		||||
            Level loadedLevel = JsonUtility.FromJson<Level>(jsonTextFile.text);
 | 
			
		||||
            levels.Add(loadedLevel);
 | 
			
		||||
        }
 | 
			
		||||
        levels.Sort((x, y) => x.order.CompareTo(y.order));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void NextLevel()
 | 
			
		||||
    {
 | 
			
		||||
        int currentIndex = levels.IndexOf(levelCurrent);
 | 
			
		||||
        levelCurrent = levels[(currentIndex + 1) % levels.Count];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void PreviousLevel()
 | 
			
		||||
    {
 | 
			
		||||
        int currentIndex = levels.IndexOf(levelCurrent);
 | 
			
		||||
        levelCurrent = levels[(currentIndex - 1 + levels.Count) % levels.Count];
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,19 @@
 | 
			
		||||
using UnityEngine;
 | 
			
		||||
using UnityEngine.UI;
 | 
			
		||||
using UnityEngine.SceneManagement;
 | 
			
		||||
 | 
			
		||||
public class LevelNameText : MonoBehaviour
 | 
			
		||||
{
 | 
			
		||||
    public LevelsLoader levelsLoader;
 | 
			
		||||
    public Text levelNameText;
 | 
			
		||||
    public LevelsLoader levelsLoader;
 | 
			
		||||
 | 
			
		||||
    public void Start()
 | 
			
		||||
    {
 | 
			
		||||
        levelsLoader = GameObject.FindGameObjectWithTag("LevelsLoader").GetComponent<LevelsLoader>();
 | 
			
		||||
        levelNameText.text = levelsLoader.level.name;
 | 
			
		||||
        levelNameText.text = levelsLoader.levelCurrent.name;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void Update()
 | 
			
		||||
    {
 | 
			
		||||
        levelNameText.text = levelsLoader.levelCurrent.name;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,8 +2,15 @@ using UnityEngine;
 | 
			
		||||
 | 
			
		||||
public class LevelNextButton : MonoBehaviour
 | 
			
		||||
{
 | 
			
		||||
    public LevelsLoader levelsLoader;
 | 
			
		||||
 | 
			
		||||
    public void Start()
 | 
			
		||||
    {
 | 
			
		||||
        levelsLoader = GameObject.FindGameObjectWithTag("LevelsLoader").GetComponent<LevelsLoader>();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void NextLevel()
 | 
			
		||||
    {
 | 
			
		||||
        // TODO
 | 
			
		||||
        levelsLoader.NextLevel();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,8 +2,15 @@ using UnityEngine;
 | 
			
		||||
 | 
			
		||||
public class LevelPreviousButton : MonoBehaviour
 | 
			
		||||
{
 | 
			
		||||
    public LevelsLoader levelsLoader;
 | 
			
		||||
 | 
			
		||||
    public void Start()
 | 
			
		||||
    {
 | 
			
		||||
        levelsLoader = GameObject.FindGameObjectWithTag("LevelsLoader").GetComponent<LevelsLoader>();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void PreviousLevel()
 | 
			
		||||
    {
 | 
			
		||||
        // TODO
 | 
			
		||||
        levelsLoader.PreviousLevel();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,7 @@ public class Player : MonoBehaviour
 | 
			
		||||
    {
 | 
			
		||||
        levelsLoader = GameObject.FindGameObjectWithTag("LevelsLoader").GetComponent<LevelsLoader>();
 | 
			
		||||
 | 
			
		||||
        audioSource.clip = Resources.Load<AudioClip>(Path.Combine("Musics", levelsLoader.level.musicName));
 | 
			
		||||
        audioSource.clip = Resources.Load<AudioClip>(Path.Combine("Musics", levelsLoader.levelCurrent.musicName));
 | 
			
		||||
        audioSource.Play();
 | 
			
		||||
 | 
			
		||||
        var mainModule = particle.main;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user