private void RefreshState() { if (State == LevelState.None) { if (IsLevelLoaded) { State = LevelState.Playing; } return; } if (State == LevelState.Playing) { if (!IsLevelLoaded) { State = LevelState.None; return; } if (Emitters.Any((e) => e.LitAbsorber != null) && Entities.All((e) => e.IsStationary)) { State = LevelState.Won; } } }