Fix sodium reloadin

[no changelog]
This commit is contained in:
Linnea Gräf
2024-08-12 22:48:07 +02:00
parent b8a45b9a04
commit 0decd04bc3
4 changed files with 42 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
package moe.nea.firmament.compat
import me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer
import moe.nea.firmament.mixins.accessor.sodium.AccessorSodiumWorldRenderer
class SodiumChunkReloader : Runnable {
override fun run() {
(SodiumWorldRenderer.instanceNullable() as AccessorSodiumWorldRenderer)
.renderSectionManager_firmament
.updateChunks(false)
}
}

View File

@@ -3,6 +3,7 @@
package moe.nea.firmament.features.texturepack
import java.util.concurrent.CompletableFuture
import net.fabricmc.loader.api.FabricLoader
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.KSerializer
import kotlinx.serialization.Serializable
@@ -29,6 +30,7 @@ import net.minecraft.util.math.BlockPos
import net.minecraft.util.profiler.Profiler
import moe.nea.firmament.Firmament
import moe.nea.firmament.annotations.Subscribe
import moe.nea.firmament.compat.SodiumChunkReloader
import moe.nea.firmament.events.BakeExtraModelsEvent
import moe.nea.firmament.events.EarlyResourceReloadEvent
import moe.nea.firmament.events.FinalizeResourceManagerEvent
@@ -161,10 +163,20 @@ object CustomBlockTextures {
// false schedules rebuilds outside a 27 block radius to happen async
it.scheduleRebuild(false)
}
sodiumReloadTask?.run()
}
}
}
private val sodiumReloadTask = runCatching {
SodiumChunkReloader()
}.getOrElse {
if (FabricLoader.getInstance().isModLoaded("sodium"))
logger.error("Could not create sodium chunk reloader")
null
}
fun matchesPosition(replacement: BlockReplacement, blockPos: BlockPos?): Boolean {
if (blockPos == null) return true
val rc = replacement.roughCheck