code reformat
This commit is contained in:
@@ -1,18 +1,24 @@
|
||||
package eu.mhsl.minecraft.pixelblocks.pixelblock;
|
||||
|
||||
import co.aikar.taskchain.TaskChain;
|
||||
import eu.mhsl.minecraft.pixelblocks.PixelBlockItem;
|
||||
import eu.mhsl.minecraft.pixelblocks.Main;
|
||||
import eu.mhsl.minecraft.pixelblocks.PixelBlockItem;
|
||||
import eu.mhsl.minecraft.pixelblocks.utils.Direction;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import org.bukkit.*;
|
||||
import org.bukkit.entity.*;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Item;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.Vector;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.*;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
|
||||
public class PixelBlock {
|
||||
private boolean exists = true;
|
||||
@@ -32,15 +38,15 @@ public class PixelBlock {
|
||||
|
||||
public static @Nullable PixelBlock getPixelBlockFromBlockWorld(World world) {
|
||||
return Main.pixelBlocks.stream()
|
||||
.filter(block -> block.blockUUID.equals(getUUIDFromWorld(world)))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
.filter(block -> block.blockUUID.equals(getUUIDFromWorld(world)))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
}
|
||||
|
||||
public static @Nullable UUID getUUIDFromWorld(@NotNull World world) {
|
||||
try {
|
||||
return UUID.fromString(List.of(world.getName().split("/")).getLast());
|
||||
} catch (IllegalArgumentException e) {
|
||||
} catch(IllegalArgumentException e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -51,14 +57,15 @@ public class PixelBlock {
|
||||
searchLocation.setYaw(0);
|
||||
|
||||
return Main.pixelBlocks.stream()
|
||||
.filter(block -> Objects.equals(block.pixelBlockLocation, searchLocation))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
.filter(block -> Objects.equals(block.pixelBlockLocation, searchLocation))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
}
|
||||
|
||||
public static PixelBlock fromExisting(UUID blockUUID, UUID ownerUUID, Location pixelBlockLocation, Direction direction, Location lastEntryLocation) {
|
||||
return new PixelBlock(blockUUID, ownerUUID, pixelBlockLocation, direction, lastEntryLocation);
|
||||
}
|
||||
|
||||
private PixelBlock(UUID blockUUID, UUID ownerUUID, Location pixelBlockLocation, Direction direction, Location lastEntryLocation) {
|
||||
this.blockUUID = blockUUID;
|
||||
this.ownerUUID = ownerUUID;
|
||||
@@ -84,6 +91,7 @@ public class PixelBlock {
|
||||
public static PixelBlock createPixelBlock(UUID blockUUID, UUID ownerUUID, Location pixelBlockLocation, Direction direction) {
|
||||
return new PixelBlock(blockUUID, ownerUUID, pixelBlockLocation, direction);
|
||||
}
|
||||
|
||||
private PixelBlock(UUID blockUUID, UUID ownerUUID, Location pixelBlockLocation, Direction direction) {
|
||||
if(Main.pixelBlocks.stream().anyMatch(pixelBlock -> pixelBlock.getBlockUUID().equals(blockUUID)))
|
||||
throw new IllegalStateException(String.format("PixelBlock '%s' ist bereits in der Welt vorhanden!", blockUUID));
|
||||
|
||||
@@ -34,8 +34,8 @@ public class PixelBlockHitbox {
|
||||
pixelBlockLocation.clone().add(0.5, -offset, 0.5),
|
||||
EntityType.INTERACTION
|
||||
);
|
||||
interaction.setInteractionHeight(1 + 2*offset);
|
||||
interaction.setInteractionWidth(1 + 2*offset);
|
||||
interaction.setInteractionHeight(1 + 2 * offset);
|
||||
interaction.setInteractionWidth(1 + 2 * offset);
|
||||
} else {
|
||||
// double startingX = this.parentBlock.getPixelBlockLocation().x() + MinMaxUtil.getMinProperty(pixels, pixel -> pixel.relativeLocation().getX()) * scale;
|
||||
// double startingY = this.parentBlock.getPixelBlockLocation().y() + MinMaxUtil.getMinProperty(pixels, pixel -> pixel.relativeLocation().getY()) * scale;
|
||||
|
||||
@@ -13,7 +13,10 @@ import org.bukkit.persistence.PersistentDataHolder;
|
||||
import org.bukkit.persistence.PersistentDataType;
|
||||
import org.bukkit.util.Transformation;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
|
||||
public class PixelBlockPlaceholder {
|
||||
private static final NamespacedKey placeholderOfTag = new NamespacedKey(Main.plugin(), "placeholder_of");
|
||||
|
||||
@@ -46,8 +46,8 @@ public class PixelBlockWorld {
|
||||
Location origin = getBuildOrigin();
|
||||
int offset = pixelsPerBlock - 1;
|
||||
return blockLocation.x() >= origin.x() && blockLocation.x() <= origin.x() + offset
|
||||
&& blockLocation.z() >= origin.z() && blockLocation.z() <= origin.z() + offset
|
||||
&& blockLocation.y() >= origin.y() && blockLocation.y() <= origin.y() + offset;
|
||||
&& blockLocation.z() >= origin.z() && blockLocation.z() <= origin.z() + offset
|
||||
&& blockLocation.y() >= origin.y() && blockLocation.y() <= origin.y() + offset;
|
||||
}
|
||||
|
||||
public @NotNull String getWorldPathName() {
|
||||
@@ -59,7 +59,7 @@ public class PixelBlockWorld {
|
||||
}
|
||||
|
||||
public @NotNull Location getPortalLocation() {
|
||||
return this.getBuildOrigin().add((double) pixelsPerBlock/2 -2, 0, -worldGrassBorderWidth+3);
|
||||
return this.getBuildOrigin().add((double) pixelsPerBlock / 2 - 2, 0, -worldGrassBorderWidth + 3);
|
||||
}
|
||||
|
||||
public @NotNull List<Player> getPlayersInWorld() {
|
||||
@@ -90,21 +90,27 @@ public class PixelBlockWorld {
|
||||
return getBorderOrigin().add(worldGrassBorderWidth + pixelsPerBlock, 0, worldGrassBorderWidth + pixelsPerBlock);
|
||||
}
|
||||
|
||||
public record PixelData(Vector relativeLocation, BlockData block, double scale) {}
|
||||
public record PixelData(Vector relativeLocation, BlockData block, double scale) {
|
||||
}
|
||||
|
||||
public List<PixelData> getPixels(Direction direction) {
|
||||
List<PixelData> pixelData = new ArrayList<>();
|
||||
|
||||
for (int x = 0; x < pixelsPerBlock; x++) {
|
||||
for (int y = 0; y < pixelsPerBlock; y++) {
|
||||
for (int z = 0; z < pixelsPerBlock; z++) {
|
||||
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(world, x, y, z);
|
||||
|
||||
Location blockLocation = this.getBuildOrigin();
|
||||
switch (direction) {
|
||||
case south -> blockLocation.add(relativeLocation.x(), relativeLocation.y(), relativeLocation.z());
|
||||
case north -> blockLocation.add((pixelsPerBlock-1)-relativeLocation.x(), relativeLocation.y(), (pixelsPerBlock-1)-relativeLocation.z());
|
||||
case east -> blockLocation.add((pixelsPerBlock-1)-relativeLocation.z(), relativeLocation.y(), relativeLocation.x());
|
||||
case west -> blockLocation.add(relativeLocation.z(), relativeLocation.y(), (pixelsPerBlock-1)-relativeLocation.x());
|
||||
switch(direction) {
|
||||
case south ->
|
||||
blockLocation.add(relativeLocation.x(), relativeLocation.y(), relativeLocation.z());
|
||||
case north ->
|
||||
blockLocation.add((pixelsPerBlock - 1) - relativeLocation.x(), relativeLocation.y(), (pixelsPerBlock - 1) - relativeLocation.z());
|
||||
case east ->
|
||||
blockLocation.add((pixelsPerBlock - 1) - relativeLocation.z(), relativeLocation.y(), relativeLocation.x());
|
||||
case west ->
|
||||
blockLocation.add(relativeLocation.z(), relativeLocation.y(), (pixelsPerBlock - 1) - relativeLocation.x());
|
||||
}
|
||||
BlockData block = blockLocation.getBlock().getBlockData();
|
||||
|
||||
@@ -122,7 +128,8 @@ public class PixelBlockWorld {
|
||||
final WorldCreator worldCreator = new WorldCreator(getWorldPathName());
|
||||
|
||||
worldCreator.type(WorldType.FLAT);
|
||||
worldCreator.generator(new ChunkGenerator() {});
|
||||
worldCreator.generator(new ChunkGenerator() {
|
||||
});
|
||||
|
||||
World world = Bukkit.createWorld(worldCreator);
|
||||
Objects.requireNonNull(world);
|
||||
@@ -137,7 +144,7 @@ public class PixelBlockWorld {
|
||||
|
||||
WorldBorder worldBorder = world.getWorldBorder();
|
||||
worldBorder.setCenter(getBuildOrigin().add((double) pixelsPerBlock / 2, 0, (double) pixelsPerBlock / 2));
|
||||
worldBorder.setSize(pixelsPerBlock + (2*worldGrassBorderWidth));
|
||||
worldBorder.setSize(pixelsPerBlock + (2 * worldGrassBorderWidth));
|
||||
worldBorder.setWarningDistance(0);
|
||||
worldBorder.setDamageAmount(0);
|
||||
return world;
|
||||
@@ -145,24 +152,24 @@ public class PixelBlockWorld {
|
||||
|
||||
private void setBuildingPlatform() {
|
||||
Bukkit.getScheduler().runTask(Main.plugin(), () -> {
|
||||
for (int x = 0; x < (pixelsPerBlock+2) + 2 * worldGrassBorderWidth; x++) {
|
||||
for (int z = 0; z < (pixelsPerBlock+2) + 2 * worldGrassBorderWidth; z++) {
|
||||
for(int x = 0; x < (pixelsPerBlock + 2) + 2 * worldGrassBorderWidth; x++) {
|
||||
for(int z = 0; z < (pixelsPerBlock + 2) + 2 * worldGrassBorderWidth; z++) {
|
||||
getPlatformOrigin().add(x, 0, z).getBlock().setType(Material.GRASS_BLOCK);
|
||||
}
|
||||
}
|
||||
for (int x = 0; x < (pixelsPerBlock+2) + 2 * worldGrassBorderWidth; x++) {
|
||||
for (int z = 0; z < (pixelsPerBlock+2) + 2 * worldGrassBorderWidth; z++) {
|
||||
for(int x = 0; x < (pixelsPerBlock + 2) + 2 * worldGrassBorderWidth; x++) {
|
||||
for(int z = 0; z < (pixelsPerBlock + 2) + 2 * worldGrassBorderWidth; z++) {
|
||||
getPlatformOrigin().add(x, -1, z).getBlock().setType(Material.DIRT);
|
||||
}
|
||||
}
|
||||
|
||||
for (int x = 0; x < (pixelsPerBlock+2); x++) {
|
||||
for (int z = 0; z < (pixelsPerBlock+2); z++) {
|
||||
for(int x = 0; x < (pixelsPerBlock + 2); x++) {
|
||||
for(int z = 0; z < (pixelsPerBlock + 2); z++) {
|
||||
Location currentLocation = getBorderOrigin().add(x, 0, z);
|
||||
|
||||
if (currentLocation.x() == getBorderOrigin().x() || currentLocation.z() == getBorderOrigin().z()) {
|
||||
if(currentLocation.x() == getBorderOrigin().x() || currentLocation.z() == getBorderOrigin().z()) {
|
||||
currentLocation.getBlock().setType(Material.RED_CONCRETE);
|
||||
} else if (currentLocation.x() == getBorderOrigin().x() + (pixelsPerBlock+1) || currentLocation.z() == getBorderOrigin().z() + (pixelsPerBlock+1)) {
|
||||
} else if(currentLocation.x() == getBorderOrigin().x() + (pixelsPerBlock + 1) || currentLocation.z() == getBorderOrigin().z() + (pixelsPerBlock + 1)) {
|
||||
currentLocation.getBlock().setType(Material.RED_CONCRETE);
|
||||
}
|
||||
}
|
||||
@@ -170,22 +177,22 @@ public class PixelBlockWorld {
|
||||
|
||||
Random random = new Random();
|
||||
LocationUtil.iterateBlocks(getPlatformOrigin().add(1, 1, 1), getPlatformOriginEnd().add(0, 1, 0), location -> {
|
||||
if (allowPlacements(location)) return;
|
||||
if (!location.clone().subtract(0, 1, 0).getBlock().getType().equals(Material.GRASS_BLOCK)) return;
|
||||
if (!location.getBlock().getType().equals(Material.AIR)) return;
|
||||
if(allowPlacements(location)) return;
|
||||
if(!location.clone().subtract(0, 1, 0).getBlock().getType().equals(Material.GRASS_BLOCK)) return;
|
||||
if(!location.getBlock().getType().equals(Material.AIR)) return;
|
||||
|
||||
if (random.nextInt(10) == 0) {
|
||||
if(random.nextInt(10) == 0) {
|
||||
Material[] flowers = {
|
||||
Material.DANDELION,
|
||||
Material.POPPY,
|
||||
Material.BLUE_ORCHID,
|
||||
Material.ALLIUM,
|
||||
Material.AZURE_BLUET,
|
||||
Material.RED_TULIP,
|
||||
Material.ORANGE_TULIP,
|
||||
Material.WHITE_TULIP,
|
||||
Material.CORNFLOWER,
|
||||
Material.LILY_OF_THE_VALLEY,
|
||||
Material.DANDELION,
|
||||
Material.POPPY,
|
||||
Material.BLUE_ORCHID,
|
||||
Material.ALLIUM,
|
||||
Material.AZURE_BLUET,
|
||||
Material.RED_TULIP,
|
||||
Material.ORANGE_TULIP,
|
||||
Material.WHITE_TULIP,
|
||||
Material.CORNFLOWER,
|
||||
Material.LILY_OF_THE_VALLEY,
|
||||
};
|
||||
|
||||
Material randomFlower = flowers[random.nextInt(flowers.length)];
|
||||
@@ -193,13 +200,13 @@ public class PixelBlockWorld {
|
||||
}
|
||||
});
|
||||
|
||||
for (int x = 0; x < 4; x++) {
|
||||
for (int y = 0; y < 5; y++) {
|
||||
for(int x = 0; x < 4; x++) {
|
||||
for(int y = 0; y < 5; y++) {
|
||||
getPortalLocation().add(x, y, 0).getBlock().setType(Material.OBSIDIAN);
|
||||
}
|
||||
}
|
||||
for (int x = 1; x < 3; x++) {
|
||||
for (int y = 1; y < 4; y++) {
|
||||
for(int x = 1; x < 3; x++) {
|
||||
for(int y = 1; y < 4; y++) {
|
||||
getPortalLocation().add(x, y, 0).getBlock().setType(Material.NETHER_PORTAL);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user