package com.dairymoose.modernlife.blocks; import com.dairymoose.modernlife.core.ModernLifeCommon; import com.dairymoose.modernlife.core.ModernLifeConfig; import com.dairymoose.modernlife.tileentities.PhotonBlockEntity; import com.dairymoose.modernlife.util.ModernLifeUtil; import net.minecraft.core.BlockPos; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.EntityBlock; import net.minecraft.world.level.block.LiquidBlockContainer; import net.minecraft.world.level.block.RenderShape; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityTicker; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BooleanProperty; import net.minecraft.world.level.block.state.properties.Property; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.level.material.FluidState; import net.minecraft.world.level.material.Fluids; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; /* loaded from: outputsrg.jar:com/dairymoose/modernlife/blocks/PhotonBlock.class */ public class PhotonBlock extends Block implements EntityBlock, LiquidBlockContainer { public static final BooleanProperty EXTINGUISHED = BooleanProperty.create("extinguished"); public static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; public PhotonBlock(Properties props) { super(props.lightLevel(PhotonBlock::getLightLevel).noCollission().air()); registerDefaultState((BlockState) ((BlockState) this.stateDefinition.any().setValue(EXTINGUISHED, false)).setValue(WATERLOGGED, false)); } public FluidState getFluidState(BlockState state) { if (((Boolean) state.getValue(WATERLOGGED)).booleanValue()) { return Fluids.WATER.getSource(false); } return super.getFluidState(state); } public boolean canPlaceLiquid(BlockGetter p_56301_, BlockPos p_56302_, BlockState p_56303_, Fluid p_56304_) { return false; } public boolean placeLiquid(LevelAccessor p_56306_, BlockPos p_56307_, BlockState p_56308_, FluidState p_56309_) { return false; } protected boolean isAir(BlockState state) { if (((Boolean) state.getValue(WATERLOGGED)).booleanValue()) { return false; } return true; } public boolean canBeReplaced(BlockState p_60470_, BlockPlaceContext p_60471_) { return true; } public boolean canBeReplaced(BlockState p_60535_, Fluid p_60536_) { return true; } public static int getLightLevel(BlockState state) { if (((Boolean) state.getValue(EXTINGUISHED)).booleanValue()) { return 0; } int lightLevel = 13; Integer configLight = ModernLifeConfig.COMMON.flashlightLightLevel.getValue(); if (configLight != null) { lightLevel = configLight.intValue(); } ModernLifeCommon.LOGGER.debug("flashlight light level = " + lightLevel); return lightLevel; } public RenderShape getRenderShape(BlockState p_149645_1_) { return RenderShape.INVISIBLE; } protected void createBlockStateDefinition(StateDefinition.Builder builder) { builder.add(new Property[]{EXTINGUISHED, WATERLOGGED}); } public BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { return ModernLifeUtil.createTickerHelper(type, PhotonBlockEntity.PHOTON, PhotonBlockEntity::tick); } public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { return PhotonBlockEntity.PHOTON.create(pos, state); } public VoxelShape getShape(BlockState bs, BlockGetter reader, BlockPos pos, CollisionContext sel) { return Shapes.empty(); } }