using Godot; using GodotHostTest.AetherBind; using GodotHostTest.Interfaces; using OwofGames.AetherBind; namespace GodotHostTest.Game.Root; 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() { AddChild(_sceneInstantiator.Instantiate(_levelScene, OnInstantiateWithProvider)); } [WithProvider] private void OnInstantiate(IValueSetter levelValueSetter) { var levelData = _levelDataProvider.GetLevelData(_currentLevel.LevelNumber); levelValueSetter.Set(levelData); } }