Minecraft bukkit programmieren Radius erstellen
Ich würde gerne einen Radius erstellen in dem Blöcke geändert werden. Dieser sollte von einem Spieler aus starten. Jetzt mein Problem: obwohl ich die location vom Spieler angegeben habe kommt die Kugel irgendwo vollkommen anders gespannt kann mir jemand vll. zeigen wie das geht '?
2 Antworten
Ich denk mal du erstellst die blöcke an den x, y, z koordinaten die du aus der schleife hast. Du musst die player location nehmen und die x, y, z hinzufügen
Ich geh davon aus, das du versuchst beim Spieler einen kreis zu erstellen? Wenn ja kanns´t du dir ja mal folgendes beispiel zur hand nehmen.
Hier wird um den Spieler ein Kreis gemacht und dieser Kreis wird durch schnee ersetzt also wie ein Kreis, ich weis nicht ob dir das Helfen wird, aber man kann es ja immerhin einmal ausprobieren und wenn es dann nicht geht rückmelden ... ;) (Hoffen wir das du das Meintest :D)
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.util.BlockVector;
import org.bukkit.util.Vector;
public class CircleSetter {
private int radius;
private Location loc;
public CircleSetter(Location loc, int radius) {
this.loc = loc;
this.radius = radius;
}
public void setCircle() {
Vector vec = new BlockVector(loc.getBlockX(), loc.getY(), loc.getZ());
for (int x = -radius; x <= radius; x++) {
for (int z = -radius; z <= radius; z++) {
Vector position = vec.clone().add(new Vector(x, 0, z));
if (vec.distance(position) <= radius + 0.5) {
loc.getWorld().getHighestBlockAt(position.getBlockX(), position.getBlockZ()).setType(Material.SNOW);
}
}
}
}
}
Das ist ja kein vollständiger Kreis und wenn ich es umschreibe also noch eine for schleife für die y koordinaten gethighestblock durch getBlockat spawnt der Kreis irgendwo in der Welt und nicht beim Spieler.