Heyho nachdem mir hier im Forum das letze mal schon so super geholfen wurde hoffe ich nun darauf dass mir wieder echt gut geholfen wird ich versuch nun schon seit Tagen mein Problem zu lösen.
Zu meinem Problem: Ich habe ein Modelier Plugin für Minecraft Geschrieben welches auch super funktioniert https://www.spigotmc.org/resources/furnituremaker.20667/ mit diesem Plugin hab ich mir nun aus ArmorStands ein auto zusammen gebastelt:
Das auto besteht aus verschiedene ArmorStands die Relative zur mitte erzeugt werden
Nun möchte ich natürlich das Auto auch zum fahren bekommen
das fahren an sich ist leicht gemacht über vektoren berechnung nun möchte ich halt das das auto sich beim drücken von "D" um die eigene Axe dreht hier mal ein kleines Beispiel Video
Meine Idee war nun wie folgt da das Auto ja aus X ArmorStands besteht diese einzeln in einer for Schleife abarbeiten:
Nun berechne ich die Relativen Koordinaten des ArmorStands und der Mitte:
So nun hab ich den xOffset und den zOffset des 3d Vectors nun hab ich mir es so gedacht:
Dass quasi um die Mitte ein Kreis erzeugt wird mit der Länge des Abstandes ArmorStand zur Mitte das sieht nun so aus:
so bis hierher geht noch alles ich hab nun die radius den xOffset und den zOffset aber nun setzt es schon aus wie bekomm ich nun den neuen Punkt im kreis der sagen wir mal um 2 Grad abweich vom eigentlichen punkt
Zu meinem Problem: Ich habe ein Modelier Plugin für Minecraft Geschrieben welches auch super funktioniert https://www.spigotmc.org/resources/furnituremaker.20667/ mit diesem Plugin hab ich mir nun aus ArmorStands ein auto zusammen gebastelt:

Das auto besteht aus verschiedene ArmorStands die Relative zur mitte erzeugt werden
Nun möchte ich natürlich das Auto auch zum fahren bekommen
Meine Idee war nun wie folgt da das Auto ja aus X ArmorStands besteht diese einzeln in einer for Schleife abarbeiten:
Java:
@EventHandler
Location loc =FurnitureLib.getInstance().getLocationUtil().getCenter(e.getID().getStartLocation()).subtract(0, .5, 0);
Vector v = loc.toVector();
float angle = 2;
for(fEntity entity : e.getID().getPacketList()){
}
}
Nun berechne ich die Relativen Koordinaten des ArmorStands und der Mitte:
Java:
@EventHandler
Location loc =FurnitureLib.getInstance().getLocationUtil().getCenter(e.getID().getStartLocation()).subtract(0, .5, 0);
Vector v = loc.toVector();
float angle = 2;
for(fEntity entity : e.getID().getPacketList()){
Relative relative = new Relative(loc, entity.getLocation());
double xOffset = relative.getOffsetX();
double zOffset = relative.getOffsetZ();
}
}
So nun hab ich den xOffset und den zOffset des 3d Vectors nun hab ich mir es so gedacht:

Dass quasi um die Mitte ein Kreis erzeugt wird mit der Länge des Abstandes ArmorStand zur Mitte das sieht nun so aus:
Java:
@EventHandler
Location loc =FurnitureLib.getInstance().getLocationUtil().getCenter(e.getID().getStartLocation()).subtract(0, .5, 0);
Vector v = loc.toVector();
float angle = 2;
for(fEntity entity : e.getID().getPacketList()){
Relative relative = new Relative(loc, entity.getLocation());
double xOffset = relative.getOffsetX();
double zOffset = relative.getOffsetZ();
double radius = relative.getFirstLocation().toVector().distance(relative.getSecondLocation().toVector());
}
}
so bis hierher geht noch alles ich hab nun die radius den xOffset und den zOffset aber nun setzt es schon aus wie bekomm ich nun den neuen Punkt im kreis der sagen wir mal um 2 Grad abweich vom eigentlichen punkt