package blade.addon.utils.rendering;

import net.fabricmc.fabric.api.client.rendering.v1.level.LevelRenderEvents;

public class RenderingEvents {

    public static RenderHandler FILLED_DEBUG = new RenderHandler(RenderLayers.FILLED_DEBUG);
    public static RenderHandler FILLED_DEBUG_NO_DEPTH = new RenderHandler(RenderLayers.FILLED_DEBUG_NO_DEPTH);
    public static RenderHandler FILLED = new RenderHandler(RenderLayers.FILLED);
    public static RenderHandler LINE = new RenderHandler(RenderLayers.LINE);
    public static RenderHandler FILLED_NO_DEPTH = new RenderHandler(RenderLayers.FILLED_NO_DEPTH);
    public static RenderHandler LINE_NO_DEPTH = new RenderHandler(RenderLayers.LINE_NO_DEPTH);
    public static RenderHandler TEXT = new RenderHandler(RenderLayers.TEXT);


    public static void init() {
        // 26.2 only accepts submits while the node collection is open; AFTER_TRANSLUCENT_FEATURES fires
        // during the draw passes, after the collection has been prepared, so everything must register here.
        LevelRenderEvents.COLLECT_SUBMITS.register(FILLED_DEBUG::init);
        LevelRenderEvents.COLLECT_SUBMITS.register(FILLED_DEBUG_NO_DEPTH::init);
        LevelRenderEvents.COLLECT_SUBMITS.register(FILLED::init);
        LevelRenderEvents.COLLECT_SUBMITS.register(LINE::init);
        LevelRenderEvents.COLLECT_SUBMITS.register(FILLED_NO_DEPTH::init);
        LevelRenderEvents.COLLECT_SUBMITS.register(LINE_NO_DEPTH::init);
        LevelRenderEvents.COLLECT_SUBMITS.register(TEXT::init);
    }
}
