// Path: src/main/java/tk/cth451/transitrailmod/enums/EnumArrow.java
// public enum EnumArrow implements IStringSerializable {
// 		ARROW_UP,
// 		ARROW_DOWN,
// 		ARROW_LEFT,
// 		ARROW_RIGHT;
// 		
// 		public String toString() {
// 			return getName();
// 		};
// 		
// 		public int toMeta() {
// 			if (this == ARROW_UP) {
// 				return 0;
// 			} else if (this == ARROW_DOWN) {
// 				return 1;
// 			} else if (this == ARROW_LEFT) {
// 				return 2;
// 			} else {
// 				return 3;
// 			}
// 		}
// 		
// 		public static EnumArrow fromMeta(int metaIn) {
// 			EnumArrow result;
// 			if (metaIn == 0) {
// 				result = ARROW_UP;
// 			} else if (metaIn == 1) {
// 				result = ARROW_DOWN;
// 			} else if (metaIn == 2) {
// 				result = ARROW_LEFT;
// 			} else {
// 				result = ARROW_RIGHT;
// 			}
// 			return result;
// 		}
// 		
// 		@Override
// 		public String getName() {
// 			if (this == ARROW_UP) {
// 				return "arrow_up";
// 			} else if (this == ARROW_DOWN) {
// 				return "arrow_down";
// 			} else if (this == ARROW_LEFT) {
// 				return "arrow_left";
// 			} else {
// 				return "arrow_right";
// 			}
// 		}
// 	}


import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import tk.cth451.transitrailmod.enums.EnumArrow;
package tk.cth451.transitrailmod.blocks.prototype;


public abstract class ArrowSign extends CustomDirectionBlock {
	
	public static final PropertyEnum ARROW = PropertyEnum.create("arrow", EnumArrow.class);
	
	public ArrowSign(Material materialIn) {
		super(Material.IRON);
		this.setLightLevel(1.0F);
		this.setDefaultState(getDefaultState()
				.withProperty(ARROW, EnumArrow.ARROW_UP)
				.withProperty(FACING, EnumFacing.NORTH));
	}
	
	// Block state
	@Override
	protected BlockStateContainer createBlockState() {
		return new BlockStateContainer(this, new IProperty[] {ARROW, FACING});
	}
	
	// meta 1122
	// 11: ARROW
	// 22: FACING
	@Override
	public IBlockState getStateFromMeta(int meta) {
		EnumFacing pFacing = EnumFacing.getHorizontal(meta % 4);
		EnumArrow pArrow = EnumArrow.fromMeta(meta / 4);
// Path: src/main/java/tk/cth451/transitrailmod/enums/EnumArrow.java
// public enum EnumArrow implements IStringSerializable {
// 		ARROW_UP,
// 		ARROW_DOWN,
// 		ARROW_LEFT,
// 		ARROW_RIGHT;
// 		
// 		public String toString() {
// 			return getName();
// 		};
// 		
// 		public int toMeta() {
// 			if (this == ARROW_UP) {
// 				return 0;
// 			} else if (this == ARROW_DOWN) {
// 				return 1;
// 			} else if (this == ARROW_LEFT) {
// 				return 2;
// 			} else {
// 				return 3;
// 			}
// 		}
// 		
// 		public static EnumArrow fromMeta(int metaIn) {
// 			EnumArrow result;
// 			if (metaIn == 0) {
// 				result = ARROW_UP;
// 			} else if (metaIn == 1) {
// 				result = ARROW_DOWN;
// 			} else if (metaIn == 2) {
// 				result = ARROW_LEFT;
// 			} else {
// 				result = ARROW_RIGHT;
// 			}
// 			return result;
// 		}
// 		
// 		@Override
// 		public String getName() {
// 			if (this == ARROW_UP) {
// 				return "arrow_up";
// 			} else if (this == ARROW_DOWN) {
// 				return "arrow_down";
// 			} else if (this == ARROW_LEFT) {
// 				return "arrow_left";
// 			} else {
// 				return "arrow_right";
// 			}
// 		}
// 	}


// Path: src/main/java/tk/cth451/transitrailmod/blocks/prototype/ArrowSign.java
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import tk.cth451.transitrailmod.enums.EnumArrow;

package tk.cth451.transitrailmod.blocks.prototype;


public abstract class ArrowSign extends CustomDirectionBlock {
	
	public static final PropertyEnum ARROW = PropertyEnum.create("arrow", EnumArrow.class);
	
	public ArrowSign(Material materialIn) {
		super(Material.IRON);
		this.setLightLevel(1.0F);
		this.setDefaultState(getDefaultState()
				.withProperty(ARROW, EnumArrow.ARROW_UP)
				.withProperty(FACING, EnumFacing.NORTH));
	}
	
	// Block state
	@Override
	protected BlockStateContainer createBlockState() {
		return new BlockStateContainer(this, new IProperty[] {ARROW, FACING});
	}
	
	// meta 1122
	// 11: ARROW
	// 22: FACING
	@Override
	public IBlockState getStateFromMeta(int meta) {
		EnumFacing pFacing = EnumFacing.getHorizontal(meta % 4);
		EnumArrow pArrow = EnumArrow.fromMeta(meta / 4);
		return this.getDefaultState().withProperty(ARROW, pArrow).withProperty(FACING, pFacing);