package mods.ocminecart.common.util; import net.minecraft.util.MathHelper; import net.minecraftforge.common.util.ForgeDirection; public class RotationHelper { public static ForgeDirection[] dir = { ForgeDirection.SOUTH, ForgeDirection.EAST, ForgeDirection.NORTH, ForgeDirection.WEST }; public static ForgeDirection calcLocalDirection(ForgeDirection value, ForgeDirection face){ int n = indexHelperArray(face); int d = indexHelperArray(value); if(n<0 || d<0) return value; return dir[(d+n+4)%4]; } public static ForgeDirection calcGlobalDirection(ForgeDirection value, ForgeDirection face){ int n = indexHelperArray(face); int d = indexHelperArray(value); if(n<0 || d<0) return value; return dir[(d-n+4)%4]; } public static int indexHelperArray(ForgeDirection direction){ for(int i=0;i<dir.length;i+=1){ if(dir[i] == direction) return i; } return -1; } //http://jabelarminecraft.blogspot.co.at/p/minecraft-forge-172-finding-block.html public static ForgeDirection directionFromYaw(double yaw){ yaw+=44.5; yaw = (yaw+360)%360; int di = MathHelper.floor_double((yaw * 4.0D / 360D) + 0.5D); di=(di+4)%4; return RotationHelper.dir[di]; } public static double calcAngle(double x1, double z1, double x2, double z2){ double dx = x1-x2; double dy = z1-z2; return (Math.atan2(dy, dx)*180D)/Math.PI; } }