Add shader loading functionality
[no changelog]
This commit is contained in:
24
src/main/kotlin/events/RegisterCustomShadersEvent.kt
Normal file
24
src/main/kotlin/events/RegisterCustomShadersEvent.kt
Normal file
@@ -0,0 +1,24 @@
|
||||
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<Pair<ShaderProgram, Consumer<ShaderProgram>>>,
|
||||
val resourceFactory: ResourceFactory,
|
||||
) : FirmamentEvent() {
|
||||
companion object : FirmamentEventBus<RegisterCustomShadersEvent>()
|
||||
|
||||
fun register(name: String, vertexFormat: VertexFormat, saver: Consumer<ShaderProgram>) {
|
||||
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user