CustomSkinLoader

CustomSkinLoader

1M Downloads

CSL + Fabric Cape = 主界面加载死循环

Wudji opened this issue · 4 comments

commented

看了一下,是因为 Fabric Capes 和 CustomSkinLoader 都 Mixin 了相同的地方:

https://github.com/CaelTheColher/Capes/blob/ec6f38bdb62a68b8f6b074e36634c4940a483a82/src/main/java/me/cael/capes/mixins/MixinCapeFeatureRenderer.java#L13

    @Redirect(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/RenderLayer;getEntitySolid(Lnet/minecraft/util/Identifier;)Lnet/minecraft/client/render/RenderLayer;"))
    private RenderLayer fixCapeTransparency(Identifier texture) {
        return RenderLayer.getArmorCutoutNoCull(texture);
    }

@Redirect(
method = {
"Lnet/minecraft/client/renderer/entity/layers/LayerCape;doRenderLayer(Lcom/mojang/blaze3d/matrix/MatrixStack;Lnet/minecraft/client/renderer/IRenderTypeBuffer;ILnet/minecraft/client/entity/AbstractClientPlayer;FFFFFFF)V", // 19w39a~19w44a
"Lnet/minecraft/client/renderer/entity/layers/LayerCape;doRenderLayer(Lcom/mojang/blaze3d/matrix/MatrixStack;Lnet/minecraft/client/renderer/IRenderTypeBuffer;ILnet/minecraft/client/entity/AbstractClientPlayer;FFFFFF)V" // 19w45a+
},
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/client/renderer/RenderType;getEntitySolid(Lnet/minecraft/util/ResourceLocation;)Lnet/minecraft/client/renderer/RenderType;"
)
)


大致看了一下 Fabric Capes 的功能,除了 Wynntils 其他感觉都可以通过修改 CustomSkinLoader 的配置文件实现:

{
    "loadlist": [
        {
            "name": "OptiFine",
            "type": "Legacy",
            "checkPNG": true,
            "cape": "http://s.optifine.net/capes/{USERNAME}.png"
        },
        {
            "name": "LabyMod",
            "type": "Legacy",
            "checkPNG": true,
            "cape": "https://dl.labymod.net/capes/{UUID}"
        }
    ]
}
commented

image

貌似披风加载有点问题
另外把optifine放到最前面貌似会导致无法加载正版皮肤(

commented

突然忘记了,OptiFine 披风不是标准的 64*32 的披风,它的纹理展开图是经过裁剪的,需要在程序中手动扩展才行;

另外把optifine放到最前面貌似会导致无法加载正版皮肤(

需要把配置文件中的 forceLoadAllTextures 改为 true