using Godot;
using Newlon.Components.Level;
namespace Newlon;
//
// Class that gives access to level data, pools and etc.
//
public partial class LevelController : Node
{
public static LevelController Instance { get; private set; }
private bool _isLevelRunning = false;
public override void _EnterTree()
{
Instance = this;
}
public override void _ExitTree()
{
Instance = null;
}
///
///
///
/// Scene that will be loaded
/// Execution of level
public void StartLevel(PackedScene levelTileset, AdventureLevelResource levelResource)
{
if (_isLevelRunning)
return;
RuntimeLevelData.LevelResource = levelResource;
GetTree().ChangeSceneToPacked(levelTileset);
_isLevelRunning = true;
}
public void RestartLevel()
{
var resource = RuntimeLevelData.LevelResource;
GetTree().ReloadCurrentScene();
RuntimeLevelData.LevelResource = resource;
}
public void EndLevel()
{
if (_isLevelRunning == false)
return;
RuntimeLevelData.LevelResource = null;
_isLevelRunning = false;
}
}