Block render layers

This commit is contained in:
paulevsGitch 2021-06-13 17:20:41 +03:00
parent 93094e0390
commit 52777aca89
19 changed files with 69 additions and 49 deletions

View file

@ -1,11 +1,31 @@
package ru.bclib.client;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.core.Registry;
import ru.bclib.client.render.BCLRenderLayer;
import ru.bclib.interfaces.IRenderTyped;
import ru.bclib.registry.BaseBlockEntityRenders;
public class BCLibClient implements ClientModInitializer {
@Override
public void onInitializeClient() {
BaseBlockEntityRenders.register();
registerRenderLayers();
}
private void registerRenderLayers() {
RenderType cutout = RenderType.cutout();
RenderType translucent = RenderType.translucent();
Registry.BLOCK.forEach(block -> {
if (block instanceof IRenderTyped) {
BCLRenderLayer layer = ((IRenderTyped) block).getRenderLayer();
if (layer == BCLRenderLayer.CUTOUT)
BlockRenderLayerMap.INSTANCE.putBlock(block, cutout);
else if (layer == BCLRenderLayer.TRANSLUCENT)
BlockRenderLayerMap.INSTANCE.putBlock(block, translucent);
}
});
}
}

View file

@ -1,6 +1,6 @@
package ru.bclib.client.render;
public enum ERenderLayer {
public enum BCLRenderLayer {
CUTOUT,
TRANSLUCENT;
}