GameServiceConfiguration.kt

package io.github.lishangbu.avalon.game.service.config

import io.github.lishangbu.avalon.game.battle.engine.spi.effect.EffectDefinitionRepository
import io.github.lishangbu.avalon.game.service.effect.SmartBattleEffectImportService
import io.github.lishangbu.avalon.game.service.effect.SmartImportingEffectDefinitionRepository
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration

/**
 * `avalon-game-service` 默认装配。
 */
@Configuration(proxyBeanMethods = false)
class GameServiceConfiguration {
    @Bean
    @ConditionalOnMissingBean(EffectDefinitionRepository::class)
    fun effectDefinitionRepository(importService: SmartBattleEffectImportService): EffectDefinitionRepository = SmartImportingEffectDefinitionRepository(importService)
}