UI/MenuSystem/Pages/OpenScenePage.razor
@using Sandbox.UI
@using Sandbox

@inherits Panel
@namespace Opium.UI

<root class="body column">
</root>

@code
{
    public SceneFile GetScene( string path )
    {
        return ResourceLibrary.Get<SceneFile>(path);
    }

    bool loadedScene = false;
    public void OpenScene()
    {
        if ( loadedScene ) return;

        loadedScene = true;

        var scene = GetScene( "scenes/demo_level_01.scene" );

        if ( scene is not null )
            Game.ActiveScene.Load( scene );
    }

    async void OpenSceneAsync()
    {
        await GameTask.DelaySeconds( 1f );
        OpenScene();
    }

    protected override void OnAfterTreeRender(bool firstTime)
    {
        base.OnAfterTreeRender(firstTime);

        OpenSceneAsync();
    }
}