46 lines
1.7 KiB
Java
46 lines
1.7 KiB
Java
package ru.betterend.blocks;
|
|
|
|
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
|
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
|
|
import net.minecraft.block.Block;
|
|
import net.minecraft.block.BlockState;
|
|
import net.minecraft.block.Blocks;
|
|
import net.minecraft.block.Material;
|
|
import net.minecraft.sound.BlockSoundGroup;
|
|
import net.minecraft.state.StateManager;
|
|
import net.minecraft.state.property.BooleanProperty;
|
|
import net.minecraft.util.math.BlockPos;
|
|
import net.minecraft.util.math.Direction;
|
|
import net.minecraft.world.WorldAccess;
|
|
import net.minecraft.world.WorldView;
|
|
import ru.betterend.blocks.basis.BlockBase;
|
|
import ru.betterend.registry.BlockRegistry;
|
|
|
|
public class BlockBlueVineLantern extends BlockBase {
|
|
public static final BooleanProperty NATURAL = BooleanProperty.of("natural");
|
|
|
|
public BlockBlueVineLantern() {
|
|
super(FabricBlockSettings.of(Material.WOOD).breakByTool(FabricToolTags.AXES).sounds(BlockSoundGroup.WART_BLOCK).lightLevel(15));
|
|
this.setDefaultState(this.stateManager.getDefaultState().with(NATURAL, false));
|
|
}
|
|
|
|
@Override
|
|
public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) {
|
|
return state.get(NATURAL) ? world.getBlockState(pos.down()).getBlock() == BlockRegistry.BLUE_VINE : true;
|
|
}
|
|
|
|
@Override
|
|
public BlockState getStateForNeighborUpdate(BlockState state, Direction facing, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) {
|
|
if (!canPlaceAt(state, world, pos)) {
|
|
return Blocks.AIR.getDefaultState();
|
|
}
|
|
else {
|
|
return state;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
protected void appendProperties(StateManager.Builder<Block, BlockState> stateManager) {
|
|
stateManager.add(NATURAL);
|
|
}
|
|
}
|