package moe.nea.firmament.events import com.mojang.datafixers.util.Pair import java.util.function.Consumer import net.minecraft.client.gl.ShaderProgram import net.minecraft.client.render.VertexFormat import net.minecraft.resource.ResourceFactory import moe.nea.firmament.Firmament data class RegisterCustomShadersEvent( val list: MutableList>>, val resourceFactory: ResourceFactory, ) : FirmamentEvent() { companion object : FirmamentEventBus() fun register(name: String, vertexFormat: VertexFormat, saver: Consumer) { require(name.startsWith("firmament_")) try { list.add(Pair.of(ShaderProgram(resourceFactory, name, vertexFormat), saver)) } catch (ex: Exception) { Firmament.logger.fatal("Could not load firmament shader $name", ex) } } }