// Path: src/main/java/p455w0rdslib/util/EasyMappings.java
// public class EasyMappings {
// 
// 	@SideOnly(Side.CLIENT)
// 	public static Minecraft mc() {
// 		return Minecraft.getMinecraft();
// 	}
// 
// 	@SideOnly(Side.CLIENT)
// 	public static EntityPlayerSP player() {
// 		return mc().player;
// 	}
// 
// 	@SideOnly(Side.CLIENT)
// 	public static World world() {
// 		return mc().world;
// 	}
// 
// 	public static World world(Entity entity) {
// 		return entity.world;
// 	}
// 
// 	public static int slotPosX(Slot slot) {
// 		return slot.xPos;
// 	}
// 
// 	public static int slotPosY(Slot slot) {
// 		return slot.yPos;
// 	}
// 
// 	public static boolean spawn(World world, Entity entity) {
// 		return world.spawnEntity(entity);
// 	}
// 
// 	public static NBTTagCompound readNBT(PacketBuffer buf) {
// 		try {
// 			return buf.readCompoundTag();
// 		}
// 		catch (IOException e) {
// 		}
// 		return null;
// 	}
// 
// 	public static PacketBuffer writeNBT(@Nullable NBTTagCompound nbt, PacketBuffer buf) {
// 		return buf.writeCompoundTag(nbt);
// 	}
// 
// 	public static String[] getNames(MinecraftServer server) {
// 		return server.getOnlinePlayerNames();
// 	}
// 
// 	public static void message(Entity entity, ITextComponent message) {
// 		entity.sendMessage(message);
// 	}
// 
// }


import net.minecraft.entity.Entity;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import p455w0rdslib.util.EasyMappings;
		switch (rotation) {
		case 2:
			z += rotationOffset;
			break;
		case 0:
			z -= rotationOffset;
			break;
		case 3:
			x -= rotationOffset;
			break;
		case 1:
			x += rotationOffset;
			break;
		}
		setPosition(x, y, z);
	}

	@Override
	public double getMountedYOffset() {
		return height * 0.0D;
	}

	@Override
	protected boolean shouldSetPosAfterLoading() {
		return false;
	}

	@Override
	public void onEntityUpdate() {
		if (!EasyMappings.world(this).isRemote) {
// Path: src/main/java/p455w0rdslib/util/EasyMappings.java
// public class EasyMappings {
// 
// 	@SideOnly(Side.CLIENT)
// 	public static Minecraft mc() {
// 		return Minecraft.getMinecraft();
// 	}
// 
// 	@SideOnly(Side.CLIENT)
// 	public static EntityPlayerSP player() {
// 		return mc().player;
// 	}
// 
// 	@SideOnly(Side.CLIENT)
// 	public static World world() {
// 		return mc().world;
// 	}
// 
// 	public static World world(Entity entity) {
// 		return entity.world;
// 	}
// 
// 	public static int slotPosX(Slot slot) {
// 		return slot.xPos;
// 	}
// 
// 	public static int slotPosY(Slot slot) {
// 		return slot.yPos;
// 	}
// 
// 	public static boolean spawn(World world, Entity entity) {
// 		return world.spawnEntity(entity);
// 	}
// 
// 	public static NBTTagCompound readNBT(PacketBuffer buf) {
// 		try {
// 			return buf.readCompoundTag();
// 		}
// 		catch (IOException e) {
// 		}
// 		return null;
// 	}
// 
// 	public static PacketBuffer writeNBT(@Nullable NBTTagCompound nbt, PacketBuffer buf) {
// 		return buf.writeCompoundTag(nbt);
// 	}
// 
// 	public static String[] getNames(MinecraftServer server) {
// 		return server.getOnlinePlayerNames();
// 	}
// 
// 	public static void message(Entity entity, ITextComponent message) {
// 		entity.sendMessage(message);
// 	}
// 
// }


// Path: src/main/java/p455w0rdslib/entity/EntitySittableBlock.java
import net.minecraft.entity.Entity;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import p455w0rdslib.util.EasyMappings;

		switch (rotation) {
		case 2:
			z += rotationOffset;
			break;
		case 0:
			z -= rotationOffset;
			break;
		case 3:
			x -= rotationOffset;
			break;
		case 1:
			x += rotationOffset;
			break;
		}
		setPosition(x, y, z);
	}

	@Override
	public double getMountedYOffset() {
		return height * 0.0D;
	}

	@Override
	protected boolean shouldSetPosAfterLoading() {
		return false;
	}

	@Override
	public void onEntityUpdate() {
		if (!EasyMappings.world(this).isRemote) {
			if (!isBeingRidden() || EasyMappings.world(this).isAirBlock(new BlockPos(blockPosX, blockPosY, blockPosZ))) {