y order and level execution from menu

This commit is contained in:
Rendo 2025-07-17 04:23:37 +05:00
commit 1631bd87ce
5 changed files with 32 additions and 20 deletions

View file

@ -1,4 +1,5 @@
using Godot;
using Newlon.Components.Level;
namespace Newlon;
@ -21,21 +22,24 @@ public partial class LevelController : Node
{
Instance = null;
}
/// <summary>
///
/// </summary>
/// <param name="levelTileset">Scene that will be loaded</param>
/// <param name="levelScript">Optional script that will be attached to loaded scene</param>
public void StartLevel(PackedScene levelTileset, Script levelScript = null)
/// <param name="levelResource">Execution of level</param>
public void StartLevel(PackedScene levelTileset, AdventureLevelResource levelResource)
{
if (_isLevelRunning)
return;
GetTree().ChangeSceneToPacked(levelTileset);
GetTree().CreateTimer(0.001).Timeout += ()=>
{
RuntimeLevelData.Instance.levelResource = levelResource;
RuntimeLevelData.Instance.StartLevel();
};
if (levelScript != null)
GetTree().CurrentScene.SetScript(levelScript);
GetTree().ChangeSceneToPacked(levelTileset);
_isLevelRunning = true;
}

View file

@ -2,7 +2,7 @@ extends Node
func _on_play_button_pressed() -> void:
get_tree().change_scene_to_file("res://scenes/prototype_survival.tscn")
LevelController.call("StartLevel",preload("uid://bu0dh5ct387xu"),preload("uid://br3364jty1j0i"))
$ChannelPlayer.call("Play")

View file

@ -36,9 +36,11 @@ public partial class RuntimeLevelData : Node
Instance = this;
GetTree().Paused = true;
Engine.TimeScale = 1.0;
}
public void StartLevel()
{
SetLevelState(LevelStates.ChooseYourSeeds);
}
#region Sun
public void AddSun(float amount)
{