001package fr.aumgn.bukkitutils.geom;
002
003import org.bukkit.Location;
004import org.bukkit.entity.Entity;
005
006import fr.aumgn.bukkitutils.geom.direction.HorizontalDirection;
007import fr.aumgn.bukkitutils.geom.direction.LocationDirection;
008
009/**
010 * Set of convenient methods to construct Direction
011 * from other direction representations.
012 */
013public final class Directions {
014
015    public static Direction fromLocation(Location location) {
016        return new LocationDirection(location);
017    }
018
019    public static Direction fromHorizontalLocation(Location location) {
020        return new HorizontalDirection(location.getYaw());
021    }
022
023    public static Direction fromEntity(Entity entity) {
024        return fromLocation(entity.getLocation());
025    }
026
027    public static Direction fromPlayer(Entity entity) {
028        return fromLocation(entity.getLocation());
029    }
030
031    public static Direction fromYawAndPitch(float yaw, float pitch) {
032        return new LocationDirection(yaw, pitch);
033    }
034
035    public static Direction fromYaw(float yaw) {
036        return new HorizontalDirection(yaw);
037    }
038
039    private Directions() {
040    }
041}