package ru.dbotthepony.kstarbound.defs

import com.google.common.collect.ImmutableList
import ru.dbotthepony.kstarbound.json.builder.JsonFactory
import ru.dbotthepony.kstarbound.json.builder.JsonImplementation

@JsonImplementation(IScriptable.Impl::class)
interface IScriptable {
	/**
	 * Lua скрипты для выполнения
	 */
	val scripts: List<AssetPath>

	/**
	 * Через какое количество тиков вызывать обновления скриптов
	 */
	val scriptDelta: Int

	@JsonFactory
	data class Impl(
		override val scripts: ImmutableList<AssetPath> = ImmutableList.of(),
		override val scriptDelta: Int = 1
	) : IScriptable
}
