starts creating pixelblocks
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
package eu.mhsl.minecraft.pixelblocks.pixelblock;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
import org.bukkit.entity.BlockDisplay;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.util.Transformation;
|
||||
|
||||
public class Pixel {
|
||||
Location relativeLocation;
|
||||
BlockData blockData;
|
||||
double scale;
|
||||
|
||||
public Pixel(Location relativeLocation, BlockData blockData, double scale) {
|
||||
this.relativeLocation = relativeLocation;
|
||||
this.blockData = blockData;
|
||||
this.scale = scale;
|
||||
}
|
||||
|
||||
public void spawn(Location spawnLocation) {
|
||||
spawnLocation.add(relativeLocation.x()*scale, relativeLocation.y()*scale, relativeLocation.z()*scale);
|
||||
|
||||
BlockDisplay bd;
|
||||
bd = (BlockDisplay) spawnLocation.getWorld().spawnEntity(
|
||||
spawnLocation,
|
||||
EntityType.BLOCK_DISPLAY
|
||||
);
|
||||
|
||||
bd.setBlock(blockData);
|
||||
|
||||
Transformation transform = bd.getTransformation();
|
||||
transform.getScale().set(scale);
|
||||
bd.setTransformation(transform);
|
||||
|
||||
System.out.println(spawnLocation.x());
|
||||
System.out.println(spawnLocation.y());
|
||||
System.out.println(spawnLocation.z());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package eu.mhsl.minecraft.pixelblocks.pixelblock;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class PixelBlock {
|
||||
double pixelsPerBlock;
|
||||
ArrayList<Pixel> pixels = new ArrayList<>();
|
||||
|
||||
public PixelBlock(Location originLocation, double pixelsPerBlock) {
|
||||
this.pixelsPerBlock = pixelsPerBlock;
|
||||
|
||||
for (int x = 0; x < pixelsPerBlock; x++) {
|
||||
for (int y = 0; y < pixelsPerBlock; y++) {
|
||||
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();
|
||||
|
||||
if(block != Material.AIR) {
|
||||
Pixel newPixel = new Pixel(relativeLocation, block.createBlockData(), (1/pixelsPerBlock));
|
||||
pixels.add(newPixel);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void place(Location placeLocation) {
|
||||
placeLocation = placeLocation.toBlockLocation();
|
||||
for(Pixel pixel : pixels) {
|
||||
pixel.spawn(placeLocation);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user