package ru.dbotthepony.mc.otm.graph.matter

import ru.dbotthepony.mc.otm.capability.matter.*

interface IMatterGraphListener {
	fun onPatternAdded(state: PatternState) {}
	fun onPatternRemoved(state: PatternState) {}
	fun onPatternUpdated(newState: PatternState, oldState: PatternState) {}

	/**
	 * This can be called any amount of times with the same task
	 */
	fun onMatterTaskCreated(task: ReplicationTask) {}

	/**
	 * This can be called any amount of times with the same task
	 */
	fun onMatterTaskUpdated(newState: ReplicationTask, oldState: ReplicationTask) {}

	/**
	 * This can be called any amount of times with the same task
	 */
	fun onMatterTaskFinished(state: ReplicationTask) {}

	/**
	 * This can be called any amount of times with the same task
	 */
	fun onMatterTaskRemoved(state: ReplicationTask) {}
}
