// Path: src/main/java/wanion/avaritiaddons/Avaritiaddons.java
// @SuppressWarnings("unused")
// @Mod(modid = MOD_ID, name = MOD_NAME, version = MOD_VERSION, dependencies = DEPENDENCIES)
// public class Avaritiaddons
// {
// 	public static final int
// 			GUI_ID_EXTREME_AUTO_CRAFTER = 0,
// 			GUI_ID_COMPRESSED_CHEST = 1,
// 			GUI_ID_INFINITY_CHEST = 2,
// 			GUI_ID_INFINITY_COMPRESSOR = 3;
// 
// 	public static final CreativeTabs creativeTabs = new CreativeTabs(MOD_ID)
// 	{
// 		@Override
// 		@Nonnull
// 		@SideOnly(Side.CLIENT)
// 		public ItemStack getTabIconItem()
// 		{
// 			return new ItemStack(ItemBlockAvaritiaddonsChest.INSTANCE, 1, 1);
// 		}
// 	};
// 
// 	@Mod.Instance
// 	public static Avaritiaddons instance;
// 	@SidedProxy(clientSide = CLIENT_PROXY, serverSide = SERVER_PROXY)
// 	public static CommonProxy proxy;
// 	public static SimpleNetworkWrapper networkWrapper;
// 	private static Logger logger;
// 
// 	public static Logger getLogger()
// 	{
// 		return logger;
// 	}
// 
// 	@Mod.EventHandler
// 	public void preInit(final FMLPreInitializationEvent event)
// 	{
// 		logger = event.getModLog();
// 		networkWrapper = NetworkRegistry.INSTANCE.newSimpleChannel(MOD_ID);
// 		proxy.preInit();
// 	}
// 
// 	@Mod.EventHandler
// 	public void init(final FMLInitializationEvent event)
// 	{
// 		proxy.init();
// 	}
// 
// 	@Mod.EventHandler
// 	public void postInit(final FMLPostInitializationEvent event)
// 	{
// 		proxy.postInit();
// 	}
// 
// 	@NetworkCheckHandler
// 	public boolean matchModVersions(final Map<String, String> remoteVersions, final Side side)
// 	{
// 		return side == Side.CLIENT ? remoteVersions.containsKey(MOD_ID) : !remoteVersions.containsKey(MOD_ID) || remoteVersions.get(MOD_ID).equals(MOD_VERSION);
// 	}
// }
// 
// Path: src/main/java/wanion/avaritiaddons/Reference.java
// public class Reference
// {
// 	public static final String MOD_ID = "avaritiaddons";
// 	public static final String MOD_NAME = "Avaritiaddons";
// 	public static final String MOD_VERSION = "1.12.2-1.7";
// 	public static final String DEPENDENCIES = "required-after:avaritia;required-after:wanionlib@[1.12.2-2.9,)";
// 	public static final String CLIENT_PROXY = "wanion.avaritiaddons.proxy.ClientProxy";
// 	public static final String SERVER_PROXY = "wanion.avaritiaddons.proxy.CommonProxy";
// 	public static final Random RANDOM = new Random();
// 
// 	private Reference() {}
// }


