30 lines
1.2 KiB
Java
30 lines
1.2 KiB
Java
//#if MC>=11600
|
|
package com.replaymod.render.mixin;
|
|
|
|
import com.replaymod.render.capturer.IrisODSFrameCapturer;
|
|
import net.coderbot.iris.Iris;
|
|
import net.fabricmc.loader.api.FabricLoader;
|
|
import org.objectweb.asm.Opcodes;
|
|
import org.spongepowered.asm.mixin.Mixin;
|
|
import org.spongepowered.asm.mixin.Pseudo;
|
|
import org.spongepowered.asm.mixin.injection.At;
|
|
import org.spongepowered.asm.mixin.injection.Redirect;
|
|
|
|
import java.nio.file.Path;
|
|
|
|
@Pseudo
|
|
@Mixin(value = Iris.class, remap = false)
|
|
public class Mixin_LoadIrisOdsShaderPack {
|
|
@Redirect(method = "loadExternalShaderpack", at = @At(value = "FIELD", opcode = Opcodes.GETSTATIC, target = "Lnet/coderbot/iris/Iris;SHADERPACKS_DIRECTORY:Ljava/nio/file/Path;"))
|
|
private static Path loadReplayModOdsPack(String name) {
|
|
if (IrisODSFrameCapturer.INSTANCE != null && IrisODSFrameCapturer.SHADER_PACK_NAME.equals(name)) {
|
|
return FabricLoader.getInstance().getModContainer("replaymod")
|
|
.orElseThrow(() -> new RuntimeException("Failed to get mod container for ReplayMod"))
|
|
.getRootPath();
|
|
} else {
|
|
return Iris.SHADERPACKS_DIRECTORY;
|
|
}
|
|
}
|
|
}
|
|
//#endif
|