public boolean isInLiquid() { BlockType below = BlockType.getById( world.getBlockIdAt((int) Math.floor(x), (int) Math.floor(y), (int) Math.floor(z))); BlockType above = BlockType.getById( world.getBlockIdAt((int) Math.floor(x), (int) Math.floor(y + 1), (int) Math.floor(z))); return below == BlockType.WATER || below == BlockType.LAVA || below == BlockType.STATIONARY_WATER || below == BlockType.STATIONARY_LAVA || above == BlockType.WATER || above == BlockType.LAVA || above == BlockType.STATIONARY_WATER || above == BlockType.STATIONARY_LAVA; }
public int getExperienceForLevel(int level) { if (level <= 15) return 17 * level; else if (level <= 30) return (int) ((1.5 * Math.pow(level, 2)) - (29.5 * level) + 360); else return (int) ((3.5 * Math.pow(level, 2)) - (151.5 * level) + 2220); }
private float getRotationY(double x, double y, double z) { double dis1 = y - (this.y + 1); double dis2 = Math.sqrt(Math.pow(x - this.x, 2) + Math.pow(z - this.z, 2)); return (float) ((Math.atan2(dis2, dis1) * 180D) / Math.PI) - 90F; }
public boolean isOnGround() { int id = world.getBlockIdAt((int) Math.floor(x), (int) Math.floor(y - 1), (int) Math.floor(z)); return y % 1 < 0.2 && BlockType.getById(id).isSolid(); }
private float getRotationX(double x, double y, double z) { double d = this.x - x; double d1 = this.z - z; return (float) (((Math.atan2(d1, d) * 180D) / Math.PI) + 90) % 360; }