// Path: src/main/java/com/github/atomicblom/shearmadness/configuration/Settings.java
// @SuppressWarnings({"InnerClassFieldHidesOuterClassField", "BooleanMethodNameMustStartWithQuestion"})
// public enum Settings
// {
//     INSTANCE;
// 
//     public static final String CATEGORY = Configuration.CATEGORY_GENERAL;
// 
//     private boolean debugModels = false;
//     private boolean debugInvisibleBlocks = false;
// 
//     public static boolean debugModels()
//     {
//         return INSTANCE.debugModels;
//     }
//     public static boolean debugInvisibleBlocks()
//     {
//         return INSTANCE.debugInvisibleBlocks;
//     }
// 
//     public static void syncConfig(Configuration config)
//     {
//         INSTANCE.debugModels = config.getBoolean("debugModels", CATEGORY, false, Reference.DEBUG_MODELS);
//         INSTANCE.debugInvisibleBlocks = config.getBoolean("debugInvisibleBlocks", CATEGORY, false, Reference.DEBUG_INVISIBLE_BLOCKS);
// 
//         Shearing.syncConfig(config);
//         Behaviours.syncConfig(config);
//     }
// 
//     public enum Shearing
//     {
//         INSTANCE;
// 
//         public static final String CATEGORY = Configuration.CATEGORY_GENERAL + ".shearing";
// 
//         private ShearBehaviour shearBehaviour = ShearBehaviour.RevertSheep;
// 
//         public static ShearBehaviour getBehaviour() { return INSTANCE.shearBehaviour; }
// 
//         private static void syncConfig(Configuration config) {
// 
//             final String[] validNames = new String[ShearBehaviour.values().length];
//             for (int i = 0; i < ShearBehaviour.values().length; i++)
//             {
//                 validNames[i] = ShearBehaviour.values()[i].name();
//             }
// 
//             final String behaviour = config.getString("behaviour", CATEGORY, "RevertSheep", Reference.BEHAVIOUR_COMMENT, validNames);
//             INSTANCE.shearBehaviour = ShearBehaviour.valueOf(behaviour);
//         }
//     }
// 
//     public enum Behaviours
//     {
//         INSTANCE;
// 
//         public static final String CATEGORY = Configuration.CATEGORY_GENERAL + ".behaviours";
// 
//         private boolean allowGlowstone = false;
//         private boolean allowRedstone = true;
//         private boolean allowBookshelf = true;
//         private boolean allowCactus = true;
//         private boolean allowTNT = true;
//         private boolean allowFireDamage = true;
//         private boolean allowAutoCrafting = true;
// 
// 
//         public static boolean allowRedstone() {
//             return INSTANCE.allowRedstone;
//         }
//         public static boolean allowBookshelf() {
//             return INSTANCE.allowBookshelf;
//         }
//         public static boolean allowGlowstone() {
//             return INSTANCE.allowGlowstone;
//         }
//         public static boolean allowCactus() {
//             return INSTANCE.allowCactus;
//         }
//         public static boolean allowTNT() {
//             return INSTANCE.allowTNT;
//         }
//         public static boolean allowFireDamage() {
//             return INSTANCE.allowFireDamage;
//         }
//         public static boolean allowAutoCrafting() { return INSTANCE.allowAutoCrafting; }
// 
// 
//         private static void syncConfig(Configuration config) {
//             INSTANCE.allowRedstone = config.getBoolean("allowRedstone", CATEGORY, true, Reference.ALLOW_REDSTONE_COMMENT);
//             INSTANCE.allowBookshelf = config.getBoolean("allowBookshelf", CATEGORY, true, Reference.ALLOW_BOOKSHELF_COMMENT);
//             INSTANCE.allowGlowstone = config.getBoolean("allowGlowstone", CATEGORY, false, Reference.ALLOW_GLOWSTONE_COMMENT);
//             INSTANCE.allowCactus = config.getBoolean("allowCactus", CATEGORY, true, Reference.ALLOW_CACTUS_COMMENT);
//             INSTANCE.allowTNT = config.getBoolean("allowTNT", CATEGORY, true, Reference.ALLOW_TNT_COMMENT);
//             INSTANCE.allowFireDamage = config.getBoolean("allowFireDamage", CATEGORY, true, Reference.ALLOW_FIRE_DAMAGE_COMMENT);
//             INSTANCE.allowAutoCrafting = config.getBoolean("allowAutoCrafting", CATEGORY, true, Reference.ALLOW_AUTO_CRAFTING);
//         }
//     }
// 
// }


