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

import net.minecraft.world.level.block.entity.BlockEntity
import ru.dbotthepony.mc.otm.capability.MatteryCapability
import ru.dbotthepony.mc.otm.capability.matter.IMatterStorage
import ru.dbotthepony.mc.otm.capability.matter.IPatternStorage
import ru.dbotthepony.mc.otm.capability.matter.IReplicationTaskProvider
import ru.dbotthepony.mc.otm.graph.Graph6Node

open class MatterNode : Graph6Node<MatterNode, MatterGraph>(::MatterGraph), IMatterGraphListener {
	open fun getMatterHandler(): IMatterStorage? = null
	open fun getPatternHandler(): IPatternStorage? = null
	open fun getTaskHandler(): IReplicationTaskProvider? = null

	fun discover(blockEntity: BlockEntity) {
		discover(blockEntity, MatteryCapability.MATTER_NODE)
	}
}
