54 lines
1.2 KiB
C#
54 lines
1.2 KiB
C#
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;
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="levelTileset">Scene that will be loaded</param>
|
|
/// <param name="levelResource">Execution of level</param>
|
|
public void StartLevel(PackedScene levelTileset, AdventureLevelResource levelResource)
|
|
{
|
|
if (_isLevelRunning)
|
|
return;
|
|
|
|
GetTree().CreateTimer(0.001).Timeout += ()=>
|
|
{
|
|
RuntimeLevelData.Instance.levelResource = levelResource;
|
|
RuntimeLevelData.Instance.StartLevel();
|
|
};
|
|
|
|
GetTree().ChangeSceneToPacked(levelTileset);
|
|
|
|
|
|
_isLevelRunning = true;
|
|
}
|
|
|
|
public void EndLevel()
|
|
{
|
|
if (_isLevelRunning == false)
|
|
return;
|
|
|
|
_isLevelRunning = false;
|
|
}
|
|
}
|