import com.github.atomicblom.shearmadness.configuration.Settings;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
import net.minecraft.util.EnumBlockRenderType;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import javax.annotation.Nullable;
import java.util.List;
    @Nullable
    @Override
    @Deprecated
    public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, World worldIn, BlockPos pos)
    {
        return Block.NULL_AABB;
    }

    @Override
    @Deprecated
    public void addCollisionBoxToList(IBlockState state, World worldIn, BlockPos pos, AxisAlignedBB entityBox, List<AxisAlignedBB> collidingBoxes, @Nullable Entity entityIn)
    {
    }

    @Override
    public boolean isReplaceable(IBlockAccess worldIn, BlockPos pos)
    {
        return true;
    }

    @Override
    public int getLightOpacity(IBlockState state, IBlockAccess world, BlockPos pos)
    {
        return 0;
    }

    @Override
    @Deprecated
    public EnumBlockRenderType getRenderType(IBlockState state)
    {
// Path: src/main/java/com/github/atomicblom/shearmadness/configuration/Settings.java
// @SuppressWarnings({"InnerClassFieldHidesOuterClassField", "BooleanMethodNameMustStartWithQuestion"})
// public enum Settings
// {
//     INSTANCE;
// 
//     public static final String CATEGORY = Configuration.CATEGORY_GENERAL;
// 
//     private boolean debugModels = false;
//     private boolean debugInvisibleBlocks = false;
// 
//     public static boolean debugModels()
//     {
//         return INSTANCE.debugModels;
//     }
//     public static boolean debugInvisibleBlocks()
//     {
//         return INSTANCE.debugInvisibleBlocks;
//     }
// 
//     public static void syncConfig(Configuration config)
//     {
//         INSTANCE.debugModels = config.getBoolean("debugModels", CATEGORY, false, Reference.DEBUG_MODELS);
//         INSTANCE.debugInvisibleBlocks = config.getBoolean("debugInvisibleBlocks", CATEGORY, false, Reference.DEBUG_INVISIBLE_BLOCKS);
// 
//         Shearing.syncConfig(config);
//         Behaviours.syncConfig(config);
//     }
// 
//     public enum Shearing
//     {
//         INSTANCE;
// 
//         public static final String CATEGORY = Configuration.CATEGORY_GENERAL + ".shearing";
// 
//         private ShearBehaviour shearBehaviour = ShearBehaviour.RevertSheep;
// 
//         public static ShearBehaviour getBehaviour() { return INSTANCE.shearBehaviour; }
// 
//         private static void syncConfig(Configuration config) {
// 
//             final String[] validNames = new String[ShearBehaviour.values().length];
//             for (int i = 0; i < ShearBehaviour.values().length; i++)
//             {
//                 validNames[i] = ShearBehaviour.values()[i].name();
//             }
// 
//             final String behaviour = config.getString("behaviour", CATEGORY, "RevertSheep", Reference.BEHAVIOUR_COMMENT, validNames);
//             INSTANCE.shearBehaviour = ShearBehaviour.valueOf(behaviour);
//         }
//     }
// 
//     public enum Behaviours
//     {
//         INSTANCE;
// 
//         public static final String CATEGORY = Configuration.CATEGORY_GENERAL + ".behaviours";
// 
//         private boolean allowGlowstone = false;
//         private boolean allowRedstone = true;
//         private boolean allowBookshelf = true;
//         private boolean allowCactus = true;
//         private boolean allowTNT = true;
//         private boolean allowFireDamage = true;
//         private boolean allowAutoCrafting = true;
// 
// 
//         public static boolean allowRedstone() {
//             return INSTANCE.allowRedstone;
//         }
//         public static boolean allowBookshelf() {
//             return INSTANCE.allowBookshelf;
//         }
//         public static boolean allowGlowstone() {
//             return INSTANCE.allowGlowstone;
//         }
//         public static boolean allowCactus() {
//             return INSTANCE.allowCactus;
//         }
//         public static boolean allowTNT() {
//             return INSTANCE.allowTNT;
//         }
//         public static boolean allowFireDamage() {
//             return INSTANCE.allowFireDamage;
//         }
//         public static boolean allowAutoCrafting() { return INSTANCE.allowAutoCrafting; }
// 
// 
//         private static void syncConfig(Configuration config) {
//             INSTANCE.allowRedstone = config.getBoolean("allowRedstone", CATEGORY, true, Reference.ALLOW_REDSTONE_COMMENT);
//             INSTANCE.allowBookshelf = config.getBoolean("allowBookshelf", CATEGORY, true, Reference.ALLOW_BOOKSHELF_COMMENT);
//             INSTANCE.allowGlowstone = config.getBoolean("allowGlowstone", CATEGORY, false, Reference.ALLOW_GLOWSTONE_COMMENT);
//             INSTANCE.allowCactus = config.getBoolean("allowCactus", CATEGORY, true, Reference.ALLOW_CACTUS_COMMENT);
//             INSTANCE.allowTNT = config.getBoolean("allowTNT", CATEGORY, true, Reference.ALLOW_TNT_COMMENT);
//             INSTANCE.allowFireDamage = config.getBoolean("allowFireDamage", CATEGORY, true, Reference.ALLOW_FIRE_DAMAGE_COMMENT);
//             INSTANCE.allowAutoCrafting = config.getBoolean("allowAutoCrafting", CATEGORY, true, Reference.ALLOW_AUTO_CRAFTING);
//         }
//     }
// 
// }


// Path: src/main/java/com/github/atomicblom/shearmadness/block/InvisibleBlock.java
import com.github.atomicblom.shearmadness.configuration.Settings;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
import net.minecraft.util.EnumBlockRenderType;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import javax.annotation.Nullable;
import java.util.List;

    @Nullable
    @Override
    @Deprecated
    public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, World worldIn, BlockPos pos)
    {
        return Block.NULL_AABB;
    }

    @Override
    @Deprecated
    public void addCollisionBoxToList(IBlockState state, World worldIn, BlockPos pos, AxisAlignedBB entityBox, List<AxisAlignedBB> collidingBoxes, @Nullable Entity entityIn)
    {
    }

    @Override
    public boolean isReplaceable(IBlockAccess worldIn, BlockPos pos)
    {
        return true;
    }

    @Override
    public int getLightOpacity(IBlockState state, IBlockAccess world, BlockPos pos)
    {
        return 0;
    }

    @Override
    @Deprecated
    public EnumBlockRenderType getRenderType(IBlockState state)
    {
        return Settings.debugInvisibleBlocks() ?