use of net.minecraft.server.v1_8_R3.PacketPlayInSteerVehicle in project VehiclesPlus2.0 by legofreak107.
the class Plane method Plane.
public static void Plane(PacketPlayInSteerVehicle ppisv, Player p) {
ArmorStand a2 = (ArmorStand) p.getVehicle();
Seat s = plugin.seatInfo.get(a2);
ArmorStand a = (ArmorStand) s.parent;
Vehicle v = plugin.vehicleInfo.get(a);
ArmorStand a3 = (ArmorStand) v.skinHolder;
float forward = ppisv.b();
float side = ppisv.a();
boolean space = ppisv.c();
v.fuelbar.setTitle("Fuel: " + (int) (v.fuel / v.maxFuel * 100) + "%");
v.fuelbar.setProgress((v.fuel / v.maxFuel));
if (v.fuelbar.getPlayers().contains(p)) {
} else {
v.fuelbar.addPlayer(p);
v.fuelbar.setVisible(true);
}
if (v.fuel <= 0.5) {
v.fuelbar.setTitle("Out of fuel!");
} else {
v.fuel -= v.fualUsage / 2;
if (forward > 0) {
// Forward[W]
v.fuel -= v.fualUsage;
if (v.curSpeed < v.fspeed) {
v.curSpeed = v.curSpeed + v.acceleration / 20;
}
a.setVelocity(new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed));
} else if (forward == 0) {
if (v.curSpeed > 0) {
v.curSpeed = v.curSpeed - v.acceleration / 20;
}
a.setVelocity(new Vector(a.getLocation().getDirection().multiply(0.5).getX(), -0.1, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed));
} else {
if (v.curSpeed > 0) {
v.curSpeed = v.curSpeed - v.acceleration / 20 * 3;
}
a.setVelocity(new Vector(a.getLocation().getDirection().multiply(0.5).getX(), -0.2, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed));
}
if (forward > 0 && space) {
if (v.curSpeed > (v.fspeed / 5 * 2)) {
a.setVelocity(new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0.2, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed));
} else {
if (v.curSpeed < v.fspeed) {
v.curSpeed = v.curSpeed + v.acceleration / 20;
}
a.setVelocity(new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(v.curSpeed));
}
} else {
a3.setHeadPose(new EulerAngle(0, 0, 0));
}
if (side > 0 && forward > 0) {
// Side[A]
EntityArmorStand a1 = ((CraftArmorStand) a).getHandle();
a1.setLocation(a.getLocation().getX(), a.getLocation().getY(), a.getLocation().getZ(), a.getLocation().getYaw() - v.turnSpeed, a.getLocation().getPitch());
if (a.getLocation().getBlock().getRelative(BlockFace.DOWN).getType() == Material.AIR) {
a3.setHeadPose(new EulerAngle(0, 0, 170));
}
} else if (side < 0 && forward > 0) {
// Side[D]
EntityArmorStand a1 = ((CraftArmorStand) a).getHandle();
a1.setLocation(a.getLocation().getX(), a.getLocation().getY(), a.getLocation().getZ(), a.getLocation().getYaw() + v.turnSpeed, a.getLocation().getPitch());
if (a.getLocation().getBlock().getRelative(BlockFace.DOWN).getType() == Material.AIR) {
a3.setHeadPose(new EulerAngle(0, 0, -170));
}
} else {
a3.setHeadPose(new EulerAngle(0, 0, 0));
}
if (side > 0) {
// Side[A]
EntityArmorStand a1 = ((CraftArmorStand) a).getHandle();
a1.setLocation(a.getLocation().getX(), a.getLocation().getY(), a.getLocation().getZ(), a.getLocation().getYaw() - v.turnSpeed, a.getLocation().getPitch());
} else if (side < 0) {
// Side[D]
EntityArmorStand a1 = ((CraftArmorStand) a).getHandle();
a1.setLocation(a.getLocation().getX(), a.getLocation().getY(), a.getLocation().getZ(), a.getLocation().getYaw() + v.turnSpeed, a.getLocation().getPitch());
}
Location loc1 = new Location(a.getWorld(), a.getLocation().getBlockX() + 1, a.getLocation().getBlockY(), a.getLocation().getBlockZ());
Location loc2 = new Location(a.getWorld(), a.getLocation().getBlockX() - 1, a.getLocation().getBlockY(), a.getLocation().getBlockZ());
Location loc3 = new Location(a.getWorld(), a.getLocation().getBlockX(), a.getLocation().getBlockY(), a.getLocation().getBlockZ() + 1);
Location loc4 = new Location(a.getWorld(), a.getLocation().getBlockX(), a.getLocation().getBlockY(), a.getLocation().getBlockZ() - 1);
if ((loc1.getBlock().getType() != Material.AIR && loc1.getBlock().getType() != Material.LONG_GRASS && loc1.getBlock().getType() != Material.CHORUS_FLOWER && loc1.getBlock().getType() != Material.YELLOW_FLOWER && loc1.getBlock().getType() != Material.RED_ROSE && loc1.getBlock().getType() != Material.WHEAT) || (loc2.getBlock().getType() != Material.AIR && loc2.getBlock().getType() != Material.LONG_GRASS && loc2.getBlock().getType() != Material.CHORUS_FLOWER && loc2.getBlock().getType() != Material.YELLOW_FLOWER && loc2.getBlock().getType() != Material.RED_ROSE && loc2.getBlock().getType() != Material.WHEAT) || (loc3.getBlock().getType() != Material.AIR && loc3.getBlock().getType() != Material.LONG_GRASS && loc3.getBlock().getType() != Material.CHORUS_FLOWER && loc3.getBlock().getType() != Material.YELLOW_FLOWER && loc3.getBlock().getType() != Material.RED_ROSE && loc3.getBlock().getType() != Material.WHEAT) || (loc4.getBlock().getType() != Material.AIR && loc4.getBlock().getType() != Material.LONG_GRASS && loc4.getBlock().getType() != Material.CHORUS_FLOWER && loc4.getBlock().getType() != Material.YELLOW_FLOWER && loc4.getBlock().getType() != Material.RED_ROSE && loc4.getBlock().getType() != Material.WHEAT)) {
}
}
}
use of net.minecraft.server.v1_8_R3.PacketPlayInSteerVehicle in project VehiclesPlus2.0 by legofreak107.
the class Helicopter method Helicopter.
public static void Helicopter(PacketPlayInSteerVehicle ppisv, Player p) {
ArmorStand a2 = (ArmorStand) p.getVehicle();
Seat s = plugin.seatInfo.get(a2);
ArmorStand a = (ArmorStand) s.parent;
Vehicle v = plugin.vehicleInfo.get(a);
float forward = ppisv.b();
float side = ppisv.a();
boolean space = ppisv.c();
/*if(!Main.flyspeedlr.containsKey(p)){
Main.flyspeedlr.put(p, (float) 0);
}
if (!space && forward > 0 && Main.flyspeedlr.get(p) > 1.2){ //Forward[W]
if(Main.flyspeed.containsKey(p) && Main.flyspeed.get(p) < 1.5){
Main.flyspeed.put(p, (float) (Main.flyspeed.get(p) + 0.05));
a.setHeadPose(new EulerAngle(Math.toRadians(Main.flyspeed.get(p) * 30),0,0));
}else if(!Main.flyspeed.containsKey(p)){
Main.flyspeed.put(p, (float) 0);
}
if(Main.flyspeed.get(p) < 1){
a.setVelocity(new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0.2, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(Main.flyspeed.get(p)));
}else{
a.setVelocity(new Vector(a.getLocation().getDirection().multiply(0.5).getX(), -0.1, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(Main.flyspeed.get(p)));
}
}else if(forward == 0){
if(Main.flyspeed.containsKey(p) && Main.flyspeed.get(p) > 0){
Main.flyspeed.put(p, (float) (Main.flyspeed.get(p) - 0.01));
}else if(Main.flyspeed.containsKey(p) && Main.flyspeed.get(p) < 0){
Main.flyspeed.put(p, (float) (Main.flyspeed.get(p) + 0.01));
}
if(Main.flyspeed.get(p) < 0.6 && Main.flyspeed.get(p) > -0.6){
a.setHeadPose(new EulerAngle(0,0,0));
}else{
a.setHeadPose(new EulerAngle(Math.toRadians(Main.flyspeed.get(p) * 30),0,0));
}
a.setVelocity(new Vector(a.getLocation().getDirection().multiply(Main.flyspeed.get(p)).getX(), Main.flyspeedlr.get(p) -1.3, a.getLocation().getDirection().multiply(Main.flyspeed.get(p)).getZ()));
}else if(!space && forward < 0 && Main.flyspeedlr.get(p) > 1.2){
if(Main.flyspeed.containsKey(p) && Main.flyspeed.get(p) > -1.5){
Main.flyspeed.put(p, (float) (Main.flyspeed.get(p) - 0.05));
a.setHeadPose(new EulerAngle(Math.toRadians(Main.flyspeed.get(p) * 30),0,0));
}else if(!Main.flyspeed.containsKey(p)){
Main.flyspeed.put(p, (float) 0);
}
if(Main.flyspeed.get(p) < -1){
a.setVelocity(new Vector(a.getLocation().getDirection().multiply(0.5).getX(), 0.2, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(Main.flyspeed.get(p)));
}else{
a.setVelocity(new Vector(a.getLocation().getDirection().multiply(0.5).getX(), -0.1, a.getLocation().getDirection().multiply(0.5).getZ()).multiply(Main.flyspeed.get(p)));
}
}
if (side > 0){ //Side[A]
EntityArmorStand a1 = ((CraftArmorStand) a).getHandle();
a1.setLocation(a.getLocation().getX(), a.getLocation().getY(), a.getLocation().getZ(), a.getLocation().getYaw() - v.turnSpeed, a.getLocation().getPitch());
} else if (side < 0){ //Side[D]
EntityArmorStand a1 = ((CraftArmorStand) a).getHandle();
a1.setLocation(a.getLocation().getX(), a.getLocation().getY(), a.getLocation().getZ(), a.getLocation().getYaw() + v.turnSpeed, a.getLocation().getPitch());
}
if(space && forward > 0){
if(Main.flyspeedlr.containsKey(p) && Main.flyspeedlr.get(p) < 1.5){
Main.flyspeedlr.put(p, (float) (Main.flyspeedlr.get(p) + 0.01));
a.setVelocity(new Vector(0, Main.flyspeedlr.get(p)-1.2, 0));
}else if(!Main.flyspeedlr.containsKey(p)){
Main.flyspeedlr.put(p, (float) 0);
}
}
if(space && forward < 0){
if(Main.flyspeedlr.containsKey(p) && Main.flyspeedlr.get(p) > 0){
Main.flyspeedlr.put(p, (float) (Main.flyspeedlr.get(p) - 0.01));
a.setVelocity(new Vector(0, Main.flyspeedlr.get(p)-1.2, 0));
}else if(!Main.flyspeedlr.containsKey(p)){
Main.flyspeedlr.put(p, (float) 0);
}
}*/
}
Aggregations