diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/commands/CreatePixelBlockCommand.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/commands/CreatePixelBlockCommand.java index 6282384..2a7128d 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/commands/CreatePixelBlockCommand.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/commands/CreatePixelBlockCommand.java @@ -13,10 +13,8 @@ public class CreatePixelBlockCommand implements CommandExecutor { public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { if(sender instanceof Player p) { Location playerLocation = p.getLocation(); - PixelBlock pixelBlock = new PixelBlock(playerLocation, 2); + PixelBlock pixelBlock = new PixelBlock(playerLocation, 16); pixelBlock.place(playerLocation); -// Pixel pixel = new Pixel(new Location(p.getWorld(), 0, 0, 0), Material.COMMAND_BLOCK.createBlockData(), 0.5); -// pixel.spawn(playerLocation); } return true; diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/Pixel.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/Pixel.java index 7eb258f..b75c831 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/Pixel.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/Pixel.java @@ -12,13 +12,22 @@ public class Pixel { double scale; public Pixel(Location relativeLocation, BlockData blockData, double scale) { - this.relativeLocation = relativeLocation; + this.relativeLocation = new Location( + relativeLocation.getWorld(), + relativeLocation.x(), + relativeLocation.y(), + relativeLocation.z() + ); this.blockData = blockData; this.scale = scale; } - public void spawn(Location spawnLocation) { - spawnLocation.add(relativeLocation.x()*scale, relativeLocation.y()*scale, relativeLocation.z()*scale); + public void spawn(Location spawnBlockLocation) { + double positionX = spawnBlockLocation.x()+relativeLocation.x()*scale; + double positionY = spawnBlockLocation.y()+relativeLocation.y()*scale; + double positionZ = spawnBlockLocation.z()+relativeLocation.z()*scale; + + Location spawnLocation = new Location(spawnBlockLocation.getWorld(), positionX, positionY, positionZ); BlockDisplay bd; bd = (BlockDisplay) spawnLocation.getWorld().spawnEntity( diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/PixelBlock.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/PixelBlock.java index 56c3578..f5a4f7e 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/PixelBlock.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/PixelBlock.java @@ -2,6 +2,7 @@ package eu.mhsl.minecraft.pixelblocks.pixelblock; import org.bukkit.Location; import org.bukkit.Material; +import org.bukkit.block.data.BlockData; import java.util.ArrayList; @@ -17,10 +18,10 @@ public class PixelBlock { for (int z = 0; z < pixelsPerBlock; z++) { Location relativeLocation = new Location(originLocation.getWorld(), x, y, z); Location blockLocation = originLocation.toBlockLocation().clone().add(relativeLocation); - Material block = blockLocation.getBlock().getType(); + BlockData block = blockLocation.getBlock().getBlockData(); - if(block != Material.AIR) { - Pixel newPixel = new Pixel(relativeLocation, block.createBlockData(), (1/pixelsPerBlock)); + if(block.getMaterial() != Material.AIR) { + Pixel newPixel = new Pixel(relativeLocation, block, (1/pixelsPerBlock)); pixels.add(newPixel); } }