package net.minecraft.block.state; import com.google.common.collect.ImmutableMap; import java.util.Collection; import net.minecraft.block.Block; import net.minecraft.block.properties.IProperty; public interface IBlockState { /** * Get the names of all properties defined for this BlockState */ Collection getPropertyNames(); /** * Get the value of the given Property for this BlockState */ Comparable getValue(IProperty property); /** * Get a version of this BlockState with the given Property now set to the given value */ IBlockState withProperty(IProperty property, Comparable value); /** * Create a version of this BlockState with the given property cycled to the next value in order. If the property * was at the highest possible value, it is set to the lowest one instead. */ IBlockState cycleProperty(IProperty property); /** * Get all properties of this BlockState. The returned Map maps from properties (IProperty) to the respective * current value. */ ImmutableMap getProperties(); Block getBlock(); }