// Path: src/main/java/com/github/atomicblom/shearmadness/block/InvisibleBookshelfBlock.java
// public class InvisibleBookshelfBlock extends InvisibleBlock
// {
// 
//     @Override
//     public float getEnchantPowerBonus(World world, BlockPos pos) {
//         return 1;
//     }
// }
// 
// Path: src/main/java/com/github/atomicblom/shearmadness/block/InvisibleGlowstoneBlock.java
// public class InvisibleGlowstoneBlock extends InvisibleBlock
// {
// 
//     @Override
//     public int getLightValue(IBlockState state, IBlockAccess world, BlockPos pos)
//     {
//         return 15;
//     }
// }
// 
// Path: src/main/java/com/github/atomicblom/shearmadness/block/InvisibleRedstoneBlock.java
// public class InvisibleRedstoneBlock extends InvisibleBlock
// {
// 
//     @Override
//     @Deprecated
//     public boolean canProvidePower(IBlockState state)
//     {
//         return true;
//     }
// 
//     @Override
//     @Deprecated
//     public int getWeakPower(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side)
//     {
//         return 15;
//     }
// }
// 
// Path: src/main/java/com/github/atomicblom/shearmadness/utility/Localization.java
// public final class Localization {
//     private Localization() {}
// 
//     /**
//      * creates an unlocalized name for a block.
//      *
//      * There is no specific reason I use block.getRegistryName as the unlocalized names are not
//      * at all related to localization. This is merely a convenience, but you could have a lookup
//      * or even use the name of your block class.
//      *
//      * In practice, is should be in this format though:
//      * tile.{ModID}:{uniqueLocalizationId}
//      *
//      * Minecraft will automatically append .name to it.
//      *
//      * @param block The block to create a localization name for
//      * @return the localization key.
//      */
//     public static String getUnlocalizedNameFor(Block block) {
//         final ResourceLocation registryName = block.getRegistryName();
//         if (registryName == null) {
//             throw new RuntimeException("Attempt to get the registry name of a block that doesn't have one yet.");
//         }
//         return registryName.toString();
//     }
// }
// 
// Path: src/main/java/com/github/atomicblom/shearmadness/utility/Reference.java
// public final class Reference
// {
//     public static final CreativeTabs CreativeTab = CreativeTabs.BUILDING_BLOCKS;
//     public static final String MOD_GUI_FACTORY = "com.github.atomicblom.shearmadness.configuration.client.ModGuiFactory";
//     public static final String BEHAVIOUR_COMMENT = "Sets the behaviour when a sheep is sheared\n" +
//             "* RevertSheep - will change the sheep back to a normal sheep (default).\n" +
//             "* ChiselFarm  - will allow the sheep to produce chiseled blocks (warning, this currently allows duping ores).\n" +
//             "* CannotShear - You cannot shear the sheep while chiseled.\n";
//     public static final String ALLOW_REDSTONE_COMMENT = "Chiseled redstone sheep will trigger Redstone circuits.";
//     public static final String ALLOW_BOOKSHELF_COMMENT = "Chiseled bookshelf sheep will affect enchanting tables.";
//     public static final String ALLOW_GLOWSTONE_COMMENT = "Chiseled glowstone sheep will light up the area around them.\n" +
//             "WARNING: testing shows this creates a lot of chunk recalculation. I do not recommend this option.";
//     public static final String ALLOW_CACTUS_COMMENT = "Chiseled Cactus sheep will deal damage players and destroy items.";
//     public static final String ALLOW_TNT_COMMENT = "Chiseled TNT Sheep will be explode if exposed to active redstone.";
//     public static final String ALLOW_FIRE_DAMAGE_COMMENT = "Chiseled Magma sheep will deal fire damage when touched.";
//     public static final String DEBUG_MODELS = "Models will be regenerated every frame drawn.";
//     public static final String DEBUG_INVISIBLE_BLOCKS = "Invisible Blocks will be shown in-game.";
//     public static final String ALLOW_AUTO_CRAFTING = "Crafting Table sheep will use their recipe to consume and produce items.";
// 
//     private Reference() {}
// 
//     public static final class Blocks {
//         public static final String NORMAL_VARIANT = "normal";
// 
//         public static final ResourceLocation InvisibleRedstone = new ResourceLocation(CommonReference.MOD_ID, "invisibleRedstone");
//         public static final ResourceLocation InvisibleGlowstone = new ResourceLocation(CommonReference.MOD_ID, "invisibleGlowstone");
//         public static final ResourceLocation InvisibleBookshelf = new ResourceLocation(CommonReference.MOD_ID, "invisibleBookshelf");
// 
//         private Blocks() {}
//     }
// 
// }


import com.github.atomicblom.shearmadness.block.InvisibleBookshelfBlock;
import com.github.atomicblom.shearmadness.block.InvisibleGlowstoneBlock;
import com.github.atomicblom.shearmadness.block.InvisibleRedstoneBlock;
import com.github.atomicblom.shearmadness.utility.Localization;
import com.github.atomicblom.shearmadness.utility.Reference;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.common.registry.GameRegistry;
package com.github.atomicblom.shearmadness.proxy;


