filesystem rework

This commit is contained in:
Rendo 2025-07-19 20:13:34 +05:00
commit 2905db3dce
174 changed files with 93 additions and 353 deletions

View file

@ -0,0 +1,58 @@
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;
RuntimeLevelData.LevelResource = levelResource;
GetTree().ChangeSceneToPacked(levelTileset);
_isLevelRunning = true;
}
public void RestartLevel()
{
if (_isLevelRunning == false)
return;
var resource = RuntimeLevelData.LevelResource;
GetTree().ReloadCurrentScene();
RuntimeLevelData.LevelResource = resource;
}
public void EndLevel()
{
if (_isLevelRunning == false)
return;
RuntimeLevelData.LevelResource = null;
_isLevelRunning = false;
}
}

View file

@ -0,0 +1 @@
uid://v8gsvdqhbtml

View file

@ -0,0 +1,19 @@
using Godot;
using Newlon.Components;
using Newlon.Components.Level;
[GlobalClass]
public partial class LevelStateBrainDisabler : Node
{
public override void _Ready()
{
RuntimeLevelData.Instance.OnLevelStateChanged += OnLevelStateChanged;
}
public void OnLevelStateChanged(RuntimeLevelData.LevelStates state)
{
if (state == RuntimeLevelData.LevelStates.Game)
{
GetParent<Entity>().EnableBrain();
}
}
}

View file

@ -0,0 +1 @@
uid://ldjyga3rbqoj