using System; using Godot; using GodotHostTest.AetherBind; using GodotHostTest.Interfaces; using OwofGames.AetherBind; using OwofGames.GodotLume; namespace GodotHostTest.Game.Root; [Injected] public partial class Root : Node2D { [Inject] private ICurrentLevel _currentLevel = null!; [Inject] private ILevelDataProvider _levelDataProvider = null!; [Export] private PackedScene _levelScene = null!; [Inject] private ISceneInstantiator _sceneInstantiator = null!; public override void _Ready() { var levelData = _levelDataProvider.GetLevelData(_currentLevel.LevelNumber); AddChild(_sceneInstantiator.Instantiate(_levelScene, OnInstantiate(levelValueSetter => levelValueSetter.Set(levelData)))); } [ServiceMethod] private partial Action OnInstantiate(Action> a); }