50 lines
1,012 B
C#
50 lines
1,012 B
C#
using Godot;
|
|
using System;
|
|
|
|
//
|
|
// 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 RuntimeLevelData LevelData { get; set; }
|
|
public PoolContainer Pools { get; set; }
|
|
|
|
public override void _EnterTree()
|
|
{
|
|
Instance = this;
|
|
}
|
|
|
|
public override void _ExitTree()
|
|
{
|
|
Instance = null;
|
|
}
|
|
|
|
public void StartLevel(PackedScene levelTileset, Script levelScript = null)
|
|
{
|
|
if (_isLevelRunning)
|
|
return;
|
|
|
|
GetTree().ChangeSceneToPacked(levelTileset);
|
|
|
|
if (levelScript != null)
|
|
GetTree().CurrentScene.SetScript(levelScript);
|
|
|
|
_isLevelRunning = true;
|
|
}
|
|
|
|
public void EndLevel()
|
|
{
|
|
if (_isLevelRunning == false)
|
|
return;
|
|
|
|
LevelData = null;
|
|
Pools = null;
|
|
|
|
_isLevelRunning = false;
|
|
}
|
|
}
|