Minecraft bukkit programmieren Radius erstellen

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

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);
                }
            }
        }
    }
}

MagicGamer 
Beitragsersteller
 08.02.2015, 10:20

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.

0