// Path: common/src/main/java/ru/beykerykt/minecraft/lightapi/common/api/engine/LightFlag.java
// public class LightFlag {
// 
//     /**
//      * N/A
//      */
//     public static final int NONE = 0;
// 
//     /**
//      * A flag for editing block light layer
//      */
//     public static final int BLOCK_LIGHTING = 1;
// 
//     /**
//      * A flag for editing sky light layer
//      */
//     public static final int SKY_LIGHTING = 2;
// 
//     /**
//      * A flag for storing the light level in the storage provider
//      */
//     @Deprecated
//     public static final int USE_STORAGE_PROVIDER = 4;
// }
// 
// Path: common/src/main/java/ru/beykerykt/minecraft/lightapi/common/internal/utils/FlagUtils.java
// public class FlagUtils {
// 
//     /**
//      * N/A
//      */
//     public static int addFlag(int flags, int targetFlag) {
//         return flags |= targetFlag;
//     }
// 
//     /**
//      * N/A
//      */
//     public static int removeFlag(int flags, int targetFlag) {
//         return flags &= ~targetFlag;
//     }
// 
//     /**
//      * N/A
//      */
//     public static boolean isFlagSet(int flags, int targetFlag) {
//         return (flags & targetFlag) == targetFlag;
//     }
// }


import java.util.BitSet;
import ru.beykerykt.minecraft.lightapi.common.api.engine.LightFlag;
import ru.beykerykt.minecraft.lightapi.common.internal.utils.FlagUtils;
    }

    @Override
    public void markSectionForUpdate(int lightFlags, int sectionY) {
        int minY = getBottomSection();
        int maxY = getTopSection();
        if (sectionY < minY || sectionY > maxY) {
            return;
        }
        int l = sectionY - minY;

        if (FlagUtils.isFlagSet(lightFlags, LightFlag.SKY_LIGHTING)) {
            skyLightUpdateBits.set(l);
        }

        if (FlagUtils.isFlagSet(lightFlags, LightFlag.BLOCK_LIGHTING)) {
            blockLightUpdateBits.set(l);
        }
    }

    @Override
    public void clearUpdate() {
        this.skyLightUpdateBits.clear();
        this.blockLightUpdateBits.clear();
    }

    @Override
    public void setFullSections() {
        // TODO: Mark full sections
        for (int i = getBottomSection(); i < getTopSection(); i++) {
// Path: common/src/main/java/ru/beykerykt/minecraft/lightapi/common/api/engine/LightFlag.java
// public class LightFlag {
// 
//     /**
//      * N/A
//      */
//     public static final int NONE = 0;
// 
//     /**
//      * A flag for editing block light layer
//      */
//     public static final int BLOCK_LIGHTING = 1;
// 
//     /**
//      * A flag for editing sky light layer
//      */
//     public static final int SKY_LIGHTING = 2;
// 
//     /**
//      * A flag for storing the light level in the storage provider
//      */
//     @Deprecated
//     public static final int USE_STORAGE_PROVIDER = 4;
// }
// 
// Path: common/src/main/java/ru/beykerykt/minecraft/lightapi/common/internal/utils/FlagUtils.java
// public class FlagUtils {
// 
//     /**
//      * N/A
//      */
//     public static int addFlag(int flags, int targetFlag) {
//         return flags |= targetFlag;
//     }
// 
//     /**
//      * N/A
//      */
//     public static int removeFlag(int flags, int targetFlag) {
//         return flags &= ~targetFlag;
//     }
// 
//     /**
//      * N/A
//      */
//     public static boolean isFlagSet(int flags, int targetFlag) {
//         return (flags & targetFlag) == targetFlag;
//     }
// }


// Path: common/src/main/java/ru/beykerykt/minecraft/lightapi/common/internal/chunks/data/BitChunkData.java
import java.util.BitSet;
import ru.beykerykt.minecraft.lightapi.common.api.engine.LightFlag;
import ru.beykerykt.minecraft.lightapi.common.internal.utils.FlagUtils;

    }

    @Override
    public void markSectionForUpdate(int lightFlags, int sectionY) {
        int minY = getBottomSection();
        int maxY = getTopSection();
        if (sectionY < minY || sectionY > maxY) {
            return;
        }
        int l = sectionY - minY;

        if (FlagUtils.isFlagSet(lightFlags, LightFlag.SKY_LIGHTING)) {
            skyLightUpdateBits.set(l);
        }

        if (FlagUtils.isFlagSet(lightFlags, LightFlag.BLOCK_LIGHTING)) {
            blockLightUpdateBits.set(l);
        }
    }

    @Override
    public void clearUpdate() {
        this.skyLightUpdateBits.clear();
        this.blockLightUpdateBits.clear();
    }

    @Override
    public void setFullSections() {
        // TODO: Mark full sections
        for (int i = getBottomSection(); i < getTopSection(); i++) {
            markSectionForUpdate(LightFlag.SKY_LIGHTING | LightFlag.BLOCK_LIGHTING, i);