InMemoryConditionInterpreterRegistry.kt
package io.github.lishangbu.avalon.game.battle.engine.core.registry.memory
import io.github.lishangbu.avalon.game.battle.engine.core.registry.ConditionInterpreterRegistry
import io.github.lishangbu.avalon.game.battle.engine.core.runtime.ConditionInterpreter
import io.github.lishangbu.avalon.game.battle.engine.core.type.ConditionTypeId
/**
* 基于内存 Map 的 ConditionInterpreterRegistry 实现。
*
* @property entries 条件类型到解释器的映射。
*/
class InMemoryConditionInterpreterRegistry(
private val entries: Map<ConditionTypeId, ConditionInterpreter>,
) : ConditionInterpreterRegistry {
override fun get(type: ConditionTypeId): ConditionInterpreter =
entries[type]
?: error("No condition interpreter registered for '${type.value}'.")
override fun contains(type: ConditionTypeId): Boolean = entries.containsKey(type)
}