@SuppressWarnings({"MethodMayBeStatic", "unused"})
public class CommonBlockProxy
{
    public void registerBlocks() {
        registerBlockAndItem(new InvisibleRedstoneBlock(), Reference.Blocks.InvisibleRedstone);
// Path: src/main/java/com/github/atomicblom/shearmadness/block/InvisibleBookshelfBlock.java
// public class InvisibleBookshelfBlock extends InvisibleBlock
// {
// 
//     @Override
//     public float getEnchantPowerBonus(World world, BlockPos pos) {
//         return 1;
//     }
// }
// 
// Path: src/main/java/com/github/atomicblom/shearmadness/block/InvisibleGlowstoneBlock.java
// public class InvisibleGlowstoneBlock extends InvisibleBlock
// {
// 
//     @Override
//     public int getLightValue(IBlockState state, IBlockAccess world, BlockPos pos)
//     {
//         return 15;
//     }
// }
// 
// Path: src/main/java/com/github/atomicblom/shearmadness/block/InvisibleRedstoneBlock.java
// public class InvisibleRedstoneBlock extends InvisibleBlock
// {
// 
//     @Override
//     @Deprecated
//     public boolean canProvidePower(IBlockState state)
//     {
//         return true;
//     }
// 
//     @Override
//     @Deprecated
//     public int getWeakPower(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side)
//     {
//         return 15;
//     }
// }
// 
// Path: src/main/java/com/github/atomicblom/shearmadness/utility/Localization.java
// public final class Localization {
//     private Localization() {}
// 
//     /**
//      * creates an unlocalized name for a block.
//      *
//      * There is no specific reason I use block.getRegistryName as the unlocalized names are not
//      * at all related to localization. This is merely a convenience, but you could have a lookup
//      * or even use the name of your block class.
//      *
//      * In practice, is should be in this format though:
//      * tile.{ModID}:{uniqueLocalizationId}
//      *
//      * Minecraft will automatically append .name to it.
//      *
//      * @param block The block to create a localization name for
//      * @return the localization key.
//      */
//     public static String getUnlocalizedNameFor(Block block) {
//         final ResourceLocation registryName = block.getRegistryName();
//         if (registryName == null) {
//             throw new RuntimeException("Attempt to get the registry name of a block that doesn't have one yet.");
//         }
//         return registryName.toString();
//     }
// }
// 
// Path: src/main/java/com/github/atomicblom/shearmadness/utility/Reference.java
// public final class Reference
// {
//     public static final CreativeTabs CreativeTab = CreativeTabs.BUILDING_BLOCKS;
//     public static final String MOD_GUI_FACTORY = "com.github.atomicblom.shearmadness.configuration.client.ModGuiFactory";
//     public static final String BEHAVIOUR_COMMENT = "Sets the behaviour when a sheep is sheared\n" +
//             "* RevertSheep - will change the sheep back to a normal sheep (default).\n" +
//             "* ChiselFarm  - will allow the sheep to produce chiseled blocks (warning, this currently allows duping ores).\n" +
//             "* CannotShear - You cannot shear the sheep while chiseled.\n";
//     public static final String ALLOW_REDSTONE_COMMENT = "Chiseled redstone sheep will trigger Redstone circuits.";
//     public static final String ALLOW_BOOKSHELF_COMMENT = "Chiseled bookshelf sheep will affect enchanting tables.";
//     public static final String ALLOW_GLOWSTONE_COMMENT = "Chiseled glowstone sheep will light up the area around them.\n" +
//             "WARNING: testing shows this creates a lot of chunk recalculation. I do not recommend this option.";
//     public static final String ALLOW_CACTUS_COMMENT = "Chiseled Cactus sheep will deal damage players and destroy items.";
//     public static final String ALLOW_TNT_COMMENT = "Chiseled TNT Sheep will be explode if exposed to active redstone.";
//     public static final String ALLOW_FIRE_DAMAGE_COMMENT = "Chiseled Magma sheep will deal fire damage when touched.";
//     public static final String DEBUG_MODELS = "Models will be regenerated every frame drawn.";
//     public static final String DEBUG_INVISIBLE_BLOCKS = "Invisible Blocks will be shown in-game.";
//     public static final String ALLOW_AUTO_CRAFTING = "Crafting Table sheep will use their recipe to consume and produce items.";
// 
//     private Reference() {}
// 
//     public static final class Blocks {
//         public static final String NORMAL_VARIANT = "normal";
// 
//         public static final ResourceLocation InvisibleRedstone = new ResourceLocation(CommonReference.MOD_ID, "invisibleRedstone");
//         public static final ResourceLocation InvisibleGlowstone = new ResourceLocation(CommonReference.MOD_ID, "invisibleGlowstone");
//         public static final ResourceLocation InvisibleBookshelf = new ResourceLocation(CommonReference.MOD_ID, "invisibleBookshelf");
// 
//         private Blocks() {}
//     }
// 
// }


// Path: src/main/java/com/github/atomicblom/shearmadness/proxy/CommonBlockProxy.java
import com.github.atomicblom.shearmadness.block.InvisibleBookshelfBlock;
import com.github.atomicblom.shearmadness.block.InvisibleGlowstoneBlock;
import com.github.atomicblom.shearmadness.block.InvisibleRedstoneBlock;
import com.github.atomicblom.shearmadness.utility.Localization;
import com.github.atomicblom.shearmadness.utility.Reference;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.common.registry.GameRegistry;

package com.github.atomicblom.shearmadness.proxy;


@SuppressWarnings({"MethodMayBeStatic", "unused"})
public class CommonBlockProxy
{
    public void registerBlocks() {
        registerBlockAndItem(new InvisibleRedstoneBlock(), Reference.Blocks.InvisibleRedstone);
        registerBlockAndItem(new InvisibleGlowstoneBlock(), Reference.Blocks.InvisibleGlowstone);