package ru.dbotthepony.mc.otm.recipe

import net.minecraft.core.HolderLookup
import net.minecraft.core.NonNullList
import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.crafting.Ingredient
import net.minecraft.world.item.crafting.Recipe
import net.minecraft.world.item.crafting.RecipeInput
import net.minecraft.world.item.crafting.RecipeSerializer
import net.minecraft.world.item.crafting.RecipeType
import net.minecraft.world.level.Level

// passthrough all default methods to fix Kotlin bug related to implementation delegation not properly working on Java interfaces
// https://youtrack.jetbrains.com/issue/KT-55080/Change-the-behavior-of-inheritance-delegation-to-delegates-implementing-Java-interfaces-with-default-methods
interface IMatteryRecipe<C : RecipeInput> : Recipe<C> {
	override fun getRemainingItems(p_44004_: C): NonNullList<ItemStack> {
		return super.getRemainingItems(p_44004_)
	}

	override fun getIngredients(): NonNullList<Ingredient> {
		return super.getIngredients()
	}

	override fun isSpecial(): Boolean {
		return super.isSpecial()
	}

	override fun showNotification(): Boolean {
		return super.showNotification()
	}

	override fun getGroup(): String {
		return super.getGroup()
	}

	override fun getToastSymbol(): ItemStack {
		return super.getToastSymbol()
	}

	override fun isIncomplete(): Boolean {
		return super.isIncomplete()
	}
}
