All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.nukkit.blockentity.BlockEntityDaylightDetector Maven / Gradle / Ivy

package cn.nukkit.blockentity;

import cn.nukkit.api.PowerNukkitOnly;
import cn.nukkit.block.Block;
import cn.nukkit.block.BlockDaylightDetector;
import cn.nukkit.block.BlockID;
import cn.nukkit.level.format.FullChunk;
import cn.nukkit.nbt.tag.CompoundTag;

@PowerNukkitOnly
public class BlockEntityDaylightDetector extends BlockEntity {

    @PowerNukkitOnly
    public BlockEntityDaylightDetector(FullChunk chunk, CompoundTag nbt) {
        super(chunk, nbt);
    }

    @Override
    protected void initBlockEntity() {
        scheduleUpdate();
    }

    @Override
    public boolean isBlockEntityValid() {
        var id = getLevelBlock().getId();
        return id == BlockID.DAYLIGHT_DETECTOR || id == BlockID.DAYLIGHT_DETECTOR_INVERTED;
    }

    @Override
    public boolean onUpdate() {
        if (!this.level.getServer().isRedstoneEnabled()) {
            return false;
        }
        if (this.level.getCurrentTick() % 20 != 0) {
            //阳光传感器每20gt更新一次
            return true;
        }
        Block block = getLevelBlock();
        if (block instanceof BlockDaylightDetector b) {
            b.updatePower();
            return true;
        } else {
            return false;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy