package ru.dbotthepony.mc.otm.registry

import net.minecraft.advancements.CriteriaTriggers
import net.minecraft.core.registries.BuiltInRegistries
import net.neoforged.bus.api.IEventBus
import ru.dbotthepony.mc.otm.triggers.AndroidBatteryTrigger
import ru.dbotthepony.mc.otm.triggers.AndroidResearchTrigger
import ru.dbotthepony.mc.otm.triggers.AndroidTravelUnderwater
import ru.dbotthepony.mc.otm.triggers.BecomeAndroidDeathTrigger
import ru.dbotthepony.mc.otm.triggers.BecomeAndroidSleepTrigger
import ru.dbotthepony.mc.otm.triggers.BecomeAndroidTrigger
import ru.dbotthepony.mc.otm.triggers.BecomeHumaneTrigger
import ru.dbotthepony.mc.otm.triggers.BlackHoleTrigger
import ru.dbotthepony.mc.otm.triggers.EnderTeleporterFallDeathTrigger
import ru.dbotthepony.mc.otm.triggers.ExopackBatterySlotTrigger
import ru.dbotthepony.mc.otm.triggers.ExopackGainedCraftingTrigger
import ru.dbotthepony.mc.otm.triggers.ExopackGainedEnderAccessTrigger
import ru.dbotthepony.mc.otm.triggers.ExopackGainedSmeltingTrigger
import ru.dbotthepony.mc.otm.triggers.ExopackObtainedTrigger
import ru.dbotthepony.mc.otm.triggers.ExopackSlotsExpandedTrigger
import ru.dbotthepony.mc.otm.triggers.FallDampenersSaveTrigger
import ru.dbotthepony.mc.otm.triggers.KillAsAndroidTrigger
import ru.dbotthepony.mc.otm.triggers.NailedEntityTrigger
import ru.dbotthepony.mc.otm.triggers.NanobotsArmorTrigger
import ru.dbotthepony.mc.otm.triggers.ShockwaveDamageMobTrigger
import ru.dbotthepony.mc.otm.triggers.ShockwaveTrigger
import ru.dbotthepony.mc.otm.triggers.TakeItemOutOfReplicatorTrigger

object MCriteriaTriggers {
	private val registrar = MDeferredRegister(BuiltInRegistries.TRIGGER_TYPES)

	fun register(bus: IEventBus) {
		registrar.register(bus)
	}

	init {
		registrar.register(BlackHoleTrigger.id, BlackHoleTrigger)
		registrar.register(BecomeAndroidTrigger.id, BecomeAndroidTrigger)
		registrar.register(BecomeAndroidDeathTrigger.id, BecomeAndroidDeathTrigger)
		registrar.register(BecomeAndroidSleepTrigger.id, BecomeAndroidSleepTrigger)
		registrar.register(BecomeHumaneTrigger.id, BecomeHumaneTrigger)
		registrar.register(AndroidResearchTrigger.id, AndroidResearchTrigger)
		registrar.register(ShockwaveDamageMobTrigger.id, ShockwaveDamageMobTrigger)
		registrar.register(ShockwaveTrigger.id, ShockwaveTrigger)
		registrar.register(AndroidBatteryTrigger.id, AndroidBatteryTrigger)
		registrar.register(NanobotsArmorTrigger.id, NanobotsArmorTrigger)
		registrar.register(FallDampenersSaveTrigger.id, FallDampenersSaveTrigger)
		registrar.register(EnderTeleporterFallDeathTrigger.id, EnderTeleporterFallDeathTrigger)
		registrar.register(KillAsAndroidTrigger.id, KillAsAndroidTrigger)
		registrar.register(AndroidTravelUnderwater.id, AndroidTravelUnderwater)
		registrar.register(NailedEntityTrigger.id, NailedEntityTrigger)
		registrar.register(ExopackObtainedTrigger.id, ExopackObtainedTrigger)
		registrar.register(ExopackGainedSmeltingTrigger.id, ExopackGainedSmeltingTrigger)
		registrar.register(ExopackGainedCraftingTrigger.id, ExopackGainedCraftingTrigger)
		registrar.register(ExopackGainedEnderAccessTrigger.id, ExopackGainedEnderAccessTrigger)
		registrar.register(ExopackSlotsExpandedTrigger.id, ExopackSlotsExpandedTrigger)
		registrar.register(ExopackBatterySlotTrigger.id, ExopackBatterySlotTrigger)
		registrar.register(TakeItemOutOfReplicatorTrigger.id, TakeItemOutOfReplicatorTrigger)
	}
}
