content: package net.minecraft.block;
  
  import net.minecraft.block.material.MapColor;
  import net.minecraft.block.material.Material;
  import net.minecraft.block.properties.IProperty;
  import net.minecraft.block.properties.PropertyEnum;
  import net.minecraft.block.state.BlockState;
  import net.minecraft.block.state.IBlockState;
  import net.minecraft.creativetab.CreativeTabs;
  import net.minecraft.item.EnumDyeColor;
  import net.minecraft.item.Item;
  import net.minecraft.item.ItemStack;
  import net.minecraft.util.BlockPos;
  import net.minecraft.util.EnumWorldBlockLayer;
  import net.minecraft.world.World;
  
  import java.util.List;
  
  public class BlockStainedGlassPane extends BlockPane {
      public static final PropertyEnum<EnumDyeColor> COLOR = PropertyEnum.create("color", EnumDyeColor.class);
  
      public BlockStainedGlassPane() {
          super(Material.glass, false);
          this.setDefaultState(this.blockState.getBaseState().withProperty(NORTH, false).withProperty(EAST, false).withProperty(SOUTH, false).withProperty(WEST, false).withProperty(COLOR, EnumDyeColor.WHITE));
          this.setCreativeTab(CreativeTabs.tabDecorations);
      }
  
      public int damageDropped(IBlockState state) {
          return state.getValue(COLOR).getMetadata();
      }
  
      public void getSubBlocks(Item itemIn, CreativeTabs tab, List<ItemStack> list) {
          for (int i = 0; i < EnumDyeColor.values().length; ++i) {
              list.add(new ItemStack(itemIn, 1, i));
          }
      }
  
      public MapColor getMapColor(IBlockState state) {
          return state.getValue(COLOR).getMapColor();
      }
  
      public EnumWorldBlockLayer getBlockLayer() {
          return EnumWorldBlockLayer.TRANSLUCENT;
      }
  
      public IBlockState getStateFromMeta(int meta) {
          return this.getDefaultState().withProperty(COLOR, EnumDyeColor.byMetadata(meta));
      }
  
      public int getMetaFromState(IBlockState state) {
          return state.getValue(COLOR).getMetadata();
      }
  
      protected BlockState createBlockState() {
          return new BlockState(this, NORTH, EAST, WEST, SOUTH, COLOR);
      }
  
      public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) {
          if (!worldIn.isRemote) {
              BlockBeacon.updateColorAsync(worldIn, pos);
          }
      }
  
      public void breakBlock(World worldIn, BlockPos pos, IBlockState state) {
          if (!worldIn.isRemote) {
              BlockBeacon.updateColorAsync(worldIn, pos);
          }
      }
  }
  