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();
}