Fix sodium reloadin
[no changelog]
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
package moe.nea.firmament.mixins.accessor.sodium;
|
||||
|
||||
import me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer;
|
||||
import me.jellysquid.mods.sodium.client.render.chunk.RenderSectionManager;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Pseudo;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
@Mixin(SodiumWorldRenderer.class)
|
||||
@Pseudo
|
||||
public interface AccessorSodiumWorldRenderer {
|
||||
@Accessor("renderSectionManager")
|
||||
RenderSectionManager getRenderSectionManager_firmament();
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user