package me.gtacraft.cars.controllers; import me.gtacraft.cars.events.UpdateCarEvent; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.block.BlockFace; import org.bukkit.entity.Entity; import org.bukkit.entity.Minecart; import org.bukkit.entity.Player; import org.bukkit.util.Vector; /** * Created by tacticalsk8er on 4/28/14. */ public class MotionController { public static void moveCar(Player p, float forward, float sideways) { Vector vector; Entity entity = p.getVehicle(); if (entity == null) { return; } if (!(entity instanceof Minecart)) { return; } Minecart car = (Minecart) entity; Vector playerDirection = p.getEyeLocation().getDirection(); if (forward == 0) { return; } boolean forwards; if (forward > 0) { forwards = true; } else { forwards = false; } double x = playerDirection.getX(); double y = -0.35; //Basic gravity double z = playerDirection.getZ(); if(!forwards) { x = 0 - x; z = 0 - z; } vector = new Vector(x, y, z); if (car.getLocation().getBlock().getRelative(BlockFace.DOWN).getType().equals(Material.RAILS)) vector = vector.multiply(2); Bukkit.getPluginManager().callEvent(new UpdateCarEvent(car, vector, p, false)); } }