package net.minecraft.block;
import com.google.common.collect.Sets;
import java.util.List;
import java.util.Random;
import java.util.Set;
import javax.annotation.Nullable;
import net.minecraft.block.material.EnumPushReaction;
import net.minecraft.block.material.MapColor;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.item.EntityXPOrb;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Enchantments;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.stats.StatList;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.EnumBlockRenderType;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.Mirror;
import net.minecraft.util.ObjectIntIdentityMap;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.Rotation;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.RayTraceResult;
import net.minecraft.util.math.Vec3d;
import net.minecraft.util.registry.RegistryNamespacedDefaultedByKey;
import net.minecraft.util.text.translation.I18n;
import net.minecraft.world.Explosion;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
public class Block extends net.minecraftforge.fml.common.registry.IForgeRegistryEntry.Impl<Block>
{
private static final ResourceLocation AIR_ID = new ResourceLocation("air");
public static final RegistryNamespacedDefaultedByKey<ResourceLocation, Block> REGISTRY = net.minecraftforge.fml.common.registry.GameData.getBlockRegistry();
@Deprecated
public static final ObjectIntIdentityMap<IBlockState> BLOCK_STATE_IDS = net.minecraftforge.fml.common.registry.GameData.getBlockStateIDMap();
public static final AxisAlignedBB FULL_BLOCK_AABB = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
public static final AxisAlignedBB NULL_AABB = null;
private CreativeTabs displayOnCreativeTab;
protected boolean fullBlock;
protected int lightOpacity;
protected boolean translucent;
protected int lightValue;
protected boolean useNeighborBrightness;
protected float blockHardness;
protected float blockResistance;
protected boolean enableStats;
protected boolean needsRandomTick;
protected boolean isBlockContainer;
protected SoundType blockSoundType;
public float blockParticleGravity;
protected final Material blockMaterial;
protected final MapColor blockMapColor;
public float slipperiness;
protected final BlockStateContainer blockState;
private IBlockState defaultBlockState;
private String unlocalizedName;
public static int getIdFromBlock(Block blockIn)
{
return REGISTRY.getIDForObject(blockIn);
}
public static int getStateId(IBlockState state)
{
Block block = state.getBlock();
return getIdFromBlock(block) + (block.getMetaFromState(state) << 12);
}
public static Block getBlockById(int id)
{
Block ret = (Block)REGISTRY.getObjectById(id);
return ret == null ? net.minecraft.init.Blocks.AIR : ret;
}
public static IBlockState getStateById(int id)
{
int i = id & 4095;
int j = id >> 12 & 15;
return getBlockById(i).getStateFromMeta(j);
}
public static Block getBlockFromItem(Item itemIn)
{
return itemIn instanceof ItemBlock ? ((ItemBlock)itemIn).getBlock() : null;
}
@Nullable
public static Block getBlockFromName(String name)
{
ResourceLocation resourcelocation = new ResourceLocation(name);
if (REGISTRY.containsKey(resourcelocation))
{
return (Block)REGISTRY.getObject(resourcelocation);
}
else
{
try
{
return (Block)REGISTRY.getObjectById(Integer.parseInt(name));
}
catch (NumberFormatException var3)
{
return null;
}
}
}
@Deprecated
public boolean isFullyOpaque(IBlockState state)
{
return state.getMaterial().isOpaque() && state.isFullCube();
}
@Deprecated
public boolean isFullBlock(IBlockState state)
{
return this.fullBlock;
}
@Deprecated
public boolean canEntitySpawn(IBlockState state, Entity entityIn)
{
return true;
}
@Deprecated
public int getLightOpacity(IBlockState state)
{
return this.lightOpacity;
}
@Deprecated
@SideOnly(Side.CLIENT)
public boolean isTranslucent(IBlockState state)
{
return this.translucent;
}
@Deprecated
public int getLightValue(IBlockState state)
{
return this.lightValue;
}
@Deprecated
public boolean getUseNeighborBrightness(IBlockState state)
{
return this.useNeighborBrightness;
}
@Deprecated
public Material getMaterial(IBlockState state)
{
return this.blockMaterial;
}
@Deprecated
public MapColor getMapColor(IBlockState state)
{
return this.blockMapColor;
}
@Deprecated
public IBlockState getStateFromMeta(int meta)
{
return this.getDefaultState();
}
public int getMetaFromState(IBlockState state)
{
if (state != null && !state.getPropertyNames().isEmpty())
{
throw new IllegalArgumentException("Don\'t know how to convert " + state + " back into data...");
}
else
{
return 0;
}
}
@Deprecated
public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos)
{
return state;
}
@Deprecated
public IBlockState withRotation(IBlockState state, Rotation rot)
{
return state;
}
@Deprecated
public IBlockState withMirror(IBlockState state, Mirror mirrorIn)
{
return state;
}
public Block(Material blockMaterialIn, MapColor blockMapColorIn)
{
this.enableStats = true;
this.blockSoundType = SoundType.STONE;
this.blockParticleGravity = 1.0F;
this.slipperiness = 0.6F;
this.blockMaterial = blockMaterialIn;
this.blockMapColor = blockMapColorIn;
this.blockState = this.createBlockState();
this.setDefaultState(this.blockState.getBaseState());
this.fullBlock = this.getDefaultState().isOpaqueCube();
this.lightOpacity = this.fullBlock ? 255 : 0;
this.translucent = !blockMaterialIn.blocksLight();
}
public Block(Material materialIn)
{
this(materialIn, materialIn.getMaterialMapColor());
}
protected Block setSoundType(SoundType sound)
{
this.blockSoundType = sound;
return this;
}
public Block setLightOpacity(int opacity)
{
this.lightOpacity = opacity;
return this;
}
public Block setLightLevel(float value)
{
this.lightValue = (int)(15.0F * value);
return this;
}
public Block setResistance(float resistance)
{
this.blockResistance = resistance * 3.0F;
return this;
}
@Deprecated
public boolean isBlockNormalCube(IBlockState state)
{
return state.getMaterial().blocksMovement() && state.isFullCube();
}
@Deprecated
public boolean isNormalCube(IBlockState state)
{
return state.getMaterial().isOpaque() && state.isFullCube() && !state.canProvidePower();
}
public boolean isVisuallyOpaque()
{
return this.blockMaterial.blocksMovement() && this.getDefaultState().isFullCube();
}
@Deprecated
public boolean isFullCube(IBlockState state)
{
return true;
}
public boolean isPassable(IBlockAccess worldIn, BlockPos pos)
{
return !this.blockMaterial.blocksMovement();
}
@Deprecated
public EnumBlockRenderType getRenderType(IBlockState state)
{
return EnumBlockRenderType.MODEL;
}
public boolean isReplaceable(IBlockAccess worldIn, BlockPos pos)
{
return worldIn.getBlockState(pos).getMaterial().isReplaceable();
}
public Block setHardness(float hardness)
{
this.blockHardness = hardness;
if (this.blockResistance < hardness * 5.0F)
{
this.blockResistance = hardness * 5.0F;
}
return this;
}
public Block setBlockUnbreakable()
{
this.setHardness(-1.0F);
return this;
}
@Deprecated
public float getBlockHardness(IBlockState blockState, World worldIn, BlockPos pos)
{
return this.blockHardness;
}
public Block setTickRandomly(boolean shouldTick)
{
this.needsRandomTick = shouldTick;
return this;
}
public boolean getTickRandomly()
{
return this.needsRandomTick;
}
@Deprecated
public boolean hasTileEntity()
{
return hasTileEntity(getDefaultState());
}
@Deprecated
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
{
return FULL_BLOCK_AABB;
}
public boolean isBlockSolid(IBlockAccess worldIn, BlockPos pos, EnumFacing side)
{
return worldIn.getBlockState(pos).getMaterial().isSolid();
}
@Deprecated
public void addCollisionBoxToList(IBlockState state, World worldIn, BlockPos pos, AxisAlignedBB entityBox, List<AxisAlignedBB> collidingBoxes, @Nullable Entity entityIn)
{
addCollisionBoxToList(pos, entityBox, collidingBoxes, state.getCollisionBoundingBox(worldIn, pos));
}
protected static void addCollisionBoxToList(BlockPos pos, AxisAlignedBB entityBox, List<AxisAlignedBB> collidingBoxes, @Nullable AxisAlignedBB blockBox)
{
if (blockBox != NULL_AABB)
{
AxisAlignedBB axisalignedbb = blockBox.offset(pos);
if (entityBox.intersectsWith(axisalignedbb))
{
collidingBoxes.add(axisalignedbb);
}
}
}
@Deprecated
@Nullable
public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, World worldIn, BlockPos pos)
{
return blockState.getBoundingBox(worldIn, pos);
}
@Deprecated
@SideOnly(Side.CLIENT)
public int getPackedLightmapCoords(IBlockState state, IBlockAccess source, BlockPos pos)
{
int i = source.getCombinedLight(pos, state.getLightValue(source, pos));
if (i == 0 && state.getBlock() instanceof BlockSlab)
{
pos = pos.down();
state = source.getBlockState(pos);
return source.getCombinedLight(pos, state.getLightValue(source, pos));
}
else
{
return i;
}
}
@Deprecated
@SideOnly(Side.CLIENT)
public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side)
{
AxisAlignedBB axisalignedbb = blockState.getBoundingBox(blockAccess, pos);
switch (side)
{
case DOWN:
if (axisalignedbb.minY > 0.0D)
{
return true;
}
break;
case UP:
if (axisalignedbb.maxY < 1.0D)
{
return true;
}
break;
case NORTH:
if (axisalignedbb.minZ > 0.0D)
{
return true;
}
break;
case SOUTH:
if (axisalignedbb.maxZ < 1.0D)
{
return true;
}
break;
case WEST:
if (axisalignedbb.minX > 0.0D)
{
return true;
}
break;
case EAST:
if (axisalignedbb.maxX < 1.0D)
{
return true;
}
}
return !blockAccess.getBlockState(pos.offset(side)).doesSideBlockRendering(blockAccess, pos.offset(side), side.getOpposite());
}
@Deprecated
@SideOnly(Side.CLIENT)
public AxisAlignedBB getSelectedBoundingBox(IBlockState state, World worldIn, BlockPos pos)
{
return state.getBoundingBox(worldIn, pos).offset(pos);
}
@Deprecated
public boolean isOpaqueCube(IBlockState state)
{
return true;
}
public boolean canCollideCheck(IBlockState state, boolean hitIfLiquid)
{
return this.isCollidable();
}
public boolean isCollidable()
{
return true;
}
public void randomTick(World worldIn, BlockPos pos, IBlockState state, Random random)
{
this.updateTick(worldIn, pos, state, random);
}
public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand)
{
}
@SideOnly(Side.CLIENT)
public void randomDisplayTick(IBlockState stateIn, World worldIn, BlockPos pos, Random rand)
{
}
public void onBlockDestroyedByPlayer(World worldIn, BlockPos pos, IBlockState state)
{
}
@Deprecated
public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn)
{
}
public int tickRate(World worldIn)
{
return 10;
}
public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state)
{
}
public void breakBlock(World worldIn, BlockPos pos, IBlockState state)
{
if (hasTileEntity(state) && !(this instanceof BlockContainer))
{
worldIn.removeTileEntity(pos);
}
}
public int quantityDropped(Random random)
{
return 1;
}
@Nullable
public Item getItemDropped(IBlockState state, Random rand, int fortune)
{
return Item.getItemFromBlock(this);
}
@Deprecated
public float getPlayerRelativeBlockHardness(IBlockState state, EntityPlayer player, World worldIn, BlockPos pos)
{
return net.minecraftforge.common.ForgeHooks.blockStrength(state, player, worldIn, pos);
}
public final void dropBlockAsItem(World worldIn, BlockPos pos, IBlockState state, int fortune)
{
this.dropBlockAsItemWithChance(worldIn, pos, state, 1.0F, fortune);
}
public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, IBlockState state, float chance, int fortune)
{
if (!worldIn.isRemote && !worldIn.restoringBlockSnapshots)
{
java.util.List<ItemStack> items = getDrops(worldIn, pos, state, fortune);
chance = net.minecraftforge.event.ForgeEventFactory.fireBlockHarvesting(items, worldIn, pos, state, fortune, chance, false, harvesters.get());
for (ItemStack item : items)
{
if (worldIn.rand.nextFloat() <= chance)
{
spawnAsEntity(worldIn, pos, item);
}
}
}
}
public static void spawnAsEntity(World worldIn, BlockPos pos, ItemStack stack)
{
if (!worldIn.isRemote && worldIn.getGameRules().getBoolean("doTileDrops") && !worldIn.restoringBlockSnapshots)
{
if (captureDrops.get())
{
capturedDrops.get().add(stack);
return;
}
float f = 0.5F;
double d0 = (double)(worldIn.rand.nextFloat() * 0.5F) + 0.25D;
double d1 = (double)(worldIn.rand.nextFloat() * 0.5F) + 0.25D;
double d2 = (double)(worldIn.rand.nextFloat() * 0.5F) + 0.25D;
EntityItem entityitem = new EntityItem(worldIn, (double)pos.getX() + d0, (double)pos.getY() + d1, (double)pos.getZ() + d2, stack);
entityitem.setDefaultPickupDelay();
worldIn.spawnEntityInWorld(entityitem);
}
}
public void dropXpOnBlockBreak(World worldIn, BlockPos pos, int amount)
{
if (!worldIn.isRemote && worldIn.getGameRules().getBoolean("doTileDrops"))
{
while (amount > 0)
{
int i = EntityXPOrb.getXPSplit(amount);
amount -= i;
worldIn.spawnEntityInWorld(new EntityXPOrb(worldIn, (double)pos.getX() + 0.5D, (double)pos.getY() + 0.5D, (double)pos.getZ() + 0.5D, i));
}
}
}
public int damageDropped(IBlockState state)
{
return 0;
}
public float getExplosionResistance(Entity exploder)
{
return this.blockResistance / 5.0F;
}
@Deprecated
@Nullable
public RayTraceResult collisionRayTrace(IBlockState blockState, World worldIn, BlockPos pos, Vec3d start, Vec3d end)
{
return this.rayTrace(pos, start, end, blockState.getBoundingBox(worldIn, pos));
}
@Nullable
protected RayTraceResult rayTrace(BlockPos pos, Vec3d start, Vec3d end, AxisAlignedBB boundingBox)
{
Vec3d vec3d = start.subtract((double)pos.getX(), (double)pos.getY(), (double)pos.getZ());
Vec3d vec3d1 = end.subtract((double)pos.getX(), (double)pos.getY(), (double)pos.getZ());
RayTraceResult raytraceresult = boundingBox.calculateIntercept(vec3d, vec3d1);
return raytraceresult == null ? null : new RayTraceResult(raytraceresult.hitVec.addVector((double)pos.getX(), (double)pos.getY(), (double)pos.getZ()), raytraceresult.sideHit, pos);
}
public void onBlockDestroyedByExplosion(World worldIn, BlockPos pos, Explosion explosionIn)
{
}
public boolean canReplace(World worldIn, BlockPos pos, EnumFacing side, @Nullable ItemStack stack)
{
return this.canPlaceBlockOnSide(worldIn, pos, side);
}
@SideOnly(Side.CLIENT)
public BlockRenderLayer getBlockLayer()
{
return BlockRenderLayer.SOLID;
}
public boolean canPlaceBlockOnSide(World worldIn, BlockPos pos, EnumFacing side)
{
return this.canPlaceBlockAt(worldIn, pos);
}
public boolean canPlaceBlockAt(World worldIn, BlockPos pos)
{
return worldIn.getBlockState(pos).getBlock().isReplaceable(worldIn, pos);
}
public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, @Nullable ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ)
{
return false;
}
public void onEntityWalk(World worldIn, BlockPos pos, Entity entityIn)
{
}
@Deprecated
public IBlockState onBlockPlaced(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
{
return this.getStateFromMeta(meta);
}
public void onBlockClicked(World worldIn, BlockPos pos, EntityPlayer playerIn)
{
}
public Vec3d modifyAcceleration(World worldIn, BlockPos pos, Entity entityIn, Vec3d motion)
{
return motion;
}
@Deprecated
public int getWeakPower(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side)
{
return 0;
}
@Deprecated
public boolean canProvidePower(IBlockState state)
{
return false;
}
public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, IBlockState state, Entity entityIn)
{
}
@Deprecated
public int getStrongPower(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side)
{
return 0;
}
public void harvestBlock(World worldIn, EntityPlayer player, BlockPos pos, IBlockState state, @Nullable TileEntity te, @Nullable ItemStack stack)
{
player.addStat(StatList.getBlockStats(this));
player.addExhaustion(0.025F);
if (this.canSilkHarvest(worldIn, pos, state, player) && EnchantmentHelper.getEnchantmentLevel(Enchantments.SILK_TOUCH, stack) > 0)
{
java.util.List<ItemStack> items = new java.util.ArrayList<ItemStack>();
ItemStack itemstack = this.createStackedBlock(state);
if (itemstack != null)
{
items.add(itemstack);
}
net.minecraftforge.event.ForgeEventFactory.fireBlockHarvesting(items, worldIn, pos, state, 0, 1.0f, true, player);
for (ItemStack item : items)
{
spawnAsEntity(worldIn, pos, item);
}
}
else
{
harvesters.set(player);
int i = EnchantmentHelper.getEnchantmentLevel(Enchantments.FORTUNE, stack);
this.dropBlockAsItem(worldIn, pos, state, i);
harvesters.set(null);
}
}
@Deprecated
protected boolean canSilkHarvest()
{
return this.getDefaultState().isFullCube() && !this.hasTileEntity(silk_check_state.get());
}
@Nullable
protected ItemStack createStackedBlock(IBlockState state)
{
Item item = Item.getItemFromBlock(this);
if (item == null)
{
return null;
}
else
{
int i = 0;
if (item.getHasSubtypes())
{
i = this.getMetaFromState(state);
}
return new ItemStack(item, 1, i);
}
}
public int quantityDroppedWithBonus(int fortune, Random random)
{
return this.quantityDropped(random);
}
public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
{
}
public boolean canSpawnInBlock()
{
return !this.blockMaterial.isSolid() && !this.blockMaterial.isLiquid();
}
public Block setUnlocalizedName(String name)
{
this.unlocalizedName = name;
return this;
}
public String getLocalizedName()
{
return I18n.translateToLocal(this.getUnlocalizedName() + ".name");
}
public String getUnlocalizedName()
{
return "tile." + this.unlocalizedName;
}
@Deprecated
public boolean eventReceived(IBlockState state, World worldIn, BlockPos pos, int id, int param)
{
return false;
}
public boolean getEnableStats()
{
return this.enableStats;
}
protected Block disableStats()
{
this.enableStats = false;
return this;
}
@Deprecated
public EnumPushReaction getMobilityFlag(IBlockState state)
{
return this.blockMaterial.getMobilityFlag();
}
@Deprecated
@SideOnly(Side.CLIENT)
public float getAmbientOcclusionLightValue(IBlockState state)
{
return state.isBlockNormalCube() ? 0.2F : 1.0F;
}
public void onFallenUpon(World worldIn, BlockPos pos, Entity entityIn, float fallDistance)
{
entityIn.fall(fallDistance, 1.0F);
}
public void onLanded(World worldIn, Entity entityIn)
{
entityIn.motionY = 0.0D;
}
@Nullable
@Deprecated
public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state)
{
Item item = Item.getItemFromBlock(this);
return item == null ? null : new ItemStack(item, 1, this.damageDropped(state));
}
@SideOnly(Side.CLIENT)
public void getSubBlocks(Item itemIn, CreativeTabs tab, List<ItemStack> list)
{
list.add(new ItemStack(itemIn));
}
public Block setCreativeTab(CreativeTabs tab)
{
this.displayOnCreativeTab = tab;
return this;
}
public void onBlockHarvested(World worldIn, BlockPos pos, IBlockState state, EntityPlayer player)
{
}
@SideOnly(Side.CLIENT)
public CreativeTabs getCreativeTabToDisplayOn()
{
return this.displayOnCreativeTab;
}
public void fillWithRain(World worldIn, BlockPos pos)
{
}
public boolean requiresUpdates()
{
return true;
}
public boolean canDropFromExplosion(Explosion explosionIn)
{
return true;
}
public boolean isAssociatedBlock(Block other)
{
return this == other;
}
public static boolean isEqualTo(Block blockIn, Block other)
{
return blockIn != null && other != null ? (blockIn == other ? true : blockIn.isAssociatedBlock(other)) : false;
}
@Deprecated
public boolean hasComparatorInputOverride(IBlockState state)
{
return false;
}
@Deprecated
public int getComparatorInputOverride(IBlockState blockState, World worldIn, BlockPos pos)
{
return 0;
}
protected BlockStateContainer createBlockState()
{
return new BlockStateContainer(this, new IProperty[0]);
}
public BlockStateContainer getBlockState()
{
return this.blockState;
}
protected final void setDefaultState(IBlockState state)
{
this.defaultBlockState = state;
}
public final IBlockState getDefaultState()
{
return this.defaultBlockState;
}
@SideOnly(Side.CLIENT)
public Block.EnumOffsetType getOffsetType()
{
return Block.EnumOffsetType.NONE;
}
@Deprecated
public SoundType getSoundType()
{
return this.blockSoundType;
}
public String toString()
{
return "Block{" + REGISTRY.getNameForObject(this) + "}";
}
protected ThreadLocal<EntityPlayer> harvesters = new ThreadLocal();
private ThreadLocal<IBlockState> silk_check_state = new ThreadLocal();
protected static java.util.Random RANDOM = new java.util.Random();
public int getLightValue(IBlockState state, IBlockAccess world, BlockPos pos)
{
IBlockState other = world.getBlockState(pos);
if (other.getBlock() != this)
{
return other.getLightValue(world, pos);
}
return state.getLightValue();
}
public boolean isLadder(IBlockState state, IBlockAccess world, BlockPos pos, EntityLivingBase entity) { return false; }
public boolean isNormalCube(IBlockState state, IBlockAccess world, BlockPos pos)
{
return state.getMaterial().isOpaque() && state.isFullCube() && !state.canProvidePower();
}
public boolean doesSideBlockRendering(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing face)
{
return state.isOpaqueCube();
}
public boolean isSideSolid(IBlockState base_state, IBlockAccess world, BlockPos pos, EnumFacing side)
{
if (base_state.isFullyOpaque() && side == EnumFacing.UP)
return true;
if (this instanceof BlockSlab)
{
IBlockState state = this.getActualState(base_state, world, pos);
return base_state.isFullBlock()
|| (state.getValue(BlockSlab.HALF) == BlockSlab.EnumBlockHalf.TOP && side == EnumFacing.UP )
|| (state.getValue(BlockSlab.HALF) == BlockSlab.EnumBlockHalf.BOTTOM && side == EnumFacing.DOWN);
}
else if (this instanceof BlockFarmland)
{
return (side != EnumFacing.DOWN && side != EnumFacing.UP);
}
else if (this instanceof BlockStairs)
{
IBlockState state = this.getActualState(base_state, world, pos);
boolean flipped = state.getValue(BlockStairs.HALF) == BlockStairs.EnumHalf.TOP;
BlockStairs.EnumShape shape = (BlockStairs.EnumShape)state.getValue(BlockStairs.SHAPE);
EnumFacing facing = (EnumFacing)state.getValue(BlockStairs.FACING);
if (side == EnumFacing.UP) return flipped;
if (side == EnumFacing.DOWN) return !flipped;
if (facing == side) return true;
if (flipped)
{
if (shape == BlockStairs.EnumShape.INNER_LEFT ) return side == facing.rotateYCCW();
if (shape == BlockStairs.EnumShape.INNER_RIGHT) return side == facing.rotateY();
}
else
{
if (shape == BlockStairs.EnumShape.INNER_LEFT ) return side == facing.rotateY();
if (shape == BlockStairs.EnumShape.INNER_RIGHT) return side == facing.rotateYCCW();
}
return false;
}
else if (this instanceof BlockSnow)
{
IBlockState state = this.getActualState(base_state, world, pos);
return ((Integer)state.getValue(BlockSnow.LAYERS)) >= 8;
}
else if (this instanceof BlockHopper && side == EnumFacing.UP)
{
return true;
}
else if (this instanceof BlockCompressedPowered)
{
return true;
}
return isNormalCube(base_state, world, pos);
}
public boolean isBurning(IBlockAccess world, BlockPos pos)
{
return false;
}
public boolean isAir(IBlockState state, IBlockAccess world, BlockPos pos)
{
return state.getMaterial() == Material.AIR;
}
public boolean canHarvestBlock(IBlockAccess world, BlockPos pos, EntityPlayer player)
{
return net.minecraftforge.common.ForgeHooks.canHarvestBlock(this, player, world, pos);
}
public boolean removedByPlayer(IBlockState state, World world, BlockPos pos, EntityPlayer player, boolean willHarvest)
{
this.onBlockHarvested(world, pos, state, player);
return world.setBlockState(pos, net.minecraft.init.Blocks.AIR.getDefaultState(), world.isRemote ? 11 : 3);
}
public int getFlammability(IBlockAccess world, BlockPos pos, EnumFacing face)
{
return net.minecraft.init.Blocks.FIRE.getFlammability(this);
}
public boolean isFlammable(IBlockAccess world, BlockPos pos, EnumFacing face)
{
return getFlammability(world, pos, face) > 0;
}
public int getFireSpreadSpeed(IBlockAccess world, BlockPos pos, EnumFacing face)
{
return net.minecraft.init.Blocks.FIRE.getEncouragement(this);
}
public boolean isFireSource(World world, BlockPos pos, EnumFacing side)
{
if (this == net.minecraft.init.Blocks.NETHERRACK && side == EnumFacing.UP)
{
return true;
}
if ((world.provider instanceof net.minecraft.world.WorldProviderEnd) && this == net.minecraft.init.Blocks.BEDROCK && side == EnumFacing.UP)
{
return true;
}
return false;
}
private boolean isTileProvider = this instanceof ITileEntityProvider;
public boolean hasTileEntity(IBlockState state)
{
return isTileProvider;
}
public TileEntity createTileEntity(World world, IBlockState state)
{
if (isTileProvider)
{
return ((ITileEntityProvider)this).createNewTileEntity(world, getMetaFromState(state));
}
return null;
}
public int quantityDropped(IBlockState state, int fortune, Random random)
{
return quantityDroppedWithBonus(fortune, random);
}
public List<ItemStack> getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune)
{
List<ItemStack> ret = new java.util.ArrayList<ItemStack>();
Random rand = world instanceof World ? ((World)world).rand : RANDOM;
int count = quantityDropped(state, fortune, rand);
for(int i = 0; i < count; i++)
{
Item item = this.getItemDropped(state, rand, fortune);
if (item != null)
{
ret.add(new ItemStack(item, 1, this.damageDropped(state)));
}
}
return ret;
}
public boolean canSilkHarvest(World world, BlockPos pos, IBlockState state, EntityPlayer player)
{
silk_check_state.set(state);;
boolean ret = this.canSilkHarvest();
silk_check_state.set(null);
return ret;
}
public boolean canCreatureSpawn(IBlockState state, IBlockAccess world, BlockPos pos, net.minecraft.entity.EntityLiving.SpawnPlacementType type)
{
return isSideSolid(state, world, pos, EnumFacing.UP);
}
public boolean isBed(IBlockState state, IBlockAccess world, BlockPos pos, Entity player)
{
return this == net.minecraft.init.Blocks.BED;
}
public BlockPos getBedSpawnPosition(IBlockState state, IBlockAccess world, BlockPos pos, EntityPlayer player)
{
if (world instanceof World)
return BlockBed.getSafeExitLocation((World)world, pos, 0);
return null;
}
public void setBedOccupied(IBlockAccess world, BlockPos pos, EntityPlayer player, boolean occupied)
{
if (world instanceof World)
{
IBlockState state = world.getBlockState(pos);
state = state.getBlock().getActualState(state, world, pos);
state = state.withProperty(BlockBed.OCCUPIED, occupied);
((World)world).setBlockState(pos, state, 4);
}
}
public EnumFacing getBedDirection(IBlockState state, IBlockAccess world, BlockPos pos)
{
return (EnumFacing)getActualState(state, world, pos).getValue(BlockHorizontal.FACING);
}
public boolean isBedFoot(IBlockAccess world, BlockPos pos)
{
return getActualState(world.getBlockState(pos), world, pos).getValue(BlockBed.PART) == BlockBed.EnumPartType.FOOT;
}
public void beginLeavesDecay(IBlockState state, World world, BlockPos pos){}
public boolean canSustainLeaves(IBlockState state, IBlockAccess world, BlockPos pos)
{
return false;
}
public boolean isLeaves(IBlockState state, IBlockAccess world, BlockPos pos)
{
return state.getMaterial() == Material.LEAVES;
}
public boolean canBeReplacedByLeaves(IBlockState state, IBlockAccess world, BlockPos pos)
{
return isAir(state, world, pos) || isLeaves(state, world, pos);
}
public boolean isWood(IBlockAccess world, BlockPos pos)
{
return false;
}
public boolean isReplaceableOreGen(IBlockState state, IBlockAccess world, BlockPos pos, com.google.common.base.Predicate<IBlockState> target)
{
return target.apply(state);
}
public float getExplosionResistance(World world, BlockPos pos, Entity exploder, Explosion explosion)
{
return getExplosionResistance(exploder);
}
public void onBlockExploded(World world, BlockPos pos, Explosion explosion)
{
world.setBlockToAir(pos);
onBlockDestroyedByExplosion(world, pos, explosion);
}
public boolean canConnectRedstone(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side)
{
return state.canProvidePower() && side != null;
}
public boolean canPlaceTorchOnTop(IBlockState state, IBlockAccess world, BlockPos pos)
{
if (state.isSideSolid(world, pos, EnumFacing.UP))
{
return true;
}
else
{
return this instanceof BlockFence || this == net.minecraft.init.Blocks.GLASS || this == net.minecraft.init.Blocks.COBBLESTONE_WALL || this == net.minecraft.init.Blocks.STAINED_GLASS;
}
}
public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player)
{
return getItem(world, pos, state);
}
public boolean isFoliage(IBlockAccess world, BlockPos pos)
{
return false;
}
public boolean addLandingEffects(IBlockState state, net.minecraft.world.WorldServer worldObj, BlockPos blockPosition, IBlockState iblockstate, EntityLivingBase entity, int numberOfParticles )
{
return false;
}
@SideOnly(Side.CLIENT)
public boolean addHitEffects(IBlockState state, World worldObj, RayTraceResult target, net.minecraft.client.particle.ParticleManager manager)
{
return false;
}
@SideOnly(Side.CLIENT)
public boolean addDestroyEffects(World world, BlockPos pos, net.minecraft.client.particle.ParticleManager manager)
{
return false;
}
public boolean canSustainPlant(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing direction, net.minecraftforge.common.IPlantable plantable)
{
IBlockState plant = plantable.getPlant(world, pos.offset(direction));
net.minecraftforge.common.EnumPlantType plantType = plantable.getPlantType(world, pos.offset(direction));
if (plant.getBlock() == net.minecraft.init.Blocks.CACTUS)
{
return this == net.minecraft.init.Blocks.CACTUS || this == net.minecraft.init.Blocks.SAND;
}
if (plant.getBlock() == net.minecraft.init.Blocks.REEDS && this == net.minecraft.init.Blocks.REEDS)
{
return true;
}
if (plantable instanceof BlockBush && ((BlockBush)plantable).canSustainBush(state))
{
return true;
}
switch (plantType)
{
case Desert: return this == net.minecraft.init.Blocks.SAND || this == net.minecraft.init.Blocks.HARDENED_CLAY || this == net.minecraft.init.Blocks.STAINED_HARDENED_CLAY;
case Nether: return this == net.minecraft.init.Blocks.SOUL_SAND;
case Crop: return this == net.minecraft.init.Blocks.FARMLAND;
case Cave: return state.isSideSolid(world, pos, EnumFacing.UP);
case Plains: return this == net.minecraft.init.Blocks.GRASS || this == net.minecraft.init.Blocks.DIRT || this == net.minecraft.init.Blocks.FARMLAND;
case Water: return state.getMaterial() == Material.WATER && state.getValue(BlockLiquid.LEVEL) == 0;
case Beach:
boolean isBeach = this == net.minecraft.init.Blocks.GRASS || this == net.minecraft.init.Blocks.DIRT || this == net.minecraft.init.Blocks.SAND;
boolean hasWater = (world.getBlockState(pos.east()).getMaterial() == Material.WATER ||
world.getBlockState(pos.west()).getMaterial() == Material.WATER ||
world.getBlockState(pos.north()).getMaterial() == Material.WATER ||
world.getBlockState(pos.south()).getMaterial() == Material.WATER);
return isBeach && hasWater;
}
return false;
}
public void onPlantGrow(IBlockState state, World world, BlockPos pos, BlockPos source)
{
if (this == net.minecraft.init.Blocks.GRASS || this == net.minecraft.init.Blocks.FARMLAND)
{
world.setBlockState(pos, net.minecraft.init.Blocks.DIRT.getDefaultState(), 2);
}
}
public boolean isFertile(World world, BlockPos pos)
{
if (this == net.minecraft.init.Blocks.FARMLAND)
{
return ((Integer)world.getBlockState(pos).getValue(BlockFarmland.MOISTURE)) > 0;
}
return false;
}
public int getLightOpacity(IBlockState state, IBlockAccess world, BlockPos pos)
{
return state.getLightOpacity();
}
public boolean canEntityDestroy(IBlockState state, IBlockAccess world, BlockPos pos, Entity entity)
{
if (entity instanceof net.minecraft.entity.boss.EntityDragon)
{
return this != net.minecraft.init.Blocks.BARRIER &&
this != net.minecraft.init.Blocks.OBSIDIAN &&
this != net.minecraft.init.Blocks.END_STONE &&
this != net.minecraft.init.Blocks.BEDROCK &&
this != net.minecraft.init.Blocks.END_PORTAL &&
this != net.minecraft.init.Blocks.END_PORTAL_FRAME &&
this != net.minecraft.init.Blocks.COMMAND_BLOCK &&
this != net.minecraft.init.Blocks.REPEATING_COMMAND_BLOCK &&
this != net.minecraft.init.Blocks.CHAIN_COMMAND_BLOCK &&
this != net.minecraft.init.Blocks.IRON_BARS &&
this != net.minecraft.init.Blocks.END_GATEWAY;
}
else if ((entity instanceof net.minecraft.entity.boss.EntityWither) ||
(entity instanceof net.minecraft.entity.projectile.EntityWitherSkull))
{
return net.minecraft.entity.boss.EntityWither.canDestroyBlock(this);
}
return true;
}
public boolean isBeaconBase(IBlockAccess worldObj, BlockPos pos, BlockPos beacon)
{
return this == net.minecraft.init.Blocks.EMERALD_BLOCK || this == net.minecraft.init.Blocks.GOLD_BLOCK || this == net.minecraft.init.Blocks.DIAMOND_BLOCK || this == net.minecraft.init.Blocks.IRON_BLOCK;
}
public boolean rotateBlock(World world, BlockPos pos, EnumFacing axis)
{
IBlockState state = world.getBlockState(pos);
for (IProperty<?> prop : state.getProperties().keySet())
{
if (prop.getName().equals("facing") || prop.getName().equals("rotation"))
{
world.setBlockState(pos, state.cycleProperty(prop));
return true;
}
}
return false;
}
public EnumFacing[] getValidRotations(World world, BlockPos pos)
{
IBlockState state = world.getBlockState(pos);
for (IProperty<?> prop : state.getProperties().keySet())
{
if (prop.getName().equals("facing") && prop.getValueClass() == EnumFacing.class)
{
@SuppressWarnings("unchecked")
java.util.Collection<EnumFacing> values = ((java.util.Collection<EnumFacing>)prop.getAllowedValues());
return values.toArray(new EnumFacing[values.size()]);
}
}
return null;
}
public float getEnchantPowerBonus(World world, BlockPos pos)
{
return this == net.minecraft.init.Blocks.BOOKSHELF ? 1 : 0;
}
@SuppressWarnings({ "unchecked", "rawtypes" })
public boolean recolorBlock(World world, BlockPos pos, EnumFacing side, net.minecraft.item.EnumDyeColor color)
{
IBlockState state = world.getBlockState(pos);
for (IProperty prop : state.getProperties().keySet())
{
if (prop.getName().equals("color") && prop.getValueClass() == net.minecraft.item.EnumDyeColor.class)
{
net.minecraft.item.EnumDyeColor current = (net.minecraft.item.EnumDyeColor)state.getValue(prop);
if (current != color)
{
world.setBlockState(pos, state.withProperty(prop, color));
return true;
}
}
}
return false;
}
public int getExpDrop(IBlockState state, IBlockAccess world, BlockPos pos, int fortune)
{
return 0;
}
public void onNeighborChange(IBlockAccess world, BlockPos pos, BlockPos neighbor){}
public boolean shouldCheckWeakPower(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side)
{
return state.isNormalCube();
}
public boolean getWeakChanges(IBlockAccess world, BlockPos pos)
{
return false;
}
private String[] harvestTool = new String[16];;
private int[] harvestLevel = new int[]{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
public void setHarvestLevel(String toolClass, int level)
{
java.util.Iterator<IBlockState> itr = getBlockState().getValidStates().iterator();
while (itr.hasNext())
{
setHarvestLevel(toolClass, level, itr.next());
}
}
public void setHarvestLevel(String toolClass, int level, IBlockState state)
{
int idx = this.getMetaFromState(state);
this.harvestTool[idx] = toolClass;
this.harvestLevel[idx] = level;
}
public String getHarvestTool(IBlockState state)
{
return harvestTool[getMetaFromState(state)];
}
public int getHarvestLevel(IBlockState state)
{
return harvestLevel[getMetaFromState(state)];
}
public boolean isToolEffective(String type, IBlockState state)
{
if ("pickaxe".equals(type) && (this == net.minecraft.init.Blocks.REDSTONE_ORE || this == net.minecraft.init.Blocks.LIT_REDSTONE_ORE || this == net.minecraft.init.Blocks.OBSIDIAN))
return false;
return type != null && type.equals(getHarvestTool(state));
}
public IBlockState getExtendedState(IBlockState state, IBlockAccess world, BlockPos pos)
{
return state;
}
public Boolean isEntityInsideMaterial(IBlockAccess world, BlockPos blockpos, IBlockState iblockstate, Entity entity, double yToTest, Material materialIn, boolean testingHead)
{
return null;
}
public Boolean isAABBInsideMaterial(World world, BlockPos pos, AxisAlignedBB boundingBox, Material materialIn)
{
return null;
}
@Deprecated
public boolean canRenderInLayer(BlockRenderLayer layer)
{
return getBlockLayer() == layer;
}
public boolean canRenderInLayer(IBlockState state, BlockRenderLayer layer)
{
return canRenderInLayer(layer);
}
protected static ThreadLocal<Boolean> captureDrops = new ThreadLocal<Boolean>()
{
@Override protected Boolean initialValue() { return false; }
};
protected static ThreadLocal<List<ItemStack>> capturedDrops = new ThreadLocal<List<ItemStack>>()
{
@Override protected List<ItemStack> initialValue() { return new java.util.ArrayList<ItemStack>(); }
};
protected List<ItemStack> captureDrops(boolean start)
{
if (start)
{
captureDrops.set(true);
capturedDrops.get().clear();
return null;
}
else
{
captureDrops.set(false);
return capturedDrops.get();
}
}
public void addInformation(ItemStack stack, EntityPlayer player, List<String> tooltip, boolean advanced)
{
}
public SoundType getSoundType(IBlockState state, World world, BlockPos pos, @Nullable Entity entity)
{
return getSoundType();
}
@Nullable
public float[] getBeaconColorMultiplier(IBlockState state, World world, BlockPos pos, BlockPos beaconPos)
{
return null;
}
public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, ItemStack stack)
{
return onBlockPlaced(world, pos, facing, hitX, hitY, hitZ, meta, placer);
}
public static void registerBlocks()
{
registerBlock(0, AIR_ID, (new BlockAir()).setUnlocalizedName("air"));
registerBlock(1, "stone", (new BlockStone()).setHardness(1.5F).setResistance(10.0F).setSoundType(SoundType.STONE).setUnlocalizedName("stone"));
registerBlock(2, "grass", (new BlockGrass()).setHardness(0.6F).setSoundType(SoundType.PLANT).setUnlocalizedName("grass"));
registerBlock(3, "dirt", (new BlockDirt()).setHardness(0.5F).setSoundType(SoundType.GROUND).setUnlocalizedName("dirt"));
Block block = (new Block(Material.ROCK)).setHardness(2.0F).setResistance(10.0F).setSoundType(SoundType.STONE).setUnlocalizedName("stonebrick").setCreativeTab(CreativeTabs.BUILDING_BLOCKS);
registerBlock(4, "cobblestone", block);
Block block1 = (new BlockPlanks()).setHardness(2.0F).setResistance(5.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("wood");
registerBlock(5, "planks", block1);
registerBlock(6, "sapling", (new BlockSapling()).setHardness(0.0F).setSoundType(SoundType.PLANT).setUnlocalizedName("sapling"));
registerBlock(7, "bedrock", (new BlockEmptyDrops(Material.ROCK)).setBlockUnbreakable().setResistance(6000000.0F).setSoundType(SoundType.STONE).setUnlocalizedName("bedrock").disableStats().setCreativeTab(CreativeTabs.BUILDING_BLOCKS));
registerBlock(8, "flowing_water", (new BlockDynamicLiquid(Material.WATER)).setHardness(100.0F).setLightOpacity(3).setUnlocalizedName("water").disableStats());
registerBlock(9, "water", (new BlockStaticLiquid(Material.WATER)).setHardness(100.0F).setLightOpacity(3).setUnlocalizedName("water").disableStats());
registerBlock(10, "flowing_lava", (new BlockDynamicLiquid(Material.LAVA)).setHardness(100.0F).setLightLevel(1.0F).setUnlocalizedName("lava").disableStats());
registerBlock(11, "lava", (new BlockStaticLiquid(Material.LAVA)).setHardness(100.0F).setLightLevel(1.0F).setUnlocalizedName("lava").disableStats());
registerBlock(12, "sand", (new BlockSand()).setHardness(0.5F).setSoundType(SoundType.SAND).setUnlocalizedName("sand"));
registerBlock(13, "gravel", (new BlockGravel()).setHardness(0.6F).setSoundType(SoundType.GROUND).setUnlocalizedName("gravel"));
registerBlock(14, "gold_ore", (new BlockOre()).setHardness(3.0F).setResistance(5.0F).setSoundType(SoundType.STONE).setUnlocalizedName("oreGold"));
registerBlock(15, "iron_ore", (new BlockOre()).setHardness(3.0F).setResistance(5.0F).setSoundType(SoundType.STONE).setUnlocalizedName("oreIron"));
registerBlock(16, "coal_ore", (new BlockOre()).setHardness(3.0F).setResistance(5.0F).setSoundType(SoundType.STONE).setUnlocalizedName("oreCoal"));
registerBlock(17, "log", (new BlockOldLog()).setUnlocalizedName("log"));
registerBlock(18, "leaves", (new BlockOldLeaf()).setUnlocalizedName("leaves"));
registerBlock(19, "sponge", (new BlockSponge()).setHardness(0.6F).setSoundType(SoundType.PLANT).setUnlocalizedName("sponge"));
registerBlock(20, "glass", (new BlockGlass(Material.GLASS, false)).setHardness(0.3F).setSoundType(SoundType.GLASS).setUnlocalizedName("glass"));
registerBlock(21, "lapis_ore", (new BlockOre()).setHardness(3.0F).setResistance(5.0F).setSoundType(SoundType.STONE).setUnlocalizedName("oreLapis"));
registerBlock(22, "lapis_block", (new Block(Material.IRON, MapColor.LAPIS)).setHardness(3.0F).setResistance(5.0F).setSoundType(SoundType.STONE).setUnlocalizedName("blockLapis").setCreativeTab(CreativeTabs.BUILDING_BLOCKS));
registerBlock(23, "dispenser", (new BlockDispenser()).setHardness(3.5F).setSoundType(SoundType.STONE).setUnlocalizedName("dispenser"));
Block block2 = (new BlockSandStone()).setSoundType(SoundType.STONE).setHardness(0.8F).setUnlocalizedName("sandStone");
registerBlock(24, "sandstone", block2);
registerBlock(25, "noteblock", (new BlockNote()).setSoundType(SoundType.WOOD).setHardness(0.8F).setUnlocalizedName("musicBlock"));
registerBlock(26, "bed", (new BlockBed()).setSoundType(SoundType.WOOD).setHardness(0.2F).setUnlocalizedName("bed").disableStats());
registerBlock(27, "golden_rail", (new BlockRailPowered()).setHardness(0.7F).setSoundType(SoundType.METAL).setUnlocalizedName("goldenRail"));
registerBlock(28, "detector_rail", (new BlockRailDetector()).setHardness(0.7F).setSoundType(SoundType.METAL).setUnlocalizedName("detectorRail"));
registerBlock(29, "sticky_piston", (new BlockPistonBase(true)).setUnlocalizedName("pistonStickyBase"));
registerBlock(30, "web", (new BlockWeb()).setLightOpacity(1).setHardness(4.0F).setUnlocalizedName("web"));
registerBlock(31, "tallgrass", (new BlockTallGrass()).setHardness(0.0F).setSoundType(SoundType.PLANT).setUnlocalizedName("tallgrass"));
registerBlock(32, "deadbush", (new BlockDeadBush()).setHardness(0.0F).setSoundType(SoundType.PLANT).setUnlocalizedName("deadbush"));
registerBlock(33, "piston", (new BlockPistonBase(false)).setUnlocalizedName("pistonBase"));
registerBlock(34, "piston_head", (new BlockPistonExtension()).setUnlocalizedName("pistonBase"));
registerBlock(35, "wool", (new BlockColored(Material.CLOTH)).setHardness(0.8F).setSoundType(SoundType.CLOTH).setUnlocalizedName("cloth"));
registerBlock(36, "piston_extension", new BlockPistonMoving());
registerBlock(37, "yellow_flower", (new BlockYellowFlower()).setHardness(0.0F).setSoundType(SoundType.PLANT).setUnlocalizedName("flower1"));
registerBlock(38, "red_flower", (new BlockRedFlower()).setHardness(0.0F).setSoundType(SoundType.PLANT).setUnlocalizedName("flower2"));
Block block3 = (new BlockMushroom()).setHardness(0.0F).setSoundType(SoundType.PLANT).setLightLevel(0.125F).setUnlocalizedName("mushroom");
registerBlock(39, "brown_mushroom", block3);
Block block4 = (new BlockMushroom()).setHardness(0.0F).setSoundType(SoundType.PLANT).setUnlocalizedName("mushroom");
registerBlock(40, "red_mushroom", block4);
registerBlock(41, "gold_block", (new Block(Material.IRON, MapColor.GOLD)).setHardness(3.0F).setResistance(10.0F).setSoundType(SoundType.METAL).setUnlocalizedName("blockGold").setCreativeTab(CreativeTabs.BUILDING_BLOCKS));
registerBlock(42, "iron_block", (new Block(Material.IRON, MapColor.IRON)).setHardness(5.0F).setResistance(10.0F).setSoundType(SoundType.METAL).setUnlocalizedName("blockIron").setCreativeTab(CreativeTabs.BUILDING_BLOCKS));
registerBlock(43, "double_stone_slab", (new BlockDoubleStoneSlab()).setHardness(2.0F).setResistance(10.0F).setSoundType(SoundType.STONE).setUnlocalizedName("stoneSlab"));
registerBlock(44, "stone_slab", (new BlockHalfStoneSlab()).setHardness(2.0F).setResistance(10.0F).setSoundType(SoundType.STONE).setUnlocalizedName("stoneSlab"));
Block block5 = (new Block(Material.ROCK, MapColor.RED)).setHardness(2.0F).setResistance(10.0F).setSoundType(SoundType.STONE).setUnlocalizedName("brick").setCreativeTab(CreativeTabs.BUILDING_BLOCKS);
registerBlock(45, "brick_block", block5);
registerBlock(46, "tnt", (new BlockTNT()).setHardness(0.0F).setSoundType(SoundType.PLANT).setUnlocalizedName("tnt"));
registerBlock(47, "bookshelf", (new BlockBookshelf()).setHardness(1.5F).setSoundType(SoundType.WOOD).setUnlocalizedName("bookshelf"));
registerBlock(48, "mossy_cobblestone", (new Block(Material.ROCK)).setHardness(2.0F).setResistance(10.0F).setSoundType(SoundType.STONE).setUnlocalizedName("stoneMoss").setCreativeTab(CreativeTabs.BUILDING_BLOCKS));
registerBlock(49, "obsidian", (new BlockObsidian()).setHardness(50.0F).setResistance(2000.0F).setSoundType(SoundType.STONE).setUnlocalizedName("obsidian"));
registerBlock(50, "torch", (new BlockTorch()).setHardness(0.0F).setLightLevel(0.9375F).setSoundType(SoundType.WOOD).setUnlocalizedName("torch"));
registerBlock(51, "fire", (new BlockFire()).setHardness(0.0F).setLightLevel(1.0F).setSoundType(SoundType.CLOTH).setUnlocalizedName("fire").disableStats());
registerBlock(52, "mob_spawner", (new BlockMobSpawner()).setHardness(5.0F).setSoundType(SoundType.METAL).setUnlocalizedName("mobSpawner").disableStats());
registerBlock(53, "oak_stairs", (new BlockStairs(block1.getDefaultState().withProperty(BlockPlanks.VARIANT, BlockPlanks.EnumType.OAK))).setUnlocalizedName("stairsWood"));
registerBlock(54, "chest", (new BlockChest(BlockChest.Type.BASIC)).setHardness(2.5F).setSoundType(SoundType.WOOD).setUnlocalizedName("chest"));
registerBlock(55, "redstone_wire", (new BlockRedstoneWire()).setHardness(0.0F).setSoundType(SoundType.STONE).setUnlocalizedName("redstoneDust").disableStats());
registerBlock(56, "diamond_ore", (new BlockOre()).setHardness(3.0F).setResistance(5.0F).setSoundType(SoundType.STONE).setUnlocalizedName("oreDiamond"));
registerBlock(57, "diamond_block", (new Block(Material.IRON, MapColor.DIAMOND)).setHardness(5.0F).setResistance(10.0F).setSoundType(SoundType.METAL).setUnlocalizedName("blockDiamond").setCreativeTab(CreativeTabs.BUILDING_BLOCKS));
registerBlock(58, "crafting_table", (new BlockWorkbench()).setHardness(2.5F).setSoundType(SoundType.WOOD).setUnlocalizedName("workbench"));
registerBlock(59, "wheat", (new BlockCrops()).setUnlocalizedName("crops"));
Block block6 = (new BlockFarmland()).setHardness(0.6F).setSoundType(SoundType.GROUND).setUnlocalizedName("farmland");
registerBlock(60, "farmland", block6);
registerBlock(61, "furnace", (new BlockFurnace(false)).setHardness(3.5F).setSoundType(SoundType.STONE).setUnlocalizedName("furnace").setCreativeTab(CreativeTabs.DECORATIONS));
registerBlock(62, "lit_furnace", (new BlockFurnace(true)).setHardness(3.5F).setSoundType(SoundType.STONE).setLightLevel(0.875F).setUnlocalizedName("furnace"));
registerBlock(63, "standing_sign", (new BlockStandingSign()).setHardness(1.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("sign").disableStats());
registerBlock(64, "wooden_door", (new BlockDoor(Material.WOOD)).setHardness(3.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("doorOak").disableStats());
registerBlock(65, "ladder", (new BlockLadder()).setHardness(0.4F).setSoundType(SoundType.LADDER).setUnlocalizedName("ladder"));
registerBlock(66, "rail", (new BlockRail()).setHardness(0.7F).setSoundType(SoundType.METAL).setUnlocalizedName("rail"));
registerBlock(67, "stone_stairs", (new BlockStairs(block.getDefaultState())).setUnlocalizedName("stairsStone"));
registerBlock(68, "wall_sign", (new BlockWallSign()).setHardness(1.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("sign").disableStats());
registerBlock(69, "lever", (new BlockLever()).setHardness(0.5F).setSoundType(SoundType.WOOD).setUnlocalizedName("lever"));
registerBlock(70, "stone_pressure_plate", (new BlockPressurePlate(Material.ROCK, BlockPressurePlate.Sensitivity.MOBS)).setHardness(0.5F).setSoundType(SoundType.STONE).setUnlocalizedName("pressurePlateStone"));
registerBlock(71, "iron_door", (new BlockDoor(Material.IRON)).setHardness(5.0F).setSoundType(SoundType.METAL).setUnlocalizedName("doorIron").disableStats());
registerBlock(72, "wooden_pressure_plate", (new BlockPressurePlate(Material.WOOD, BlockPressurePlate.Sensitivity.EVERYTHING)).setHardness(0.5F).setSoundType(SoundType.WOOD).setUnlocalizedName("pressurePlateWood"));
registerBlock(73, "redstone_ore", (new BlockRedstoneOre(false)).setHardness(3.0F).setResistance(5.0F).setSoundType(SoundType.STONE).setUnlocalizedName("oreRedstone").setCreativeTab(CreativeTabs.BUILDING_BLOCKS));
registerBlock(74, "lit_redstone_ore", (new BlockRedstoneOre(true)).setLightLevel(0.625F).setHardness(3.0F).setResistance(5.0F).setSoundType(SoundType.STONE).setUnlocalizedName("oreRedstone"));
registerBlock(75, "unlit_redstone_torch", (new BlockRedstoneTorch(false)).setHardness(0.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("notGate"));
registerBlock(76, "redstone_torch", (new BlockRedstoneTorch(true)).setHardness(0.0F).setLightLevel(0.5F).setSoundType(SoundType.WOOD).setUnlocalizedName("notGate").setCreativeTab(CreativeTabs.REDSTONE));
registerBlock(77, "stone_button", (new BlockButtonStone()).setHardness(0.5F).setSoundType(SoundType.STONE).setUnlocalizedName("button"));
registerBlock(78, "snow_layer", (new BlockSnow()).setHardness(0.1F).setSoundType(SoundType.SNOW).setUnlocalizedName("snow").setLightOpacity(0));
registerBlock(79, "ice", (new BlockIce()).setHardness(0.5F).setLightOpacity(3).setSoundType(SoundType.GLASS).setUnlocalizedName("ice"));
registerBlock(80, "snow", (new BlockSnowBlock()).setHardness(0.2F).setSoundType(SoundType.SNOW).setUnlocalizedName("snow"));
registerBlock(81, "cactus", (new BlockCactus()).setHardness(0.4F).setSoundType(SoundType.CLOTH).setUnlocalizedName("cactus"));
registerBlock(82, "clay", (new BlockClay()).setHardness(0.6F).setSoundType(SoundType.GROUND).setUnlocalizedName("clay"));
registerBlock(83, "reeds", (new BlockReed()).setHardness(0.0F).setSoundType(SoundType.PLANT).setUnlocalizedName("reeds").disableStats());
registerBlock(84, "jukebox", (new BlockJukebox()).setHardness(2.0F).setResistance(10.0F).setSoundType(SoundType.STONE).setUnlocalizedName("jukebox"));
registerBlock(85, "fence", (new BlockFence(Material.WOOD, BlockPlanks.EnumType.OAK.getMapColor())).setHardness(2.0F).setResistance(5.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("fence"));
Block block7 = (new BlockPumpkin()).setHardness(1.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("pumpkin");
registerBlock(86, "pumpkin", block7);
registerBlock(87, "netherrack", (new BlockNetherrack()).setHardness(0.4F).setSoundType(SoundType.STONE).setUnlocalizedName("hellrock"));
registerBlock(88, "soul_sand", (new BlockSoulSand()).setHardness(0.5F).setSoundType(SoundType.SAND).setUnlocalizedName("hellsand"));
registerBlock(89, "glowstone", (new BlockGlowstone(Material.GLASS)).setHardness(0.3F).setSoundType(SoundType.GLASS).setLightLevel(1.0F).setUnlocalizedName("lightgem"));
registerBlock(90, "portal", (new BlockPortal()).setHardness(-1.0F).setSoundType(SoundType.GLASS).setLightLevel(0.75F).setUnlocalizedName("portal"));
registerBlock(91, "lit_pumpkin", (new BlockPumpkin()).setHardness(1.0F).setSoundType(SoundType.WOOD).setLightLevel(1.0F).setUnlocalizedName("litpumpkin"));
registerBlock(92, "cake", (new BlockCake()).setHardness(0.5F).setSoundType(SoundType.CLOTH).setUnlocalizedName("cake").disableStats());
registerBlock(93, "unpowered_repeater", (new BlockRedstoneRepeater(false)).setHardness(0.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("diode").disableStats());
registerBlock(94, "powered_repeater", (new BlockRedstoneRepeater(true)).setHardness(0.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("diode").disableStats());
registerBlock(95, "stained_glass", (new BlockStainedGlass(Material.GLASS)).setHardness(0.3F).setSoundType(SoundType.GLASS).setUnlocalizedName("stainedGlass"));
registerBlock(96, "trapdoor", (new BlockTrapDoor(Material.WOOD)).setHardness(3.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("trapdoor").disableStats());
registerBlock(97, "monster_egg", (new BlockSilverfish()).setHardness(0.75F).setUnlocalizedName("monsterStoneEgg"));
Block block8 = (new BlockStoneBrick()).setHardness(1.5F).setResistance(10.0F).setSoundType(SoundType.STONE).setUnlocalizedName("stonebricksmooth");
registerBlock(98, "stonebrick", block8);
registerBlock(99, "brown_mushroom_block", (new BlockHugeMushroom(Material.WOOD, MapColor.DIRT, block3)).setHardness(0.2F).setSoundType(SoundType.WOOD).setUnlocalizedName("mushroom"));
registerBlock(100, "red_mushroom_block", (new BlockHugeMushroom(Material.WOOD, MapColor.RED, block4)).setHardness(0.2F).setSoundType(SoundType.WOOD).setUnlocalizedName("mushroom"));
registerBlock(101, "iron_bars", (new BlockPane(Material.IRON, true)).setHardness(5.0F).setResistance(10.0F).setSoundType(SoundType.METAL).setUnlocalizedName("fenceIron"));
registerBlock(102, "glass_pane", (new BlockPane(Material.GLASS, false)).setHardness(0.3F).setSoundType(SoundType.GLASS).setUnlocalizedName("thinGlass"));
Block block9 = (new BlockMelon()).setHardness(1.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("melon");
registerBlock(103, "melon_block", block9);
registerBlock(104, "pumpkin_stem", (new BlockStem(block7)).setHardness(0.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("pumpkinStem"));
registerBlock(105, "melon_stem", (new BlockStem(block9)).setHardness(0.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("pumpkinStem"));
registerBlock(106, "vine", (new BlockVine()).setHardness(0.2F).setSoundType(SoundType.PLANT).setUnlocalizedName("vine"));
registerBlock(107, "fence_gate", (new BlockFenceGate(BlockPlanks.EnumType.OAK)).setHardness(2.0F).setResistance(5.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("fenceGate"));
registerBlock(108, "brick_stairs", (new BlockStairs(block5.getDefaultState())).setUnlocalizedName("stairsBrick"));
registerBlock(109, "stone_brick_stairs", (new BlockStairs(block8.getDefaultState().withProperty(BlockStoneBrick.VARIANT, BlockStoneBrick.EnumType.DEFAULT))).setUnlocalizedName("stairsStoneBrickSmooth"));
registerBlock(110, "mycelium", (new BlockMycelium()).setHardness(0.6F).setSoundType(SoundType.PLANT).setUnlocalizedName("mycel"));
registerBlock(111, "waterlily", (new BlockLilyPad()).setHardness(0.0F).setSoundType(SoundType.PLANT).setUnlocalizedName("waterlily"));
Block block10 = (new BlockNetherBrick()).setHardness(2.0F).setResistance(10.0F).setSoundType(SoundType.STONE).setUnlocalizedName("netherBrick").setCreativeTab(CreativeTabs.BUILDING_BLOCKS);
registerBlock(112, "nether_brick", block10);
registerBlock(113, "nether_brick_fence", (new BlockFence(Material.ROCK, MapColor.NETHERRACK)).setHardness(2.0F).setResistance(10.0F).setSoundType(SoundType.STONE).setUnlocalizedName("netherFence"));
registerBlock(114, "nether_brick_stairs", (new BlockStairs(block10.getDefaultState())).setUnlocalizedName("stairsNetherBrick"));
registerBlock(115, "nether_wart", (new BlockNetherWart()).setUnlocalizedName("netherStalk"));
registerBlock(116, "enchanting_table", (new BlockEnchantmentTable()).setHardness(5.0F).setResistance(2000.0F).setUnlocalizedName("enchantmentTable"));
registerBlock(117, "brewing_stand", (new BlockBrewingStand()).setHardness(0.5F).setLightLevel(0.125F).setUnlocalizedName("brewingStand"));
registerBlock(118, "cauldron", (new BlockCauldron()).setHardness(2.0F).setUnlocalizedName("cauldron"));
registerBlock(119, "end_portal", (new BlockEndPortal(Material.PORTAL)).setHardness(-1.0F).setResistance(6000000.0F));
registerBlock(120, "end_portal_frame", (new BlockEndPortalFrame()).setSoundType(SoundType.GLASS).setLightLevel(0.125F).setHardness(-1.0F).setUnlocalizedName("endPortalFrame").setResistance(6000000.0F).setCreativeTab(CreativeTabs.DECORATIONS));
registerBlock(121, "end_stone", (new Block(Material.ROCK, MapColor.SAND)).setHardness(3.0F).setResistance(15.0F).setSoundType(SoundType.STONE).setUnlocalizedName("whiteStone").setCreativeTab(CreativeTabs.BUILDING_BLOCKS));
registerBlock(122, "dragon_egg", (new BlockDragonEgg()).setHardness(3.0F).setResistance(15.0F).setSoundType(SoundType.STONE).setLightLevel(0.125F).setUnlocalizedName("dragonEgg"));
registerBlock(123, "redstone_lamp", (new BlockRedstoneLight(false)).setHardness(0.3F).setSoundType(SoundType.GLASS).setUnlocalizedName("redstoneLight").setCreativeTab(CreativeTabs.REDSTONE));
registerBlock(124, "lit_redstone_lamp", (new BlockRedstoneLight(true)).setHardness(0.3F).setSoundType(SoundType.GLASS).setUnlocalizedName("redstoneLight"));
registerBlock(125, "double_wooden_slab", (new BlockDoubleWoodSlab()).setHardness(2.0F).setResistance(5.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("woodSlab"));
registerBlock(126, "wooden_slab", (new BlockHalfWoodSlab()).setHardness(2.0F).setResistance(5.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("woodSlab"));
registerBlock(127, "cocoa", (new BlockCocoa()).setHardness(0.2F).setResistance(5.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("cocoa"));
registerBlock(128, "sandstone_stairs", (new BlockStairs(block2.getDefaultState().withProperty(BlockSandStone.TYPE, BlockSandStone.EnumType.SMOOTH))).setUnlocalizedName("stairsSandStone"));
registerBlock(129, "emerald_ore", (new BlockOre()).setHardness(3.0F).setResistance(5.0F).setSoundType(SoundType.STONE).setUnlocalizedName("oreEmerald"));
registerBlock(130, "ender_chest", (new BlockEnderChest()).setHardness(22.5F).setResistance(1000.0F).setSoundType(SoundType.STONE).setUnlocalizedName("enderChest").setLightLevel(0.5F));
registerBlock(131, "tripwire_hook", (new BlockTripWireHook()).setUnlocalizedName("tripWireSource"));
registerBlock(132, "tripwire", (new BlockTripWire()).setUnlocalizedName("tripWire"));
registerBlock(133, "emerald_block", (new Block(Material.IRON, MapColor.EMERALD)).setHardness(5.0F).setResistance(10.0F).setSoundType(SoundType.METAL).setUnlocalizedName("blockEmerald").setCreativeTab(CreativeTabs.BUILDING_BLOCKS));
registerBlock(134, "spruce_stairs", (new BlockStairs(block1.getDefaultState().withProperty(BlockPlanks.VARIANT, BlockPlanks.EnumType.SPRUCE))).setUnlocalizedName("stairsWoodSpruce"));
registerBlock(135, "birch_stairs", (new BlockStairs(block1.getDefaultState().withProperty(BlockPlanks.VARIANT, BlockPlanks.EnumType.BIRCH))).setUnlocalizedName("stairsWoodBirch"));
registerBlock(136, "jungle_stairs", (new BlockStairs(block1.getDefaultState().withProperty(BlockPlanks.VARIANT, BlockPlanks.EnumType.JUNGLE))).setUnlocalizedName("stairsWoodJungle"));
registerBlock(137, "command_block", (new BlockCommandBlock(MapColor.BROWN)).setBlockUnbreakable().setResistance(6000000.0F).setUnlocalizedName("commandBlock"));
registerBlock(138, "beacon", (new BlockBeacon()).setUnlocalizedName("beacon").setLightLevel(1.0F));
registerBlock(139, "cobblestone_wall", (new BlockWall(block)).setUnlocalizedName("cobbleWall"));
registerBlock(140, "flower_pot", (new BlockFlowerPot()).setHardness(0.0F).setSoundType(SoundType.STONE).setUnlocalizedName("flowerPot"));
registerBlock(141, "carrots", (new BlockCarrot()).setUnlocalizedName("carrots"));
registerBlock(142, "potatoes", (new BlockPotato()).setUnlocalizedName("potatoes"));
registerBlock(143, "wooden_button", (new BlockButtonWood()).setHardness(0.5F).setSoundType(SoundType.WOOD).setUnlocalizedName("button"));
registerBlock(144, "skull", (new BlockSkull()).setHardness(1.0F).setSoundType(SoundType.STONE).setUnlocalizedName("skull"));
registerBlock(145, "anvil", (new BlockAnvil()).setHardness(5.0F).setSoundType(SoundType.ANVIL).setResistance(2000.0F).setUnlocalizedName("anvil"));
registerBlock(146, "trapped_chest", (new BlockChest(BlockChest.Type.TRAP)).setHardness(2.5F).setSoundType(SoundType.WOOD).setUnlocalizedName("chestTrap"));
registerBlock(147, "light_weighted_pressure_plate", (new BlockPressurePlateWeighted(Material.IRON, 15, MapColor.GOLD)).setHardness(0.5F).setSoundType(SoundType.WOOD).setUnlocalizedName("weightedPlate_light"));
registerBlock(148, "heavy_weighted_pressure_plate", (new BlockPressurePlateWeighted(Material.IRON, 150)).setHardness(0.5F).setSoundType(SoundType.WOOD).setUnlocalizedName("weightedPlate_heavy"));
registerBlock(149, "unpowered_comparator", (new BlockRedstoneComparator(false)).setHardness(0.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("comparator").disableStats());
registerBlock(150, "powered_comparator", (new BlockRedstoneComparator(true)).setHardness(0.0F).setLightLevel(0.625F).setSoundType(SoundType.WOOD).setUnlocalizedName("comparator").disableStats());
registerBlock(151, "daylight_detector", new BlockDaylightDetector(false));
registerBlock(152, "redstone_block", (new BlockCompressedPowered(Material.IRON, MapColor.TNT)).setHardness(5.0F).setResistance(10.0F).setSoundType(SoundType.METAL).setUnlocalizedName("blockRedstone").setCreativeTab(CreativeTabs.REDSTONE));
registerBlock(153, "quartz_ore", (new BlockOre(MapColor.NETHERRACK)).setHardness(3.0F).setResistance(5.0F).setSoundType(SoundType.STONE).setUnlocalizedName("netherquartz"));
registerBlock(154, "hopper", (new BlockHopper()).setHardness(3.0F).setResistance(8.0F).setSoundType(SoundType.METAL).setUnlocalizedName("hopper"));
Block block11 = (new BlockQuartz()).setSoundType(SoundType.STONE).setHardness(0.8F).setUnlocalizedName("quartzBlock");
registerBlock(155, "quartz_block", block11);
registerBlock(156, "quartz_stairs", (new BlockStairs(block11.getDefaultState().withProperty(BlockQuartz.VARIANT, BlockQuartz.EnumType.DEFAULT))).setUnlocalizedName("stairsQuartz"));
registerBlock(157, "activator_rail", (new BlockRailPowered()).setHardness(0.7F).setSoundType(SoundType.METAL).setUnlocalizedName("activatorRail"));
registerBlock(158, "dropper", (new BlockDropper()).setHardness(3.5F).setSoundType(SoundType.STONE).setUnlocalizedName("dropper"));
registerBlock(159, "stained_hardened_clay", (new BlockColored(Material.ROCK)).setHardness(1.25F).setResistance(7.0F).setSoundType(SoundType.STONE).setUnlocalizedName("clayHardenedStained"));
registerBlock(160, "stained_glass_pane", (new BlockStainedGlassPane()).setHardness(0.3F).setSoundType(SoundType.GLASS).setUnlocalizedName("thinStainedGlass"));
registerBlock(161, "leaves2", (new BlockNewLeaf()).setUnlocalizedName("leaves"));
registerBlock(162, "log2", (new BlockNewLog()).setUnlocalizedName("log"));
registerBlock(163, "acacia_stairs", (new BlockStairs(block1.getDefaultState().withProperty(BlockPlanks.VARIANT, BlockPlanks.EnumType.ACACIA))).setUnlocalizedName("stairsWoodAcacia"));
registerBlock(164, "dark_oak_stairs", (new BlockStairs(block1.getDefaultState().withProperty(BlockPlanks.VARIANT, BlockPlanks.EnumType.DARK_OAK))).setUnlocalizedName("stairsWoodDarkOak"));
registerBlock(165, "slime", (new BlockSlime()).setUnlocalizedName("slime").setSoundType(SoundType.SLIME));
registerBlock(166, "barrier", (new BlockBarrier()).setUnlocalizedName("barrier"));
registerBlock(167, "iron_trapdoor", (new BlockTrapDoor(Material.IRON)).setHardness(5.0F).setSoundType(SoundType.METAL).setUnlocalizedName("ironTrapdoor").disableStats());
registerBlock(168, "prismarine", (new BlockPrismarine()).setHardness(1.5F).setResistance(10.0F).setSoundType(SoundType.STONE).setUnlocalizedName("prismarine"));
registerBlock(169, "sea_lantern", (new BlockSeaLantern(Material.GLASS)).setHardness(0.3F).setSoundType(SoundType.GLASS).setLightLevel(1.0F).setUnlocalizedName("seaLantern"));
registerBlock(170, "hay_block", (new BlockHay()).setHardness(0.5F).setSoundType(SoundType.PLANT).setUnlocalizedName("hayBlock").setCreativeTab(CreativeTabs.BUILDING_BLOCKS));
registerBlock(171, "carpet", (new BlockCarpet()).setHardness(0.1F).setSoundType(SoundType.CLOTH).setUnlocalizedName("woolCarpet").setLightOpacity(0));
registerBlock(172, "hardened_clay", (new BlockHardenedClay()).setHardness(1.25F).setResistance(7.0F).setSoundType(SoundType.STONE).setUnlocalizedName("clayHardened"));
registerBlock(173, "coal_block", (new Block(Material.ROCK, MapColor.BLACK)).setHardness(5.0F).setResistance(10.0F).setSoundType(SoundType.STONE).setUnlocalizedName("blockCoal").setCreativeTab(CreativeTabs.BUILDING_BLOCKS));
registerBlock(174, "packed_ice", (new BlockPackedIce()).setHardness(0.5F).setSoundType(SoundType.GLASS).setUnlocalizedName("icePacked"));
registerBlock(175, "double_plant", new BlockDoublePlant());
registerBlock(176, "standing_banner", (new BlockBanner.BlockBannerStanding()).setHardness(1.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("banner").disableStats());
registerBlock(177, "wall_banner", (new BlockBanner.BlockBannerHanging()).setHardness(1.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("banner").disableStats());
registerBlock(178, "daylight_detector_inverted", new BlockDaylightDetector(true));
Block block12 = (new BlockRedSandstone()).setSoundType(SoundType.STONE).setHardness(0.8F).setUnlocalizedName("redSandStone");
registerBlock(179, "red_sandstone", block12);
registerBlock(180, "red_sandstone_stairs", (new BlockStairs(block12.getDefaultState().withProperty(BlockRedSandstone.TYPE, BlockRedSandstone.EnumType.SMOOTH))).setUnlocalizedName("stairsRedSandStone"));
registerBlock(181, "double_stone_slab2", (new BlockDoubleStoneSlabNew()).setHardness(2.0F).setResistance(10.0F).setSoundType(SoundType.STONE).setUnlocalizedName("stoneSlab2"));
registerBlock(182, "stone_slab2", (new BlockHalfStoneSlabNew()).setHardness(2.0F).setResistance(10.0F).setSoundType(SoundType.STONE).setUnlocalizedName("stoneSlab2"));
registerBlock(183, "spruce_fence_gate", (new BlockFenceGate(BlockPlanks.EnumType.SPRUCE)).setHardness(2.0F).setResistance(5.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("spruceFenceGate"));
registerBlock(184, "birch_fence_gate", (new BlockFenceGate(BlockPlanks.EnumType.BIRCH)).setHardness(2.0F).setResistance(5.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("birchFenceGate"));
registerBlock(185, "jungle_fence_gate", (new BlockFenceGate(BlockPlanks.EnumType.JUNGLE)).setHardness(2.0F).setResistance(5.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("jungleFenceGate"));
registerBlock(186, "dark_oak_fence_gate", (new BlockFenceGate(BlockPlanks.EnumType.DARK_OAK)).setHardness(2.0F).setResistance(5.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("darkOakFenceGate"));
registerBlock(187, "acacia_fence_gate", (new BlockFenceGate(BlockPlanks.EnumType.ACACIA)).setHardness(2.0F).setResistance(5.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("acaciaFenceGate"));
registerBlock(188, "spruce_fence", (new BlockFence(Material.WOOD, BlockPlanks.EnumType.SPRUCE.getMapColor())).setHardness(2.0F).setResistance(5.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("spruceFence"));
registerBlock(189, "birch_fence", (new BlockFence(Material.WOOD, BlockPlanks.EnumType.BIRCH.getMapColor())).setHardness(2.0F).setResistance(5.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("birchFence"));
registerBlock(190, "jungle_fence", (new BlockFence(Material.WOOD, BlockPlanks.EnumType.JUNGLE.getMapColor())).setHardness(2.0F).setResistance(5.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("jungleFence"));
registerBlock(191, "dark_oak_fence", (new BlockFence(Material.WOOD, BlockPlanks.EnumType.DARK_OAK.getMapColor())).setHardness(2.0F).setResistance(5.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("darkOakFence"));
registerBlock(192, "acacia_fence", (new BlockFence(Material.WOOD, BlockPlanks.EnumType.ACACIA.getMapColor())).setHardness(2.0F).setResistance(5.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("acaciaFence"));
registerBlock(193, "spruce_door", (new BlockDoor(Material.WOOD)).setHardness(3.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("doorSpruce").disableStats());
registerBlock(194, "birch_door", (new BlockDoor(Material.WOOD)).setHardness(3.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("doorBirch").disableStats());
registerBlock(195, "jungle_door", (new BlockDoor(Material.WOOD)).setHardness(3.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("doorJungle").disableStats());
registerBlock(196, "acacia_door", (new BlockDoor(Material.WOOD)).setHardness(3.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("doorAcacia").disableStats());
registerBlock(197, "dark_oak_door", (new BlockDoor(Material.WOOD)).setHardness(3.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("doorDarkOak").disableStats());
registerBlock(198, "end_rod", (new BlockEndRod()).setHardness(0.0F).setLightLevel(0.9375F).setSoundType(SoundType.WOOD).setUnlocalizedName("endRod"));
registerBlock(199, "chorus_plant", (new BlockChorusPlant()).setHardness(0.4F).setSoundType(SoundType.WOOD).setUnlocalizedName("chorusPlant"));
registerBlock(200, "chorus_flower", (new BlockChorusFlower()).setHardness(0.4F).setSoundType(SoundType.WOOD).setUnlocalizedName("chorusFlower"));
Block block13 = (new Block(Material.ROCK)).setHardness(1.5F).setResistance(10.0F).setSoundType(SoundType.STONE).setCreativeTab(CreativeTabs.BUILDING_BLOCKS).setUnlocalizedName("purpurBlock");
registerBlock(201, "purpur_block", block13);
registerBlock(202, "purpur_pillar", (new BlockRotatedPillar(Material.ROCK)).setHardness(1.5F).setResistance(10.0F).setSoundType(SoundType.STONE).setCreativeTab(CreativeTabs.BUILDING_BLOCKS).setUnlocalizedName("purpurPillar"));
registerBlock(203, "purpur_stairs", (new BlockStairs(block13.getDefaultState())).setUnlocalizedName("stairsPurpur"));
registerBlock(204, "purpur_double_slab", (new BlockPurpurSlab.Double()).setHardness(2.0F).setResistance(10.0F).setSoundType(SoundType.STONE).setUnlocalizedName("purpurSlab"));
registerBlock(205, "purpur_slab", (new BlockPurpurSlab.Half()).setHardness(2.0F).setResistance(10.0F).setSoundType(SoundType.STONE).setUnlocalizedName("purpurSlab"));
registerBlock(206, "end_bricks", (new Block(Material.ROCK)).setSoundType(SoundType.STONE).setHardness(0.8F).setCreativeTab(CreativeTabs.BUILDING_BLOCKS).setUnlocalizedName("endBricks"));
registerBlock(207, "beetroots", (new BlockBeetroot()).setUnlocalizedName("beetroots"));
Block block14 = (new BlockGrassPath()).setHardness(0.65F).setSoundType(SoundType.PLANT).setUnlocalizedName("grassPath").disableStats();
registerBlock(208, "grass_path", block14);
registerBlock(209, "end_gateway", (new BlockEndGateway(Material.PORTAL)).setHardness(-1.0F).setResistance(6000000.0F));
registerBlock(210, "repeating_command_block", (new BlockCommandBlock(MapColor.PURPLE)).setBlockUnbreakable().setResistance(6000000.0F).setUnlocalizedName("repeatingCommandBlock"));
registerBlock(211, "chain_command_block", (new BlockCommandBlock(MapColor.GREEN)).setBlockUnbreakable().setResistance(6000000.0F).setUnlocalizedName("chainCommandBlock"));
registerBlock(212, "frosted_ice", (new BlockFrostedIce()).setHardness(0.5F).setLightOpacity(3).setSoundType(SoundType.GLASS).setUnlocalizedName("frostedIce"));
registerBlock(213, "magma", (new BlockMagma()).setHardness(0.5F).setSoundType(SoundType.STONE).setUnlocalizedName("magma"));
registerBlock(214, "nether_wart_block", (new Block(Material.GRASS, MapColor.RED)).setCreativeTab(CreativeTabs.BUILDING_BLOCKS).setHardness(1.0F).setSoundType(SoundType.WOOD).setUnlocalizedName("netherWartBlock"));
registerBlock(215, "red_nether_brick", (new BlockNetherBrick()).setHardness(2.0F).setResistance(10.0F).setSoundType(SoundType.STONE).setUnlocalizedName("redNetherBrick").setCreativeTab(CreativeTabs.BUILDING_BLOCKS));
registerBlock(216, "bone_block", (new BlockBone()).setUnlocalizedName("boneBlock"));
registerBlock(217, "structure_void", (new BlockStructureVoid()).setUnlocalizedName("structureVoid"));
registerBlock(255, "structure_block", (new BlockStructure()).setBlockUnbreakable().setResistance(6000000.0F).setUnlocalizedName("structureBlock"));
REGISTRY.validateKey();
for (Block block15 : REGISTRY)
{
if (block15.blockMaterial == Material.AIR)
{
block15.useNeighborBrightness = false;
}
else
{
boolean flag = false;
boolean flag1 = block15 instanceof BlockStairs;
boolean flag2 = block15 instanceof BlockSlab;
boolean flag3 = block15 == block6 || block15 == block14;
boolean flag4 = block15.translucent;
boolean flag5 = block15.lightOpacity == 0;
if (flag1 || flag2 || flag3 || flag4 || flag5)
{
flag = true;
}
block15.useNeighborBrightness = flag;
}
}
Set<Block> set = Sets.newHashSet(new Block[] {(Block)REGISTRY.getObject(new ResourceLocation("tripwire"))});
for (Block block16 : REGISTRY)
{
if (set.contains(block16))
{
for (int i = 0; i < 15; ++i)
{
int j = REGISTRY.getIDForObject(block16) << 4 | i;
BLOCK_STATE_IDS.put(block16.getStateFromMeta(i), j);
}
}
else
{
}
}
}
private static void registerBlock(int id, ResourceLocation textualID, Block block_)
{
REGISTRY.register(id, textualID, block_);
}
private static void registerBlock(int id, String textualID, Block block_)
{
registerBlock(id, new ResourceLocation(textualID), block_);
}
@SideOnly(Side.CLIENT)
public static enum EnumOffsetType
{
NONE,
XZ,
XYZ;
}
}