import morph.avaritia.entity.EntityImmortalItem;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.BlockFurnace;
import net.minecraft.block.BlockHorizontal;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyDirection;
import net.minecraft.block.properties.PropertyInteger;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.*;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.network.internal.FMLNetworkHandler;
import wanion.avaritiaddons.Avaritiaddons;
import wanion.avaritiaddons.Reference;
import wanion.lib.common.WrenchHelper;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.Random;
			final NBTTagCompound stackNBT = itemStack.getTagCompound();
			if (stackNBT != null)
				((TileEntityInfinityCompressor) tileEntity).readCustomNBT(itemStack.getTagCompound());
		}
	}

	@Nonnull
	@Override
	public IBlockState getStateForPlacement(@Nonnull final World worldIn, @Nonnull final BlockPos pos, @Nonnull final EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
	{
		return this.getDefaultState().withProperty(FACING, EnumFacing.getHorizontal(meta & 3));
	}

	@Nonnull
	@Override
	public IBlockState getStateFromMeta(int meta)
	{
		return this.getDefaultState().withProperty(FACING, EnumFacing.getHorizontal(meta & 3));
	}

	@Override
	public int getMetaFromState(IBlockState state)
	{
		return state.getValue(FACING).getHorizontalIndex() & 3;
	}

	@Nonnull
	@Override
	protected BlockStateContainer createBlockState()
	{
// Path: src/main/java/wanion/avaritiaddons/Avaritiaddons.java
// @SuppressWarnings("unused")
// @Mod(modid = MOD_ID, name = MOD_NAME, version = MOD_VERSION, dependencies = DEPENDENCIES)
// public class Avaritiaddons
// {
// 	public static final int
// 			GUI_ID_EXTREME_AUTO_CRAFTER = 0,
// 			GUI_ID_COMPRESSED_CHEST = 1,
// 			GUI_ID_INFINITY_CHEST = 2,
// 			GUI_ID_INFINITY_COMPRESSOR = 3;
// 
// 	public static final CreativeTabs creativeTabs = new CreativeTabs(MOD_ID)
// 	{
// 		@Override
// 		@Nonnull
// 		@SideOnly(Side.CLIENT)
// 		public ItemStack getTabIconItem()
// 		{
// 			return new ItemStack(ItemBlockAvaritiaddonsChest.INSTANCE, 1, 1);
// 		}
// 	};
// 
// 	@Mod.Instance
// 	public static Avaritiaddons instance;
// 	@SidedProxy(clientSide = CLIENT_PROXY, serverSide = SERVER_PROXY)
// 	public static CommonProxy proxy;
// 	public static SimpleNetworkWrapper networkWrapper;
// 	private static Logger logger;
// 
// 	public static Logger getLogger()
// 	{
// 		return logger;
// 	}
// 
// 	@Mod.EventHandler
// 	public void preInit(final FMLPreInitializationEvent event)
// 	{
// 		logger = event.getModLog();
// 		networkWrapper = NetworkRegistry.INSTANCE.newSimpleChannel(MOD_ID);
// 		proxy.preInit();
// 	}
// 
// 	@Mod.EventHandler
// 	public void init(final FMLInitializationEvent event)
// 	{
// 		proxy.init();
// 	}
// 
// 	@Mod.EventHandler
// 	public void postInit(final FMLPostInitializationEvent event)
// 	{
// 		proxy.postInit();
// 	}
// 
// 	@NetworkCheckHandler
// 	public boolean matchModVersions(final Map<String, String> remoteVersions, final Side side)
// 	{
// 		return side == Side.CLIENT ? remoteVersions.containsKey(MOD_ID) : !remoteVersions.containsKey(MOD_ID) || remoteVersions.get(MOD_ID).equals(MOD_VERSION);
// 	}
// }
// 
// Path: src/main/java/wanion/avaritiaddons/Reference.java
// public class Reference
// {
// 	public static final String MOD_ID = "avaritiaddons";
// 	public static final String MOD_NAME = "Avaritiaddons";
// 	public static final String MOD_VERSION = "1.12.2-1.7";
// 	public static final String DEPENDENCIES = "required-after:avaritia;required-after:wanionlib@[1.12.2-2.9,)";
// 	public static final String CLIENT_PROXY = "wanion.avaritiaddons.proxy.ClientProxy";
// 	public static final String SERVER_PROXY = "wanion.avaritiaddons.proxy.CommonProxy";
// 	public static final Random RANDOM = new Random();
// 
// 	private Reference() {}
// }


// Path: src/main/java/wanion/avaritiaddons/block/infinitycompressor/BlockInfinityCompressor.java
import morph.avaritia.entity.EntityImmortalItem;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.BlockFurnace;
import net.minecraft.block.BlockHorizontal;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyDirection;
import net.minecraft.block.properties.PropertyInteger;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.*;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.network.internal.FMLNetworkHandler;
import wanion.avaritiaddons.Avaritiaddons;
import wanion.avaritiaddons.Reference;
import wanion.lib.common.WrenchHelper;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.Random;

			final NBTTagCompound stackNBT = itemStack.getTagCompound();
			if (stackNBT != null)
				((TileEntityInfinityCompressor) tileEntity).readCustomNBT(itemStack.getTagCompound());
		}
	}

	@Nonnull
	@Override
	public IBlockState getStateForPlacement(@Nonnull final World worldIn, @Nonnull final BlockPos pos, @Nonnull final EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
	{
		return this.getDefaultState().withProperty(FACING, EnumFacing.getHorizontal(meta & 3));
	}

	@Nonnull
	@Override
	public IBlockState getStateFromMeta(int meta)
	{
		return this.getDefaultState().withProperty(FACING, EnumFacing.getHorizontal(meta & 3));
	}

	@Override
	public int getMetaFromState(IBlockState state)
	{
		return state.getValue(FACING).getHorizontalIndex() & 3;
	}

	@Nonnull
	@Override
	protected BlockStateContainer createBlockState()
	{
		return new BlockStateContainer(this, FACING);