blob: 72fa9c431be5618f2fbf46e44c9feaa5d0ce7bd8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
package moe.nea.firmament.events
import java.util.concurrent.CompletableFuture
import java.util.concurrent.Executor
import net.minecraft.server.packs.resources.ReloadableResourceManager
import net.minecraft.server.packs.resources.ResourceManager
import net.minecraft.server.packs.resources.PreparableReloadListener
data class FinalizeResourceManagerEvent(
val resourceManager: ReloadableResourceManager,
) : FirmamentEvent() {
companion object : FirmamentEventBus<FinalizeResourceManagerEvent>()
inline fun registerOnApply(name: String, crossinline function: () -> Unit) {
resourceManager.registerReloadListener(object : PreparableReloadListener {
override fun reload(
store: PreparableReloadListener.SharedState,
prepareExecutor: Executor,
reloadSynchronizer: PreparableReloadListener.PreparationBarrier,
applyExecutor: Executor
): CompletableFuture<Void> {
return CompletableFuture.completedFuture(Unit)
.thenCompose(reloadSynchronizer::wait)
.thenAcceptAsync({ function() }, applyExecutor)
}
override fun getName(): String {
return name
}
})
}
}
|