Diff
checker
Testo
Testo
Immagini
Documenti
Excel
Cartelle
Legal
Enterprise
Applicazione per desktop
Prezzi
Accedi
Scarica Diffchecker Desktop
Confronta il testo
Trova la differenza tra due file di testo
Strumenti
Cronologia
Editor live
Nascondi spazi bianchi
Comprimi invariate
Senza a capo
Layout
Diviso
Unificato
Livello di dettaglio
Intelligente
Parola
Carattere
Stili testo
Modifica aspetto
Evidenziazione sintassi
Scegli sintassi
Ignora
Trasforma testo
Vai alla prima modifica
Modifica input
Diffchecker Desktop
Il modo più sicuro per usare Diffchecker. Ottieni l'app Diffchecker Desktop: i tuoi diff non lasciano mai il tuo computer!
Ottieni Desktop
Untitled diff
Creato
11 anni fa
Il diff non scade mai
Eliminare
Esporta
Condividere
Spiegare
8 rimozioni
Linee
Totale
Rimosso
Caratteri
Totale
Rimosso
Per continuare a utilizzare questa funzione, aggiorna a
Diff
checker
Pro
Visualizza prezzi
43 linee
Copia tutti
5 aggiunte
Linee
Totale
Aggiunto
Caratteri
Totale
Aggiunto
Per continuare a utilizzare questa funzione, aggiorna a
Diff
checker
Pro
Visualizza prezzi
40 linee
Copia tutti
Copia
Copiato
Copia
Copiato
public class
Hom
ingTask extends BukkitRunnable {
public class
Chas
ingTask extends BukkitRunnable {
private static final double MaxRotationAngle = 0.12;
private static final double TargetSpeed = 1.4;
Arrow arrow;
Arrow arrow;
LivingEntity target;
LivingEntity target;
Copia
Copiato
Copia
Copiato
public
Hom
ingTask(final Arrow arrow, final LivingEntity target, final
Plugin
plugin) {
public
Chas
ingTask(final Arrow arrow, final LivingEntity target, final
ChasingArrows
plugin) {
super();
super();
this.arrow = arrow;
this.arrow = arrow;
this.target = target;
this.target = target;
Copia
Copiato
Copia
Copiato
this.runTaskTimer(
plugin, 1L, 1L);
this.runTaskTimer(
(Plugin)
plugin, 1L, 1L);
}
}
public void run() {
public void run() {
final double speed = this.arrow.getVelocity().length();
final double speed = this.arrow.getVelocity().length();
if (this.arrow.isOnGround() || this.arrow.isDead() || this.target.isDead()) {
if (this.arrow.isOnGround() || this.arrow.isDead() || this.target.isDead()) {
this.cancel();
this.cancel();
return;
return;
}
}
final Vector toTarget = this.target.getLocation().clone().add(new Vector(0.0, 0.5, 0.0)).subtract(this.arrow.getLocation()).toVector();
final Vector toTarget = this.target.getLocation().clone().add(new Vector(0.0, 0.5, 0.0)).subtract(this.arrow.getLocation()).toVector();
final Vector dirVelocity = this.arrow.getVelocity().clone().normalize();
final Vector dirVelocity = this.arrow.getVelocity().clone().normalize();
final Vector dirToTarget = toTarget.clone().normalize();
final Vector dirToTarget = toTarget.clone().normalize();
final double angle = dirVelocity.angle(dirToTarget);
final double angle = dirVelocity.angle(dirToTarget);
Copia
Copiato
Copia
Copiato
double newSpeed = 0.9 * speed + 0.
13999999999999999
;
double newSpeed = 0.9 * speed + 0.
14
;
if (this.target instanceof Player && this.arrow.getLocation().distance(this.target.getLocation()) < 8.0) {
if (this.target instanceof Player && this.arrow.getLocation().distance(this.target.getLocation()) < 8.0) {
final Player player = (Player)this.target;
final Player player = (Player)this.target;
if (player.isBlocking()) {
if (player.isBlocking()) {
newSpeed = speed * 0.6;
newSpeed = speed * 0.6;
}
}
}
}
Vector newVelocity;
Vector newVelocity;
if (angle < 0.12) {
if (angle < 0.12) {
newVelocity = dirVelocity.clone().multiply(newSpeed);
newVelocity = dirVelocity.clone().multiply(newSpeed);
}
}
else {
else {
final Vector newDir = dirVelocity.clone().multiply((angle - 0.12) / angle).add(dirToTarget.clone().multiply(0.12 / angle));
final Vector newDir = dirVelocity.clone().multiply((angle - 0.12) / angle).add(dirToTarget.clone().multiply(0.12 / angle));
newDir.normalize();
newDir.normalize();
newVelocity = newDir.clone().multiply(newSpeed);
newVelocity = newDir.clone().multiply(newSpeed);
}
}
this.arrow.setVelocity(newVelocity.add(new Vector(0.0, 0.03, 0.0)));
this.arrow.setVelocity(newVelocity.add(new Vector(0.0, 0.03, 0.0)));
Copia
Copiato
Copia
Copiato
this.arrow.getWorld().playEffect(this.arrow.getLocation(), Effect.SMOKE, 0);
}
}
}
}
Diff salvati
Testo originale
Apri file
public class HomingTask extends BukkitRunnable { private static final double MaxRotationAngle = 0.12; private static final double TargetSpeed = 1.4; Arrow arrow; LivingEntity target; public HomingTask(final Arrow arrow, final LivingEntity target, final Plugin plugin) { super(); this.arrow = arrow; this.target = target; this.runTaskTimer(plugin, 1L, 1L); } public void run() { final double speed = this.arrow.getVelocity().length(); if (this.arrow.isOnGround() || this.arrow.isDead() || this.target.isDead()) { this.cancel(); return; } final Vector toTarget = this.target.getLocation().clone().add(new Vector(0.0, 0.5, 0.0)).subtract(this.arrow.getLocation()).toVector(); final Vector dirVelocity = this.arrow.getVelocity().clone().normalize(); final Vector dirToTarget = toTarget.clone().normalize(); final double angle = dirVelocity.angle(dirToTarget); double newSpeed = 0.9 * speed + 0.13999999999999999; if (this.target instanceof Player && this.arrow.getLocation().distance(this.target.getLocation()) < 8.0) { final Player player = (Player)this.target; if (player.isBlocking()) { newSpeed = speed * 0.6; } } Vector newVelocity; if (angle < 0.12) { newVelocity = dirVelocity.clone().multiply(newSpeed); } else { final Vector newDir = dirVelocity.clone().multiply((angle - 0.12) / angle).add(dirToTarget.clone().multiply(0.12 / angle)); newDir.normalize(); newVelocity = newDir.clone().multiply(newSpeed); } this.arrow.setVelocity(newVelocity.add(new Vector(0.0, 0.03, 0.0))); this.arrow.getWorld().playEffect(this.arrow.getLocation(), Effect.SMOKE, 0); } }
Testo modificato
Apri file
public class ChasingTask extends BukkitRunnable { Arrow arrow; LivingEntity target; public ChasingTask(final Arrow arrow, final LivingEntity target, final ChasingArrows plugin) { super(); this.arrow = arrow; this.target = target; this.runTaskTimer((Plugin)plugin, 1L, 1L); } public void run() { final double speed = this.arrow.getVelocity().length(); if (this.arrow.isOnGround() || this.arrow.isDead() || this.target.isDead()) { this.cancel(); return; } final Vector toTarget = this.target.getLocation().clone().add(new Vector(0.0, 0.5, 0.0)).subtract(this.arrow.getLocation()).toVector(); final Vector dirVelocity = this.arrow.getVelocity().clone().normalize(); final Vector dirToTarget = toTarget.clone().normalize(); final double angle = dirVelocity.angle(dirToTarget); double newSpeed = 0.9 * speed + 0.14; if (this.target instanceof Player && this.arrow.getLocation().distance(this.target.getLocation()) < 8.0) { final Player player = (Player)this.target; if (player.isBlocking()) { newSpeed = speed * 0.6; } } Vector newVelocity; if (angle < 0.12) { newVelocity = dirVelocity.clone().multiply(newSpeed); } else { final Vector newDir = dirVelocity.clone().multiply((angle - 0.12) / angle).add(dirToTarget.clone().multiply(0.12 / angle)); newDir.normalize(); newVelocity = newDir.clone().multiply(newSpeed); } this.arrow.setVelocity(newVelocity.add(new Vector(0.0, 0.03, 0.0))); } }
Trovare la differenza