diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/BauSystem.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/BauSystem.java index e1f7b11a..685c730a 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/BauSystem.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/BauSystem.java @@ -25,7 +25,6 @@ import de.steamwar.bausystem.configplayer.ConfigConverter; import de.steamwar.bausystem.features.gui.BauGUI; import de.steamwar.bausystem.features.script.lua.SteamWarLuaPlugin; import de.steamwar.bausystem.features.script.lua.libs.LuaLib; -import de.steamwar.bausystem.features.slaves.laufbau.BoundingBoxLoader; import de.steamwar.bausystem.features.slaves.panzern.Panzern; import de.steamwar.bausystem.features.slaves.panzern.PanzernAlgorithm; import de.steamwar.bausystem.features.tracer.TraceManager; @@ -112,9 +111,6 @@ public class BauSystem extends JavaPlugin implements Listener { if (any instanceof ConfigConverter) { Config.addConfigConverter((ConfigConverter) any); } - if (any instanceof BoundingBoxLoader) { - ((BoundingBoxLoader) any).load(); - } } }; try { diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/BlockBoundingBox.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/BlockBoundingBox.java index 0df055af..92597d49 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/BlockBoundingBox.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/BlockBoundingBox.java @@ -19,28 +19,17 @@ package de.steamwar.bausystem.features.slaves.laufbau; -import com.sk89q.worldedit.blocks.SkullBlock; import com.sk89q.worldedit.world.block.BaseBlock; import de.steamwar.inventory.SWItem; import lombok.Getter; import lombok.ToString; -import org.bukkit.Material; -import org.bukkit.block.BlockFace; -import org.bukkit.block.data.Bisected; import org.bukkit.block.data.BlockData; -import org.bukkit.block.data.Directional; -import org.bukkit.block.data.Waterlogged; -import org.bukkit.block.data.type.*; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Random; import java.util.function.Consumer; -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.createItem; -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.pixelCuboid; - @ToString @Getter public class BlockBoundingBox { @@ -92,197 +81,4 @@ public class BlockBoundingBox { public double volume() { return volume; } - - static { - addPixel(Material.AIR.createBlockData(), 0, 0, 0, 0, 0, 0, null); - // addPixel(Material.COBWEB.createBlockData(), 0, 0, 0, 0, 0, 0, createItem("LAUFBAU_BLOCK_COBWEB", Material.COBWEB)); - addPixel(Material.END_STONE.createBlockData(), 0, 0, 0, 16, 16, 16, null); - - addPixel(Material.DIRT_PATH.createBlockData(), 0, 0, 0, 16, 15, 16, createItem("LAUFBAU_BLOCK_GRASS_PATH", Material.DIRT_PATH)); - addPixel(Material.MUD.createBlockData(), 0, 0, 0, 16, 14, 16, createItem("LAUFBAU_BLOCK_SOUL_SAND", Material.SOUL_SAND)); - - Cocoa cocoaNorth = (Cocoa) Material.COCOA.createBlockData(); - cocoaNorth.setAge(2); - cocoaNorth.setFacing(BlockFace.NORTH); - addPixel(cocoaNorth, 4, 3, 1, 8, 9, 8, createItem("LAUFBAU_BLOCK_COCOA", Material.COCOA_BEANS, "LAUFBAU_FACING_NORTH")); - - Cocoa cocoaSouth = (Cocoa) Material.COCOA.createBlockData(); - cocoaSouth.setAge(2); - cocoaSouth.setFacing(BlockFace.SOUTH); - addPixel(cocoaSouth, 4, 3, 7, 8, 9, 8, createItem("LAUFBAU_BLOCK_COCOA", Material.COCOA_BEANS, "LAUFBAU_FACING_SOUTH")); - - Cocoa cocoaWest = (Cocoa) Material.COCOA.createBlockData(); - cocoaWest.setAge(2); - cocoaWest.setFacing(BlockFace.WEST); - addPixel(cocoaWest, 1, 3, 4, 8, 9, 8, createItem("LAUFBAU_BLOCK_COCOA", Material.COCOA_BEANS, "LAUFBAU_FACING_WEST")); - - Cocoa cocoaEast = (Cocoa) Material.COCOA.createBlockData(); - cocoaEast.setAge(2); - cocoaEast.setFacing(BlockFace.EAST); - addPixel(cocoaEast, 7, 3, 4, 8, 9, 8, createItem("LAUFBAU_BLOCK_COCOA", Material.COCOA_BEANS, "LAUFBAU_FACING_EAST")); - - TurtleEgg singleTurtleEgg = (TurtleEgg) Material.TURTLE_EGG.createBlockData(); - singleTurtleEgg.setEggs(1); - singleTurtleEgg.setHatch(0); - addPixel(singleTurtleEgg, 4, 0, 3, 9, 7, 9, createItem("LAUFBAU_BLOCK_TURTLE_EGG", Material.TURTLE_EGG, "LAUFBAU_COUNT_1")); - - TurtleEgg doubleTurtleEgg = (TurtleEgg) Material.TURTLE_EGG.createBlockData(); - doubleTurtleEgg.setEggs(2); - doubleTurtleEgg.setHatch(0); - addPixel(doubleTurtleEgg, 1, 0, 1, 14, 7, 14, createItem("LAUFBAU_BLOCK_TURTLE_EGG", Material.TURTLE_EGG, "LAUFBAU_COUNT_2")); - - addPixel(Material.CHEST.createBlockData(), 1, 0, 1, 14, 14, 14, createItem("LAUFBAU_BLOCK_CHEST", Material.CHEST)); - - Snow snowLayers8 = (Snow) Material.SNOW.createBlockData(); - snowLayers8.setLayers(8); - addPixel(snowLayers8, 0, 0, 0, 16, 14, 16, createItem("LAUFBAU_BLOCK_SNOW", Material.SNOW, "LAUFBAU_LAYERS_8")); - - Directional headNorth = (Directional) Material.PLAYER_WALL_HEAD.createBlockData(); - headNorth.setFacing(BlockFace.NORTH); - addPixel(headNorth, 4, 4, 8, 8, 8, 8, createItem("LAUFBAU_BLOCK_PLAYER_WALL_HEAD", Material.PLAYER_HEAD, "LAUFBAU_FACING_NORTH"), BlockBoundingBox::randomPlayerHead); - - Directional headSouth = (Directional) Material.PLAYER_WALL_HEAD.createBlockData(); - headSouth.setFacing(BlockFace.SOUTH); - addPixel(headSouth, 4, 4, 0, 8, 8, 8, createItem("LAUFBAU_BLOCK_PLAYER_WALL_HEAD", Material.PLAYER_HEAD, "LAUFBAU_FACING_SOUTH"), BlockBoundingBox::randomPlayerHead); - - Directional headWest = (Directional) Material.PLAYER_WALL_HEAD.createBlockData(); - headWest.setFacing(BlockFace.WEST); - addPixel(headWest, 8, 4, 4, 8, 8, 8, createItem("LAUFBAU_BLOCK_PLAYER_WALL_HEAD", Material.PLAYER_HEAD, "LAUFBAU_FACING_WEST"), BlockBoundingBox::randomPlayerHead); - - Directional headEast = (Directional) Material.PLAYER_WALL_HEAD.createBlockData(); - headEast.setFacing(BlockFace.EAST); - addPixel(headEast, 0, 4, 4, 8, 8, 8, createItem("LAUFBAU_BLOCK_PLAYER_WALL_HEAD", Material.PLAYER_HEAD, "LAUFBAU_FACING_EAST"), BlockBoundingBox::randomPlayerHead); - - Snow snowLayers7 = (Snow) Material.SNOW.createBlockData(); - snowLayers7.setLayers(7); - addPixel(snowLayers7, 0, 0, 0, 16, 12, 16, createItem("LAUFBAU_BLOCK_SNOW", Material.SNOW, "LAUFBAU_LAYERS_7")); - - Snow snowLayers6 = (Snow) Material.SNOW.createBlockData(); - snowLayers6.setLayers(6); - addPixel(snowLayers6, 0, 0, 0, 16, 10, 16, createItem("LAUFBAU_BLOCK_SNOW", Material.SNOW, "LAUFBAU_LAYERS_6")); - - addPixel(Material.STONECUTTER.createBlockData(), 0, 0, 0, 16, 9, 16, createItem("LAUFBAU_BLOCK_STONECUTTER", Material.STONECUTTER)); - - addPixel(Material.PLAYER_HEAD.createBlockData(), 4, 0, 4, 8, 8, 8, createItem("LAUFBAU_BLOCK_PLAYER_HEAD", Material.PLAYER_HEAD), BlockBoundingBox::randomPlayerHead); - - addPixel(Material.CAKE.createBlockData(), 1, 0, 1, 14, 8, 14, createItem("LAUFBAU_BLOCK_CAKE", Material.CAKE)); - - Slab bottomSlab = (Slab) Material.END_STONE_BRICK_SLAB.createBlockData(); - bottomSlab.setType(Slab.Type.BOTTOM); - addPixel(bottomSlab, 0, 0, 0, 16, 8, 16, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_SLAB", Material.END_STONE_BRICK_SLAB, "LAUFBAU_TYPE_BOTTOM")); - - Slab topSlab = (Slab) Material.END_STONE_BRICK_SLAB.createBlockData(); - topSlab.setType(Slab.Type.TOP); - addPixel(topSlab, 0, 8, 0, 16, 8, 16, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_SLAB", Material.END_STONE_BRICK_SLAB, "LAUFBAU_TYPE_TOP")); - - SeaPickle quadSeaPickle = (SeaPickle) Material.SEA_PICKLE.createBlockData(); - quadSeaPickle.setWaterlogged(false); - quadSeaPickle.setPickles(4); - addPixel(quadSeaPickle, 2, 0, 2, 12, 7, 12, createItem("LAUFBAU_BLOCK_SEA_PICKLE", Material.SEA_PICKLE, "LAUFBAU_COUNT_4")); - - Campfire campfire = (Campfire) Material.CAMPFIRE.createBlockData(); - campfire.setSignalFire(false); - campfire.setLit(false); - addPixel(campfire, 0, 0, 0, 16, 7, 16, createItem("LAUFBAU_BLOCK_CAMPFIRE", Material.CAMPFIRE)); - - SeaPickle trippleSeaPickle = (SeaPickle) Material.SEA_PICKLE.createBlockData(); - trippleSeaPickle.setWaterlogged(false); - trippleSeaPickle.setPickles(3); - addPixel(trippleSeaPickle, 2, 0, 2, 12, 6, 12, createItem("LAUFBAU_BLOCK_SEA_PICKLE", Material.SEA_PICKLE, "LAUFBAU_COUNT_3")); - - SeaPickle doubleSeaPickle = (SeaPickle) Material.SEA_PICKLE.createBlockData(); - doubleSeaPickle.setWaterlogged(false); - doubleSeaPickle.setPickles(2); - addPixel(doubleSeaPickle, 3, 0, 3, 10, 6, 10, createItem("LAUFBAU_BLOCK_SEA_PICKLE", Material.SEA_PICKLE, "LAUFBAU_COUNT_2")); - - SeaPickle singleSeaPickle = (SeaPickle) Material.SEA_PICKLE.createBlockData(); - singleSeaPickle.setWaterlogged(false); - singleSeaPickle.setPickles(1); - addPixel(singleSeaPickle, 6, 0, 6, 4, 6, 4, createItem("LAUFBAU_BLOCK_SEA_PICKLE", Material.SEA_PICKLE, "LAUFBAU_COUNT_1")); - - addPixel(Material.FLOWER_POT.createBlockData(), 5, 0, 5, 6, 6, 6, createItem("LAUFBAU_BLOCK_FLOWER_POT", Material.FLOWER_POT)); - - Snow snowLayers3 = (Snow) Material.SNOW.createBlockData(); - snowLayers3.setLayers(3); - addPixel(snowLayers3, 0, 0, 0, 16, 4, 16, createItem("LAUFBAU_BLOCK_SNOW", Material.SNOW, "LAUFBAU_LAYERS_3")); - - TrapDoor bottomTrapDoor = (TrapDoor) Material.IRON_TRAPDOOR.createBlockData(); - bottomTrapDoor.setHalf(Bisected.Half.BOTTOM); - addPixel(bottomTrapDoor, 0, 0, 0, 16, 3, 16, createItem("LAUFBAU_BLOCK_IRON_TRAPDOOR", Material.IRON_TRAPDOOR, "LAUFBAU_HALF_BOTTOM")); - - TrapDoor topTrapDoor = (TrapDoor) Material.IRON_TRAPDOOR.createBlockData(); - topTrapDoor.setHalf(Bisected.Half.TOP); - addPixel(topTrapDoor, 0, 13, 0, 16, 3, 16, createItem("LAUFBAU_BLOCK_IRON_TRAPDOOR", Material.IRON_TRAPDOOR, "LAUFBAU_HALF_TOP")); - - Snow snowLayers2 = (Snow) Material.SNOW.createBlockData(); - snowLayers2.setLayers(2); - addPixel(snowLayers2, 0, 0, 0, 16, 2, 16, createItem("LAUFBAU_BLOCK_SNOW", Material.SNOW, "LAUFBAU_LAYERS_2")); - - addPixel(Material.LILY_PAD.createBlockData(), 1, 0, 1, 14, 1.5, 14, createItem("LAUFBAU_BLOCK_LILY_PAD", Material.LILY_PAD)); - addPixel(Material.WHITE_CARPET.createBlockData(), 0, 0, 0, 16, 1, 16, createItem("LAUFBAU_BLOCK_WHITE_CARPET", Material.WHITE_CARPET)); - - Directional endRodBottomTop = (Directional) Material.END_ROD.createBlockData(); - endRodBottomTop.setFacing(BlockFace.UP); - addPixel(endRodBottomTop, 6, 0, 6, 4, 16, 4, createItem("LAUFBAU_BLOCK_END_ROD", Material.END_ROD, "LAUFBAU_FACING_UP", "LAUFBAU_FACING_DOWN")); - - Directional endRodNorthSouth = (Directional) Material.END_ROD.createBlockData(); - endRodNorthSouth.setFacing(BlockFace.NORTH); - addPixel(endRodNorthSouth, 6, 6, 0, 4, 4, 16, createItem("LAUFBAU_BLOCK_END_ROD", Material.END_ROD, "LAUFBAU_FACING_NORTH", "LAUFBAU_FACING_SOUTH")); - - Directional endRodEastWest = (Directional) Material.END_ROD.createBlockData(); - endRodEastWest.setFacing(BlockFace.EAST); - addPixel(endRodEastWest, 0, 6, 6, 16, 4, 4, createItem("LAUFBAU_BLOCK_END_ROD", Material.END_ROD, "LAUFBAU_FACING_EAST", "LAUFBAU_FACING_WEST")); - - Directional lightningRodBottomTop = (Directional) Material.LIGHTNING_ROD.createBlockData(); - lightningRodBottomTop.setFacing(BlockFace.UP); - addPixel(lightningRodBottomTop, 6, 0, 6, 4, 16, 4, createItem("LAUFBAU_BLOCK_LIGHTNING_ROD", Material.LIGHTNING_ROD, "LAUFBAU_FACING_UP", "LAUFBAU_FACING_DOWN")); - - Directional lightningRodNorthSouth = (Directional) Material.LIGHTNING_ROD.createBlockData(); - lightningRodNorthSouth.setFacing(BlockFace.NORTH); - addPixel(lightningRodNorthSouth, 6, 6, 0, 4, 4, 16, createItem("LAUFBAU_BLOCK_LIGHTNING_ROD", Material.LIGHTNING_ROD, "LAUFBAU_FACING_NORTH", "LAUFBAU_FACING_SOUTH")); - - Directional lightningRodEastWest = (Directional) Material.LIGHTNING_ROD.createBlockData(); - lightningRodEastWest.setFacing(BlockFace.EAST); - addPixel(lightningRodEastWest, 0, 6, 6, 16, 4, 4, createItem("LAUFBAU_BLOCK_LIGHTNING_ROD", Material.LIGHTNING_ROD, "LAUFBAU_FACING_EAST", "LAUFBAU_FACING_WEST")); - - Waterlogged conduit = (Waterlogged) Material.CONDUIT.createBlockData(); - conduit.setWaterlogged(false); - addPixel(conduit, 5, 5, 5, 6, 6, 6, createItem("LAUFBAU_BLOCK_CONDUIT", Material.CONDUIT)); - - TrapDoor northTrapDoor = (TrapDoor) Material.IRON_TRAPDOOR.createBlockData(); - northTrapDoor.setFacing(BlockFace.NORTH); - northTrapDoor.setOpen(true); - addPixel(northTrapDoor, 0, 0, 13, 16, 16, 3, createItem("LAUFBAU_BLOCK_IRON_TRAPDOOR", Material.IRON_TRAPDOOR, "LAUFBAU_FACING_NORTH", "LAUFBAU_OPEN")); - - TrapDoor southTrapDoor = (TrapDoor) Material.IRON_TRAPDOOR.createBlockData(); - southTrapDoor.setFacing(BlockFace.SOUTH); - southTrapDoor.setOpen(true); - addPixel(southTrapDoor, 0, 0, 0, 16, 16, 3, createItem("LAUFBAU_BLOCK_IRON_TRAPDOOR", Material.IRON_TRAPDOOR, "LAUFBAU_FACING_SOUTH", "LAUFBAU_OPEN")); - - TrapDoor westTrapDoor = (TrapDoor) Material.IRON_TRAPDOOR.createBlockData(); - westTrapDoor.setFacing(BlockFace.WEST); - westTrapDoor.setOpen(true); - addPixel(westTrapDoor, 13, 0, 0, 3, 16, 16, createItem("LAUFBAU_BLOCK_IRON_TRAPDOOR", Material.IRON_TRAPDOOR, "LAUFBAU_FACING_WEST", "LAUFBAU_OPEN")); - - TrapDoor eastTrapDoor = (TrapDoor) Material.IRON_TRAPDOOR.createBlockData(); - eastTrapDoor.setFacing(BlockFace.EAST); - eastTrapDoor.setOpen(true); - addPixel(eastTrapDoor, 0, 0, 0, 3, 16, 16, createItem("LAUFBAU_BLOCK_IRON_TRAPDOOR", Material.IRON_TRAPDOOR, "LAUFBAU_FACING_EAST", "LAUFBAU_OPEN")); - } - - private static void addPixel(BlockData blockData, double xPixel, double yPixel, double zPixel, double dxPixel, double dyPixel, double dzPixel, SWItem swItem) { - new BlockBoundingBox(blockData, Arrays.asList(pixelCuboid(xPixel, yPixel, zPixel, dxPixel, dyPixel, dzPixel)), swItem); - } - - private static void addPixel(BlockData blockData, double xPixel, double yPixel, double zPixel, double dxPixel, double dyPixel, double dzPixel, SWItem swItem, Consumer blockConsumer) { - new BlockBoundingBox(blockData, Arrays.asList(pixelCuboid(xPixel, yPixel, zPixel, dxPixel, dyPixel, dzPixel)), swItem, blockConsumer); - } - - @SuppressWarnings("deprecation") - private static void randomPlayerHead(BaseBlock block) { - if (block instanceof SkullBlock) { - SkullBlock skullBlock = (SkullBlock) block; - skullBlock.setOwner(randomPlayerHead.get(random.nextInt(randomPlayerHead.size())).toString()); - } - } } diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/BoundingBoxLoader.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/BoundingBoxLoader.java deleted file mode 100644 index 899c951c..00000000 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/BoundingBoxLoader.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * This file is a part of the SteamWar software. - * - * Copyright (C) 2025 SteamWar.de-Serverteam - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package de.steamwar.bausystem.features.slaves.laufbau; - -public interface BoundingBoxLoader { - - void load(); -} diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/Cuboid.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/Cuboid.java index ec959a69..877fef60 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/Cuboid.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/Cuboid.java @@ -22,6 +22,7 @@ package de.steamwar.bausystem.features.slaves.laufbau; import de.steamwar.bausystem.region.Point; import lombok.AllArgsConstructor; import lombok.Data; +import org.bukkit.util.BoundingBox; @Data @AllArgsConstructor @@ -33,6 +34,15 @@ public class Cuboid { private double dy; private double dz; + public Cuboid(BoundingBox boundingBox) { + this.x = boundingBox.getMinX(); + this.y = boundingBox.getMinY(); + this.z = boundingBox.getMinZ(); + this.dx = boundingBox.getWidthX(); + this.dy = boundingBox.getHeight(); + this.dz = boundingBox.getWidthZ(); + } + public boolean intersects(Cuboid cuboid) { double minx = x - cuboid.dx; double miny = y - cuboid.dy; diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/LaufbauCommand.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/LaufbauCommand.java index 9c568a56..3254522c 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/LaufbauCommand.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/LaufbauCommand.java @@ -24,15 +24,52 @@ import de.steamwar.bausystem.SWUtils; import de.steamwar.bausystem.shared.Pair; import de.steamwar.bausystem.utils.WorldEditUtils; import de.steamwar.command.SWCommand; +import de.steamwar.inventory.SWItem; import de.steamwar.linkage.Linked; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.EmptyBlockGetter; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.phys.shapes.CollisionContext; import org.bukkit.Bukkit; import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Registry; +import org.bukkit.craftbukkit.block.CraftBlockType; +import org.bukkit.craftbukkit.block.data.CraftBlockData; +import org.bukkit.craftbukkit.util.CraftVoxelShape; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; +import org.bukkit.util.VoxelShape; + +import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.AtomicReference; +import java.util.stream.Collectors; @Linked public class LaufbauCommand extends SWCommand { + static { + AtomicLong counter = new AtomicLong(); + AtomicReference shape = new AtomicReference<>(); + long time = System.currentTimeMillis(); + Registry.BLOCK.forEach(blockType -> { + Block block = CraftBlockType.bukkitToMinecraftNew(blockType); + block.getStateDefinition().getPossibleStates().forEach(blockState -> { + VoxelShape voxelShape = new CraftVoxelShape(blockState.getCollisionShape(EmptyBlockGetter.INSTANCE, BlockPos.ZERO, CollisionContext.empty())); + shape.set(voxelShape); + Material material = blockType.asMaterial(); + if (!material.isItem()) return; + new BlockBoundingBox( + CraftBlockData.createData(blockState), + voxelShape.getBoundingBoxes().stream().map(Cuboid::new).collect(Collectors.toList()), + new SWItem(material, "Item") + ); + counter.incrementAndGet(); + }); + }); + System.out.println(System.currentTimeMillis() - time + "ms " + shape.get() + " " + counter.get()); + } + public LaufbauCommand() { super("laufbau", "laufsklave"); } diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/AmethystBoundingBox.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/AmethystBoundingBox.java deleted file mode 100644 index d7aab7b2..00000000 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/AmethystBoundingBox.java +++ /dev/null @@ -1,261 +0,0 @@ -/* - * This file is a part of the SteamWar software. - * - * Copyright (C) 2025 SteamWar.de-Serverteam - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package de.steamwar.bausystem.features.slaves.laufbau.boundingboxes; - -import de.steamwar.bausystem.features.slaves.laufbau.BlockBoundingBox; -import de.steamwar.bausystem.features.slaves.laufbau.BoundingBoxLoader; -import de.steamwar.bausystem.features.slaves.laufbau.Cuboid; -import de.steamwar.linkage.Linked; -import org.bukkit.Material; -import org.bukkit.block.BlockFace; -import org.bukkit.block.data.type.AmethystCluster; - -import java.util.ArrayList; -import java.util.List; - -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.createItem; -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.pixelCuboid; - -@Linked -public class AmethystBoundingBox implements BoundingBoxLoader { - - @Override - public void load() { - floorSmallAmethystBud(); - ceilingSmallAmethystBud(); - northSmallAmethystBud(); - southSmallAmethystBud(); - eastSmallAmethystBud(); - westSmallAmethystBud(); - - floorMediumAmethystBud(); - ceilingMediumAmethystBud(); - northMediumAmethystBud(); - southMediumAmethystBud(); - eastMediumAmethystBud(); - westMediumAmethystBud(); - - floorLargeAmethystBud(); - ceilingLargeAmethystBud(); - northLargeAmethystBud(); - southLargeAmethystBud(); - eastLargeAmethystBud(); - westLargeAmethystBud(); - - floorAmethystCluster(); - ceilingAmethystCluster(); - northAmethystCluster(); - southAmethystCluster(); - eastAmethystCluster(); - westAmethystCluster(); - } - - private void floorSmallAmethystBud() { - AmethystCluster cluster = (AmethystCluster) Material.SMALL_AMETHYST_BUD.createBlockData(); - cluster.setFacing(BlockFace.UP); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(4, 0, 4, 8, 3, 8)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_SMALL_AMETHYST_BUD", Material.SMALL_AMETHYST_BUD, "LAUFBAU_FACING_UP")); - } - - private void ceilingSmallAmethystBud() { - AmethystCluster cluster = (AmethystCluster) Material.SMALL_AMETHYST_BUD.createBlockData(); - cluster.setFacing(BlockFace.DOWN); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(4, 13, 4, 8, 3, 8)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_SMALL_AMETHYST_BUD", Material.SMALL_AMETHYST_BUD, "LAUFBAU_FACING_DOWN")); - } - - private void northSmallAmethystBud() { - AmethystCluster cluster = (AmethystCluster) Material.SMALL_AMETHYST_BUD.createBlockData(); - cluster.setFacing(BlockFace.NORTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(4, 4, 13, 8, 8, 3)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_SMALL_AMETHYST_BUD", Material.SMALL_AMETHYST_BUD, "LAUFBAU_FACING_NORTH")); - } - - private void southSmallAmethystBud() { - AmethystCluster cluster = (AmethystCluster) Material.SMALL_AMETHYST_BUD.createBlockData(); - cluster.setFacing(BlockFace.SOUTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(4, 4, 0, 8, 8, 3)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_SMALL_AMETHYST_BUD", Material.SMALL_AMETHYST_BUD, "LAUFBAU_FACING_SOUTH")); - } - - private void eastSmallAmethystBud() { - AmethystCluster cluster = (AmethystCluster) Material.SMALL_AMETHYST_BUD.createBlockData(); - cluster.setFacing(BlockFace.EAST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 4, 4, 3, 8, 8)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_SMALL_AMETHYST_BUD", Material.SMALL_AMETHYST_BUD, "LAUFBAU_FACING_EAST")); - } - - private void westSmallAmethystBud() { - AmethystCluster cluster = (AmethystCluster) Material.SMALL_AMETHYST_BUD.createBlockData(); - cluster.setFacing(BlockFace.WEST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(13, 4, 4, 3, 8, 8)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_SMALL_AMETHYST_BUD", Material.SMALL_AMETHYST_BUD, "LAUFBAU_FACING_WEST")); - } - - private void floorMediumAmethystBud() { - AmethystCluster cluster = (AmethystCluster) Material.MEDIUM_AMETHYST_BUD.createBlockData(); - cluster.setFacing(BlockFace.UP); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(3, 0, 3, 10, 4, 10)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_MEDIUM_AMETHYST_BUD", Material.MEDIUM_AMETHYST_BUD, "LAUFBAU_FACING_UP")); - } - - private void ceilingMediumAmethystBud() { - AmethystCluster cluster = (AmethystCluster) Material.MEDIUM_AMETHYST_BUD.createBlockData(); - cluster.setFacing(BlockFace.DOWN); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(3, 12, 3, 10, 4, 10)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_MEDIUM_AMETHYST_BUD", Material.MEDIUM_AMETHYST_BUD, "LAUFBAU_FACING_DOWN")); - } - - private void northMediumAmethystBud() { - AmethystCluster cluster = (AmethystCluster) Material.MEDIUM_AMETHYST_BUD.createBlockData(); - cluster.setFacing(BlockFace.NORTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(3, 3, 12, 10, 10, 4)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_MEDIUM_AMETHYST_BUD", Material.MEDIUM_AMETHYST_BUD, "LAUFBAU_FACING_NORTH")); - } - - private void southMediumAmethystBud() { - AmethystCluster cluster = (AmethystCluster) Material.MEDIUM_AMETHYST_BUD.createBlockData(); - cluster.setFacing(BlockFace.SOUTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(3, 3, 0, 10, 10, 4)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_MEDIUM_AMETHYST_BUD", Material.MEDIUM_AMETHYST_BUD, "LAUFBAU_FACING_SOUTH")); - } - - private void eastMediumAmethystBud() { - AmethystCluster cluster = (AmethystCluster) Material.MEDIUM_AMETHYST_BUD.createBlockData(); - cluster.setFacing(BlockFace.EAST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 3, 3, 4, 10, 10)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_MEDIUM_AMETHYST_BUD", Material.MEDIUM_AMETHYST_BUD, "LAUFBAU_FACING_EAST")); - } - - private void westMediumAmethystBud() { - AmethystCluster cluster = (AmethystCluster) Material.MEDIUM_AMETHYST_BUD.createBlockData(); - cluster.setFacing(BlockFace.WEST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(12, 3, 3, 4, 10, 10)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_MEDIUM_AMETHYST_BUD", Material.MEDIUM_AMETHYST_BUD, "LAUFBAU_FACING_WEST")); - } - - private void floorLargeAmethystBud() { - AmethystCluster cluster = (AmethystCluster) Material.LARGE_AMETHYST_BUD.createBlockData(); - cluster.setFacing(BlockFace.UP); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(3, 0, 3, 10, 5, 10)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_LARGE_AMETHYST_BUD", Material.LARGE_AMETHYST_BUD, "LAUFBAU_FACING_UP")); - } - - private void ceilingLargeAmethystBud() { - AmethystCluster cluster = (AmethystCluster) Material.LARGE_AMETHYST_BUD.createBlockData(); - cluster.setFacing(BlockFace.DOWN); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(3, 11, 3, 10, 5, 10)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_LARGE_AMETHYST_BUD", Material.LARGE_AMETHYST_BUD, "LAUFBAU_FACING_DOWN")); - } - - private void northLargeAmethystBud() { - AmethystCluster cluster = (AmethystCluster) Material.LARGE_AMETHYST_BUD.createBlockData(); - cluster.setFacing(BlockFace.NORTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(3, 3, 11, 10, 10, 5)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_LARGE_AMETHYST_BUD", Material.LARGE_AMETHYST_BUD, "LAUFBAU_FACING_NORTH")); - } - - private void southLargeAmethystBud() { - AmethystCluster cluster = (AmethystCluster) Material.LARGE_AMETHYST_BUD.createBlockData(); - cluster.setFacing(BlockFace.SOUTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(3, 3, 0, 10, 10, 5)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_LARGE_AMETHYST_BUD", Material.LARGE_AMETHYST_BUD, "LAUFBAU_FACING_SOUTH")); - } - - private void eastLargeAmethystBud() { - AmethystCluster cluster = (AmethystCluster) Material.LARGE_AMETHYST_BUD.createBlockData(); - cluster.setFacing(BlockFace.EAST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 3, 3, 5, 10, 10)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_LARGE_AMETHYST_BUD", Material.LARGE_AMETHYST_BUD, "LAUFBAU_FACING_EAST")); - } - - private void westLargeAmethystBud() { - AmethystCluster cluster = (AmethystCluster) Material.LARGE_AMETHYST_BUD.createBlockData(); - cluster.setFacing(BlockFace.WEST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(11, 3, 3, 5, 10, 10)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_LARGE_AMETHYST_BUD", Material.LARGE_AMETHYST_BUD, "LAUFBAU_FACING_WEST")); - } - - private void floorAmethystCluster() { - AmethystCluster cluster = (AmethystCluster) Material.AMETHYST_CLUSTER.createBlockData(); - cluster.setFacing(BlockFace.UP); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(3, 0, 3, 10, 7, 10)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_AMETHYST_CLUSTER", Material.AMETHYST_CLUSTER, "LAUFBAU_FACING_UP")); - } - - private void ceilingAmethystCluster() { - AmethystCluster cluster = (AmethystCluster) Material.AMETHYST_CLUSTER.createBlockData(); - cluster.setFacing(BlockFace.DOWN); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(3, 9, 3, 10, 7, 10)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_AMETHYST_CLUSTER", Material.AMETHYST_CLUSTER, "LAUFBAU_FACING_DOWN")); - } - - private void northAmethystCluster() { - AmethystCluster cluster = (AmethystCluster) Material.AMETHYST_CLUSTER.createBlockData(); - cluster.setFacing(BlockFace.NORTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(3, 3, 9, 10, 10, 7)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_AMETHYST_CLUSTER", Material.AMETHYST_CLUSTER, "LAUFBAU_FACING_NORTH")); - } - - private void southAmethystCluster() { - AmethystCluster cluster = (AmethystCluster) Material.AMETHYST_CLUSTER.createBlockData(); - cluster.setFacing(BlockFace.SOUTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(3, 3, 0, 10, 10, 7)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_AMETHYST_CLUSTER", Material.AMETHYST_CLUSTER, "LAUFBAU_FACING_SOUTH")); - } - - private void eastAmethystCluster() { - AmethystCluster cluster = (AmethystCluster) Material.AMETHYST_CLUSTER.createBlockData(); - cluster.setFacing(BlockFace.EAST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 3, 3, 7, 10, 10)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_AMETHYST_CLUSTER", Material.AMETHYST_CLUSTER, "LAUFBAU_FACING_EAST")); - } - - private void westAmethystCluster() { - AmethystCluster cluster = (AmethystCluster) Material.AMETHYST_CLUSTER.createBlockData(); - cluster.setFacing(BlockFace.WEST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(9, 3, 3, 7, 10, 10)); - new BlockBoundingBox(cluster, cuboidList, createItem("LAUFBAU_BLOCK_AMETHYST_CLUSTER", Material.AMETHYST_CLUSTER, "LAUFBAU_FACING_WEST")); - } -} diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/AzaleaBoundingBox.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/AzaleaBoundingBox.java deleted file mode 100644 index cc2368e7..00000000 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/AzaleaBoundingBox.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * This file is a part of the SteamWar software. - * - * Copyright (C) 2025 SteamWar.de-Serverteam - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package de.steamwar.bausystem.features.slaves.laufbau.boundingboxes; - -import de.steamwar.bausystem.features.slaves.laufbau.BlockBoundingBox; -import de.steamwar.bausystem.features.slaves.laufbau.BoundingBoxLoader; -import de.steamwar.bausystem.features.slaves.laufbau.Cuboid; -import de.steamwar.linkage.Linked; -import org.bukkit.Material; -import org.bukkit.block.data.BlockData; - -import java.util.ArrayList; -import java.util.List; - -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.createItem; -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.pixelCuboid; - -@Linked -public class AzaleaBoundingBox implements BoundingBoxLoader { - - @Override - public void load() { - BlockData blockData = Material.FLOWERING_AZALEA.createBlockData(); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 8, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(6, 0, 6, 4, 8, 4)); - new BlockBoundingBox(blockData, cuboidList, createItem("LAUFBAU_BLOCK_AZALEA", Material.FLOWERING_AZALEA)); - } -} diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/BellBoundingBox.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/BellBoundingBox.java deleted file mode 100644 index eb202645..00000000 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/BellBoundingBox.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - * This file is a part of the SteamWar software. - * - * Copyright (C) 2025 SteamWar.de-Serverteam - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package de.steamwar.bausystem.features.slaves.laufbau.boundingboxes; - -import de.steamwar.bausystem.features.slaves.laufbau.BlockBoundingBox; -import de.steamwar.bausystem.features.slaves.laufbau.BoundingBoxLoader; -import de.steamwar.bausystem.features.slaves.laufbau.Cuboid; -import de.steamwar.linkage.Linked; -import org.bukkit.Material; -import org.bukkit.block.BlockFace; -import org.bukkit.block.data.type.Bell; - -import java.util.ArrayList; -import java.util.List; - -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.createItem; -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.pixelCuboid; - -@Linked -public class BellBoundingBox implements BoundingBoxLoader { - - @Override - public void load() { - ceilingBell(); - - floorNorthBell(); - floorEastBell(); - - doubleWallNorthBell(); - doubleWallEastBell(); - - singleWallNorthBell(); - singleWallSouthBell(); - singleWallEastBell(); - singleWallWestBell(); - } - - public void ceilingBell() { - Bell bell = (Bell) Material.BELL.createBlockData(); - bell.setAttachment(Bell.Attachment.CEILING); - bell.setFacing(BlockFace.NORTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(4, 4, 4, 8, 2, 8)); - cuboidList.add(pixelCuboid(5, 6, 5, 6, 8, 6)); - cuboidList.add(pixelCuboid(7, 13, 7, 2, 3, 2)); - new BlockBoundingBox(bell, cuboidList, createItem("LAUFBAU_BLOCK_BELL", Material.BELL, "LAUFBAU_ATTACHMENT_CEILING")); - } - - public void floorNorthBell() { - Bell bell = (Bell) Material.BELL.createBlockData(); - bell.setAttachment(Bell.Attachment.FLOOR); - bell.setFacing(BlockFace.NORTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 0, 4, 16, 16, 8)); - new BlockBoundingBox(bell, cuboidList, createItem("LAUFBAU_BLOCK_BELL", Material.BELL, "LAUFBAU_ATTACHMENT_FLOOR", "LAUFBAU_FACING_NORTH", "LAUFBAU_FACING_SOUTH")); - } - - public void floorEastBell() { - Bell bell = (Bell) Material.BELL.createBlockData(); - bell.setAttachment(Bell.Attachment.FLOOR); - bell.setFacing(BlockFace.EAST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(4, 0, 0, 8, 16, 16)); - new BlockBoundingBox(bell, cuboidList, createItem("LAUFBAU_BLOCK_BELL", Material.BELL, "LAUFBAU_ATTACHMENT_FLOOR", "LAUFBAU_FACING_EAST", "LAUFBAU_FACING_WEST")); - } - - public void doubleWallNorthBell() { - Bell bell = (Bell) Material.BELL.createBlockData(); - bell.setAttachment(Bell.Attachment.DOUBLE_WALL); - bell.setFacing(BlockFace.NORTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(4, 4, 4, 8, 2, 8)); - cuboidList.add(pixelCuboid(5, 6, 5, 6, 8, 6)); - cuboidList.add(pixelCuboid(7, 13, 0, 2, 2, 16)); - new BlockBoundingBox(bell, cuboidList, createItem("LAUFBAU_BLOCK_BELL", Material.BELL, "LAUFBAU_ATTACHMENT_DOUBLE_WALL", "LAUFBAU_FACING_NORTH")); - } - - public void doubleWallEastBell() { - Bell bell = (Bell) Material.BELL.createBlockData(); - bell.setAttachment(Bell.Attachment.DOUBLE_WALL); - bell.setFacing(BlockFace.EAST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(4, 4, 4, 8, 2, 8)); - cuboidList.add(pixelCuboid(5, 6, 5, 6, 8, 6)); - cuboidList.add(pixelCuboid(0, 13, 7, 16, 2, 2)); - new BlockBoundingBox(bell, cuboidList, createItem("LAUFBAU_BLOCK_BELL", Material.BELL, "LAUFBAU_ATTACHMENT_DOUBLE_WALL", "LAUFBAU_FACING_EAST")); - } - - public void singleWallNorthBell() { - Bell bell = (Bell) Material.BELL.createBlockData(); - bell.setAttachment(Bell.Attachment.SINGLE_WALL); - bell.setFacing(BlockFace.NORTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(4, 4, 4, 8, 2, 8)); - cuboidList.add(pixelCuboid(5, 6, 5, 6, 8, 6)); - cuboidList.add(pixelCuboid(7, 13, 0, 2, 2, 13)); - new BlockBoundingBox(bell, cuboidList, createItem("LAUFBAU_BLOCK_BELL", Material.BELL, "LAUFBAU_ATTACHMENT_SINGLE_WALL", "LAUFBAU_FACING_NORTH")); - } - - public void singleWallSouthBell() { - Bell bell = (Bell) Material.BELL.createBlockData(); - bell.setAttachment(Bell.Attachment.SINGLE_WALL); - bell.setFacing(BlockFace.SOUTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(4, 4, 4, 8, 2, 8)); - cuboidList.add(pixelCuboid(5, 6, 5, 6, 8, 6)); - cuboidList.add(pixelCuboid(7, 13, 3, 2, 2, 13)); - new BlockBoundingBox(bell, cuboidList, createItem("LAUFBAU_BLOCK_BELL", Material.BELL, "LAUFBAU_ATTACHMENT_SINGLE_WALL", "LAUFBAU_FACING_SOUTH")); - } - - public void singleWallEastBell() { - Bell bell = (Bell) Material.BELL.createBlockData(); - bell.setAttachment(Bell.Attachment.SINGLE_WALL); - bell.setFacing(BlockFace.EAST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(4, 4, 4, 8, 2, 8)); - cuboidList.add(pixelCuboid(5, 6, 5, 6, 8, 6)); - cuboidList.add(pixelCuboid(3, 13, 7, 13, 2, 2)); - new BlockBoundingBox(bell, cuboidList, createItem("LAUFBAU_BLOCK_BELL", Material.BELL, "LAUFBAU_ATTACHMENT_SINGLE_WALL", "LAUFBAU_FACING_EAST")); - } - - public void singleWallWestBell() { - Bell bell = (Bell) Material.BELL.createBlockData(); - bell.setAttachment(Bell.Attachment.SINGLE_WALL); - bell.setFacing(BlockFace.WEST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(4, 4, 4, 8, 2, 8)); - cuboidList.add(pixelCuboid(5, 6, 5, 6, 8, 6)); - cuboidList.add(pixelCuboid(0, 13, 7, 13, 2, 2)); - new BlockBoundingBox(bell, cuboidList, createItem("LAUFBAU_BLOCK_BELL", Material.BELL, "LAUFBAU_ATTACHMENT_SINGLE_WALL", "LAUFBAU_FACING_WEST")); - } -} diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/BrewingStandBoundingBox.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/BrewingStandBoundingBox.java deleted file mode 100644 index 8e42712a..00000000 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/BrewingStandBoundingBox.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * This file is a part of the SteamWar software. - * - * Copyright (C) 2025 SteamWar.de-Serverteam - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package de.steamwar.bausystem.features.slaves.laufbau.boundingboxes; - -import de.steamwar.bausystem.features.slaves.laufbau.BlockBoundingBox; -import de.steamwar.bausystem.features.slaves.laufbau.BoundingBoxLoader; -import de.steamwar.bausystem.features.slaves.laufbau.Cuboid; -import de.steamwar.linkage.Linked; -import org.bukkit.Material; -import org.bukkit.block.data.type.BrewingStand; - -import java.util.ArrayList; -import java.util.List; - -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.createItem; -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.pixelCuboid; - -@Linked -public class BrewingStandBoundingBox implements BoundingBoxLoader { - - @Override - public void load() { - BrewingStand brewingStand = (BrewingStand) Material.BREWING_STAND.createBlockData(); - List cuboids = new ArrayList<>(); - cuboids.add(pixelCuboid(1, 0, 1, 14, 2, 14)); - cuboids.add(pixelCuboid(7, 2, 7, 2, 12, 2)); - new BlockBoundingBox(brewingStand, cuboids, createItem("LAUFBAU_BLOCK_BREWING_STAND", Material.BREWING_STAND)); - } -} diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/CandleBoundingBox.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/CandleBoundingBox.java deleted file mode 100644 index e9916f6f..00000000 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/CandleBoundingBox.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * This file is a part of the SteamWar software. - * - * Copyright (C) 2025 SteamWar.de-Serverteam - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package de.steamwar.bausystem.features.slaves.laufbau.boundingboxes; - -import de.steamwar.bausystem.features.slaves.laufbau.BlockBoundingBox; -import de.steamwar.bausystem.features.slaves.laufbau.BoundingBoxLoader; -import de.steamwar.bausystem.features.slaves.laufbau.Cuboid; -import de.steamwar.linkage.Linked; -import org.bukkit.Material; -import org.bukkit.block.data.Lightable; -import org.bukkit.block.data.type.Candle; - -import java.util.ArrayList; -import java.util.List; - -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.createItem; -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.pixelCuboid; - -@Linked -public class CandleBoundingBox implements BoundingBoxLoader { - - @Override - public void load() { - caked(); - - single(); - } - - private void caked() { - Lightable candleCake = (Lightable) Material.CYAN_CANDLE_CAKE.createBlockData(); - candleCake.setLit(true); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 0, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(7, 8, 7, 2, 6, 2)); - new BlockBoundingBox(candleCake, cuboidList, createItem("LAUFBAU_BLOCK_CANDLE_CAKE", Material.CAKE)); - } - - private void single() { - Candle candle = (Candle) Material.CYAN_CANDLE.createBlockData(); - candle.setCandles(1); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(7, 0, 7, 2, 6, 2)); - new BlockBoundingBox(candle, cuboidList, createItem("LAUFBAU_BLOCK_CANDLE", Material.CYAN_CANDLE, "LAUFBAU_COUNT_1")); - } -} diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/ChainBoundingBox.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/ChainBoundingBox.java deleted file mode 100644 index 6d81b0e5..00000000 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/ChainBoundingBox.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * This file is a part of the SteamWar software. - * - * Copyright (C) 2025 SteamWar.de-Serverteam - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package de.steamwar.bausystem.features.slaves.laufbau.boundingboxes; - -import de.steamwar.bausystem.features.slaves.laufbau.BlockBoundingBox; -import de.steamwar.bausystem.features.slaves.laufbau.BoundingBoxLoader; -import de.steamwar.bausystem.features.slaves.laufbau.Cuboid; -import de.steamwar.linkage.Linked; -import org.bukkit.Axis; -import org.bukkit.Material; -import org.bukkit.block.data.Orientable; - -import java.util.ArrayList; -import java.util.List; - -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.createItem; -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.pixelCuboid; - -@Linked -public class ChainBoundingBox implements BoundingBoxLoader { - - @Override - public void load() { - bottomTopChain(); - northSouthChain(); - eastWestChain(); - } - - private void bottomTopChain() { - Orientable chainBottomTop = (Orientable) Material.CHAIN.createBlockData(); - chainBottomTop.setAxis(Axis.Y); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(6.5, 0, 6.5, 3, 16, 3)); - new BlockBoundingBox(chainBottomTop, cuboidList, createItem("LAUFBAU_BLOCK_CHAIN", Material.CHAIN, "LAUFBAU_FACING_UP", "LAUFBAU_FACING_DOWN")); - } - - private void northSouthChain() { - Orientable chainBottomTop = (Orientable) Material.CHAIN.createBlockData(); - chainBottomTop.setAxis(Axis.Z); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(6.5, 6.5, 0, 3, 3, 16)); - new BlockBoundingBox(chainBottomTop, cuboidList, createItem("LAUFBAU_BLOCK_CHAIN", Material.CHAIN, "LAUFBAU_FACING_NORTH", "LAUFBAU_FACING_SOUTH")); - } - - private void eastWestChain() { - Orientable chainBottomTop = (Orientable) Material.CHAIN.createBlockData(); - chainBottomTop.setAxis(Axis.X); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 6.5, 6.5, 16, 3, 3)); - new BlockBoundingBox(chainBottomTop, cuboidList, createItem("LAUFBAU_BLOCK_CHAIN", Material.CHAIN, "LAUFBAU_FACING_EAST", "LAUFBAU_FACING_WEST")); - } -} diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/ChorusPlantBoundingBox.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/ChorusPlantBoundingBox.java deleted file mode 100644 index e1ace28e..00000000 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/ChorusPlantBoundingBox.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * This file is a part of the SteamWar software. - * - * Copyright (C) 2025 SteamWar.de-Serverteam - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package de.steamwar.bausystem.features.slaves.laufbau.boundingboxes; - -import de.steamwar.bausystem.features.slaves.laufbau.BlockBoundingBox; -import de.steamwar.bausystem.features.slaves.laufbau.BoundingBoxLoader; -import de.steamwar.bausystem.features.slaves.laufbau.Cuboid; -import de.steamwar.linkage.Linked; -import org.bukkit.Material; -import org.bukkit.block.BlockFace; -import org.bukkit.block.data.MultipleFacing; - -import java.util.ArrayList; -import java.util.List; - -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.createItem; -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.pixelCuboid; - -@Linked -public class ChorusPlantBoundingBox implements BoundingBoxLoader { - - @Override - public void load() { - for (int nx = 0; nx < 2; nx++) { - for (int ny = 0; ny < 2; ny++) { - for (int nz = 0; nz < 2; nz++) { - for (int px = 0; px < 2; px++) { - for (int py = 0; py < 2; py++) { - for (int pz = 0; pz < 2; pz++) { - MultipleFacing chorusPlant = (MultipleFacing) Material.CHORUS_PLANT.createBlockData(); - List lore = new ArrayList<>(); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(3, 3, 3, 10, 10, 10)); - if (nx == 1) { - lore.add("LAUFBAU_CONNECTION_WEST"); - chorusPlant.setFace(BlockFace.WEST, true); - cuboidList.add(pixelCuboid(0, 3, 3, 3, 10, 10)); - } - if (ny == 1) { - lore.add("LAUFBAU_CONNECTION_DOWN"); - chorusPlant.setFace(BlockFace.DOWN, true); - cuboidList.add(pixelCuboid(3, 0, 3, 10, 3, 10)); - } - if (nz == 1) { - lore.add("LAUFBAU_CONNECTION_NORTH"); - chorusPlant.setFace(BlockFace.NORTH, true); - cuboidList.add(pixelCuboid(3, 3, 0, 10, 10, 3)); - } - if (px == 1) { - lore.add("LAUFBAU_CONNECTION_EAST"); - chorusPlant.setFace(BlockFace.EAST, true); - cuboidList.add(pixelCuboid(13, 3, 3, 3, 10, 10)); - } - if (py == 1) { - lore.add("LAUFBAU_CONNECTION_UP"); - chorusPlant.setFace(BlockFace.UP, true); - cuboidList.add(pixelCuboid(3, 13, 3, 10, 3, 10)); - } - if (pz == 1) { - lore.add("LAUFBAU_CONNECTION_SOUTH"); - chorusPlant.setFace(BlockFace.SOUTH, true); - cuboidList.add(pixelCuboid(3, 3, 13, 10, 10, 3)); - } - new BlockBoundingBox(chorusPlant, cuboidList, createItem("LAUFBAU_BLOCK_CHORUS_PLANT", Material.CHORUS_PLANT, lore.toArray(new String[0]))); - } - } - } - } - } - } - } -} diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/DragonEggBoundingBox.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/DragonEggBoundingBox.java deleted file mode 100644 index 19a709f5..00000000 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/DragonEggBoundingBox.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * This file is a part of the SteamWar software. - * - * Copyright (C) 2025 SteamWar.de-Serverteam - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package de.steamwar.bausystem.features.slaves.laufbau.boundingboxes; - -import de.steamwar.bausystem.features.slaves.laufbau.BlockBoundingBox; -import de.steamwar.bausystem.features.slaves.laufbau.BoundingBoxLoader; -import de.steamwar.bausystem.features.slaves.laufbau.Cuboid; -import de.steamwar.linkage.Linked; -import org.bukkit.Material; -import org.bukkit.block.data.BlockData; - -import java.util.ArrayList; -import java.util.List; - -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.createItem; -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.pixelCuboid; - -@Linked -public class DragonEggBoundingBox implements BoundingBoxLoader { - - @Override - public void load() { - BlockData blockData = Material.DRAGON_EGG.createBlockData(); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(1, 0, 1, 14, 16, 14)); - new BlockBoundingBox(blockData, cuboidList, createItem("LAUFBAU_BLOCK_DRAGON_EGG", Material.DRAGON_EGG)); - } -} diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/DripLeafBoundingBox.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/DripLeafBoundingBox.java deleted file mode 100644 index dae1eb06..00000000 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/DripLeafBoundingBox.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * This file is a part of the SteamWar software. - * - * Copyright (C) 2025 SteamWar.de-Serverteam - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package de.steamwar.bausystem.features.slaves.laufbau.boundingboxes; - -import de.steamwar.bausystem.features.slaves.laufbau.BlockBoundingBox; -import de.steamwar.bausystem.features.slaves.laufbau.BoundingBoxLoader; -import de.steamwar.bausystem.features.slaves.laufbau.Cuboid; -import de.steamwar.linkage.Linked; -import org.bukkit.Material; -import org.bukkit.block.data.type.BigDripleaf; - -import java.util.ArrayList; -import java.util.List; - -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.createItem; -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.pixelCuboid; - -@Linked -public class DripLeafBoundingBox implements BoundingBoxLoader { - - @Override - public void load() { - tiltNone(); - tiltPartial(); - } - - private void tiltNone() { - BigDripleaf bigDripleaf = (BigDripleaf) Material.BIG_DRIPLEAF.createBlockData(); - bigDripleaf.setTilt(BigDripleaf.Tilt.NONE); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 11, 0, 16, 4, 16)); - new BlockBoundingBox(bigDripleaf, cuboidList, createItem("LAUFBAU_BLOCK_BIG_DRIP_LEAF", Material.BIG_DRIPLEAF, "LAUFBAU_TILT_NONE")); - } - - private void tiltPartial() { - BigDripleaf bigDripleaf = (BigDripleaf) Material.BIG_DRIPLEAF.createBlockData(); - bigDripleaf.setTilt(BigDripleaf.Tilt.PARTIAL); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 11, 0, 16, 2, 16)); - new BlockBoundingBox(bigDripleaf, cuboidList, createItem("LAUFBAU_BLOCK_BIG_DRIP_LEAF", Material.BIG_DRIPLEAF, "LAUFBAU_TILT_PARTIAL")); - } -} diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/FencesBoundingBox.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/FencesBoundingBox.java deleted file mode 100644 index e19a72b5..00000000 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/FencesBoundingBox.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * This file is a part of the SteamWar software. - * - * Copyright (C) 2025 SteamWar.de-Serverteam - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package de.steamwar.bausystem.features.slaves.laufbau.boundingboxes; - -import de.steamwar.bausystem.features.slaves.laufbau.BlockBoundingBox; -import de.steamwar.bausystem.features.slaves.laufbau.BoundingBoxLoader; -import de.steamwar.bausystem.features.slaves.laufbau.Cuboid; -import de.steamwar.linkage.Linked; -import org.bukkit.Material; -import org.bukkit.block.BlockFace; -import org.bukkit.block.data.type.Fence; - -import java.util.ArrayList; -import java.util.List; - -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.createItem; -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.pixelCuboid; - -@Linked -public class FencesBoundingBox implements BoundingBoxLoader { - - @Override - public void load() { - for (int nx = 0; nx < 2; nx++) { - for (int nz = 0; nz < 2; nz++) { - for (int px = 0; px < 2; px++) { - for (int pz = 0; pz < 2; pz++) { - Fence fence = (Fence) Material.NETHER_BRICK_FENCE.createBlockData(); - List lore = new ArrayList<>(); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(6, 0, 6, 4, 24, 4)); - if (nz == 1) { - lore.add("LAUFBAU_CONNECTION_NORTH"); - fence.setFace(BlockFace.NORTH, true); - cuboidList.add(pixelCuboid(6, 0, 0, 4, 24, 6)); - } - if (pz == 1) { - lore.add("LAUFBAU_CONNECTION_SOUTH"); - fence.setFace(BlockFace.SOUTH, true); - cuboidList.add(pixelCuboid(6, 0, 10, 4, 24, 6)); - } - if (nx == 1) { - lore.add("LAUFBAU_CONNECTION_WEST"); - fence.setFace(BlockFace.WEST, true); - cuboidList.add(pixelCuboid(0, 0, 6, 6, 24, 4)); - } - if (px == 1) { - lore.add("LAUFBAU_CONNECTION_EAST"); - fence.setFace(BlockFace.EAST, true); - cuboidList.add(pixelCuboid(10, 0, 6, 6, 24, 4)); - } - new BlockBoundingBox(fence, cuboidList, createItem("LAUFBAU_BLOCK_NETHER_BRICK_FENCE", Material.NETHER_BRICK_FENCE, lore.toArray(new String[0]))); - } - } - } - } - } -} diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/GrindstoneBoundingBox.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/GrindstoneBoundingBox.java deleted file mode 100644 index 59d6310d..00000000 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/GrindstoneBoundingBox.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * This file is a part of the SteamWar software. - * - * Copyright (C) 2025 SteamWar.de-Serverteam - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package de.steamwar.bausystem.features.slaves.laufbau.boundingboxes; - -import de.steamwar.bausystem.features.slaves.laufbau.BlockBoundingBox; -import de.steamwar.bausystem.features.slaves.laufbau.BoundingBoxLoader; -import de.steamwar.bausystem.features.slaves.laufbau.Cuboid; -import de.steamwar.linkage.Linked; -import org.bukkit.Material; -import org.bukkit.block.BlockFace; -import org.bukkit.block.data.FaceAttachable; -import org.bukkit.block.data.type.Grindstone; - -import java.util.ArrayList; -import java.util.List; - -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.createItem; -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.pixelCuboid; - -@Linked -public class GrindstoneBoundingBox implements BoundingBoxLoader { - - @Override - public void load() { - floorNorthGrindstone(); - floorEastGrindstone(); - - ceilingNorthGrindstone(); - ceilingEastGrindstone(); - - wallNorthGrindstone(); - wallSouthGrindstone(); - wallEastGrindstone(); - wallWestGrindstone(); - } - - public void floorNorthGrindstone() { - Grindstone grindstone = (Grindstone) Material.GRINDSTONE.createBlockData(); - grindstone.setAttachedFace(FaceAttachable.AttachedFace.FLOOR); - grindstone.setFacing(BlockFace.NORTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(4, 4, 2, 8, 12, 12)); - cuboidList.add(pixelCuboid(2, 0, 6, 2, 7, 4)); - cuboidList.add(pixelCuboid(12, 0, 6, 2, 7, 4)); - cuboidList.add(pixelCuboid(2, 7, 5, 2, 6, 6)); - cuboidList.add(pixelCuboid(12, 7, 5, 2, 6, 6)); - new BlockBoundingBox(grindstone, cuboidList, createItem("LAUFBAU_BLOCK_GRINDSTONE", Material.GRINDSTONE, "LAUFBAU_ATTACHMENT_FLOOR", "LAUFBAU_FACING_NORTH", "LAUFBAU_FACING_SOUTH")); - } - - public void floorEastGrindstone() { - Grindstone grindstone = (Grindstone) Material.GRINDSTONE.createBlockData(); - grindstone.setAttachedFace(FaceAttachable.AttachedFace.FLOOR); - grindstone.setFacing(BlockFace.EAST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(2, 4, 4, 12, 12, 8)); - cuboidList.add(pixelCuboid(6, 0, 2, 4, 7, 2)); - cuboidList.add(pixelCuboid(6, 0, 12, 4, 7, 2)); - cuboidList.add(pixelCuboid(5, 7, 2, 6, 6, 2)); - cuboidList.add(pixelCuboid(5, 7, 12, 6, 6, 2)); - new BlockBoundingBox(grindstone, cuboidList, createItem("LAUFBAU_BLOCK_GRINDSTONE", Material.GRINDSTONE, "LAUFBAU_ATTACHMENT_FLOOR", "LAUFBAU_FACING_EAST", "LAUFBAU_FACING_WEST")); - } - - public void ceilingNorthGrindstone() { - Grindstone grindstone = (Grindstone) Material.GRINDSTONE.createBlockData(); - grindstone.setAttachedFace(FaceAttachable.AttachedFace.CEILING); - grindstone.setFacing(BlockFace.NORTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(4, 0, 2, 8, 12, 12)); - cuboidList.add(pixelCuboid(2, 9, 6, 2, 7, 4)); - cuboidList.add(pixelCuboid(12, 9, 6, 2, 7, 4)); - cuboidList.add(pixelCuboid(2, 3, 5, 2, 6, 6)); - cuboidList.add(pixelCuboid(12, 3, 5, 2, 6, 6)); - new BlockBoundingBox(grindstone, cuboidList, createItem("LAUFBAU_BLOCK_GRINDSTONE", Material.GRINDSTONE, "LAUFBAU_ATTACHMENT_CEILING", "LAUFBAU_FACING_NORTH", "LAUFBAU_FACING_SOUTH")); - } - - public void ceilingEastGrindstone() { - Grindstone grindstone = (Grindstone) Material.GRINDSTONE.createBlockData(); - grindstone.setAttachedFace(FaceAttachable.AttachedFace.CEILING); - grindstone.setFacing(BlockFace.EAST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(2, 0, 4, 12, 12, 8)); - cuboidList.add(pixelCuboid(6, 9, 2, 4, 7, 2)); - cuboidList.add(pixelCuboid(6, 9, 12, 4, 7, 2)); - cuboidList.add(pixelCuboid(5, 3, 2, 6, 6, 2)); - cuboidList.add(pixelCuboid(5, 3, 12, 6, 6, 2)); - new BlockBoundingBox(grindstone, cuboidList, createItem("LAUFBAU_BLOCK_GRINDSTONE", Material.GRINDSTONE, "LAUFBAU_ATTACHMENT_CEILING", "LAUFBAU_FACING_EAST", "LAUFBAU_FACING_WEST")); - } - - public void wallNorthGrindstone() { - Grindstone grindstone = (Grindstone) Material.GRINDSTONE.createBlockData(); - grindstone.setAttachedFace(FaceAttachable.AttachedFace.WALL); - grindstone.setFacing(BlockFace.NORTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(4, 2, 0, 8, 12, 12)); - cuboidList.add(pixelCuboid(2, 6, 9, 2, 4, 7)); - cuboidList.add(pixelCuboid(12, 6, 9, 2, 4, 7)); - cuboidList.add(pixelCuboid(2, 5, 3, 2, 6, 6)); - cuboidList.add(pixelCuboid(12, 5, 3, 2, 6, 6)); - new BlockBoundingBox(grindstone, cuboidList, createItem("LAUFBAU_BLOCK_GRINDSTONE", Material.GRINDSTONE, "LAUFBAU_ATTACHMENT_WALL", "LAUFBAU_FACING_NORTH")); - } - - public void wallSouthGrindstone() { - Grindstone grindstone = (Grindstone) Material.GRINDSTONE.createBlockData(); - grindstone.setAttachedFace(FaceAttachable.AttachedFace.WALL); - grindstone.setFacing(BlockFace.SOUTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(4, 2, 4, 8, 12, 12)); - cuboidList.add(pixelCuboid(2, 6, 0, 2, 4, 7)); - cuboidList.add(pixelCuboid(12, 6, 0, 2, 4, 7)); - cuboidList.add(pixelCuboid(2, 5, 7, 2, 6, 6)); - cuboidList.add(pixelCuboid(12, 5, 7, 2, 6, 6)); - new BlockBoundingBox(grindstone, cuboidList, createItem("LAUFBAU_BLOCK_GRINDSTONE", Material.GRINDSTONE, "LAUFBAU_ATTACHMENT_WALL", "LAUFBAU_FACING_SOUTH")); - } - - public void wallEastGrindstone() { - Grindstone grindstone = (Grindstone) Material.GRINDSTONE.createBlockData(); - grindstone.setAttachedFace(FaceAttachable.AttachedFace.WALL); - grindstone.setFacing(BlockFace.EAST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(4, 2, 4, 12, 12, 8)); - cuboidList.add(pixelCuboid(0, 6, 2, 7, 4, 2)); - cuboidList.add(pixelCuboid(0, 6, 12, 7, 4, 2)); - cuboidList.add(pixelCuboid(7, 5, 2, 6, 6, 2)); - cuboidList.add(pixelCuboid(7, 5, 12, 6, 6, 2)); - new BlockBoundingBox(grindstone, cuboidList, createItem("LAUFBAU_BLOCK_GRINDSTONE", Material.GRINDSTONE, "LAUFBAU_ATTACHMENT_WALL", "LAUFBAU_FACING_EAST")); - } - - public void wallWestGrindstone() { - Grindstone grindstone = (Grindstone) Material.GRINDSTONE.createBlockData(); - grindstone.setAttachedFace(FaceAttachable.AttachedFace.WALL); - grindstone.setFacing(BlockFace.WEST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 2, 4, 12, 12, 8)); - cuboidList.add(pixelCuboid(9, 6, 2, 7, 4, 2)); - cuboidList.add(pixelCuboid(9, 6, 12, 7, 4, 2)); - cuboidList.add(pixelCuboid(3, 5, 2, 6, 6, 2)); - cuboidList.add(pixelCuboid(3, 5, 12, 6, 6, 2)); - new BlockBoundingBox(grindstone, cuboidList, createItem("LAUFBAU_BLOCK_GRINDSTONE", Material.GRINDSTONE, "LAUFBAU_ATTACHMENT_WALL", "LAUFBAU_FACING_WEST")); - } -} diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/HopperBoundingBox.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/HopperBoundingBox.java deleted file mode 100644 index 655ad055..00000000 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/HopperBoundingBox.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * This file is a part of the SteamWar software. - * - * Copyright (C) 2025 SteamWar.de-Serverteam - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package de.steamwar.bausystem.features.slaves.laufbau.boundingboxes; - -import de.steamwar.bausystem.features.slaves.laufbau.BlockBoundingBox; -import de.steamwar.bausystem.features.slaves.laufbau.BoundingBoxLoader; -import de.steamwar.bausystem.features.slaves.laufbau.Cuboid; -import de.steamwar.linkage.Linked; -import org.bukkit.Material; -import org.bukkit.block.BlockFace; -import org.bukkit.block.data.type.Hopper; - -import java.util.ArrayList; -import java.util.List; - -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.createItem; -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.pixelCuboid; - -@Linked -public class HopperBoundingBox implements BoundingBoxLoader { - - @Override - public void load() { - downHopper(); - northHopper(); - southHopper(); - eastHopper(); - westHopper(); - } - - public void downHopper() { - Hopper hopper = (Hopper) Material.HOPPER.createBlockData(); - hopper.setFacing(BlockFace.DOWN); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 10, 0, 16, 6, 16)); - cuboidList.add(pixelCuboid(4, 4, 4, 8, 6, 8)); - cuboidList.add(pixelCuboid(6, 0, 6, 4, 4, 4)); - new BlockBoundingBox(hopper, cuboidList, createItem("LAUFBAU_BLOCK_HOPPER", Material.HOPPER, "LAUFBAU_CONNECTION_FLOOR")); - } - - public void northHopper() { - Hopper hopper = (Hopper) Material.HOPPER.createBlockData(); - hopper.setFacing(BlockFace.NORTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 10, 0, 16, 6, 16)); - cuboidList.add(pixelCuboid(4, 4, 4, 8, 6, 8)); - cuboidList.add(pixelCuboid(6, 4, 0, 4, 4, 4)); - new BlockBoundingBox(hopper, cuboidList, createItem("LAUFBAU_BLOCK_HOPPER", Material.HOPPER, "LAUFBAU_CONNECTION_NORTH")); - } - - public void southHopper() { - Hopper hopper = (Hopper) Material.HOPPER.createBlockData(); - hopper.setFacing(BlockFace.SOUTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 10, 0, 16, 6, 16)); - cuboidList.add(pixelCuboid(4, 4, 4, 8, 6, 8)); - cuboidList.add(pixelCuboid(6, 4, 12, 4, 4, 4)); - new BlockBoundingBox(hopper, cuboidList, createItem("LAUFBAU_BLOCK_HOPPER", Material.HOPPER, "LAUFBAU_CONNECTION_SOUTH")); - } - - public void eastHopper() { - Hopper hopper = (Hopper) Material.HOPPER.createBlockData(); - hopper.setFacing(BlockFace.EAST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 10, 0, 16, 6, 16)); - cuboidList.add(pixelCuboid(4, 4, 4, 8, 6, 8)); - cuboidList.add(pixelCuboid(12, 4, 6, 4, 4, 4)); - new BlockBoundingBox(hopper, cuboidList, createItem("LAUFBAU_BLOCK_HOPPER", Material.HOPPER, "LAUFBAU_CONNECTION_EAST")); - } - - public void westHopper() { - Hopper hopper = (Hopper) Material.HOPPER.createBlockData(); - hopper.setFacing(BlockFace.WEST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 10, 0, 16, 6, 16)); - cuboidList.add(pixelCuboid(4, 4, 4, 8, 6, 8)); - cuboidList.add(pixelCuboid(0, 4, 6, 4, 4, 4)); - new BlockBoundingBox(hopper, cuboidList, createItem("LAUFBAU_BLOCK_HOPPER", Material.HOPPER, "LAUFBAU_CONNECTION_WEST")); - } -} diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/IronBarBoundingBox.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/IronBarBoundingBox.java deleted file mode 100644 index e75afb93..00000000 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/IronBarBoundingBox.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * This file is a part of the SteamWar software. - * - * Copyright (C) 2025 SteamWar.de-Serverteam - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package de.steamwar.bausystem.features.slaves.laufbau.boundingboxes; - -import de.steamwar.bausystem.features.slaves.laufbau.BlockBoundingBox; -import de.steamwar.bausystem.features.slaves.laufbau.BoundingBoxLoader; -import de.steamwar.bausystem.features.slaves.laufbau.Cuboid; -import de.steamwar.linkage.Linked; -import org.bukkit.Material; -import org.bukkit.block.BlockFace; -import org.bukkit.block.data.type.Fence; - -import java.util.ArrayList; -import java.util.List; - -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.createItem; -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.pixelCuboid; - -@Linked -public class IronBarBoundingBox implements BoundingBoxLoader { - - @Override - public void load() { - for (int nx = 0; nx < 2; nx++) { - for (int nz = 0; nz < 2; nz++) { - for (int px = 0; px < 2; px++) { - for (int pz = 0; pz < 2; pz++) { - Fence fence = (Fence) Material.IRON_BARS.createBlockData(); - List lore = new ArrayList<>(); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(7, 0, 7, 2, 16, 2)); - if (nz == 1) { - lore.add("LAUFBAU_CONNECTION_NORTH"); - fence.setFace(BlockFace.NORTH, true); - cuboidList.add(pixelCuboid(7, 0, 0, 2, 16, 7)); - } - if (pz == 1) { - lore.add("LAUFBAU_CONNECTION_SOUTH"); - fence.setFace(BlockFace.SOUTH, true); - cuboidList.add(pixelCuboid(7, 0, 9, 2, 16, 7)); - } - if (nx == 1) { - lore.add("LAUFBAU_CONNECTION_WEST"); - fence.setFace(BlockFace.WEST, true); - cuboidList.add(pixelCuboid(0, 0, 7, 7, 16, 2)); - } - if (px == 1) { - lore.add("LAUFBAU_CONNECTION_EAST"); - fence.setFace(BlockFace.EAST, true); - cuboidList.add(pixelCuboid(9, 0, 7, 7, 16, 2)); - } - new BlockBoundingBox(fence, cuboidList, createItem("LAUFBAU_BLOCK_IRON_BARS", Material.IRON_BARS, lore.toArray(new String[0]))); - } - } - } - } - } -} diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/LanternBoundingBox.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/LanternBoundingBox.java deleted file mode 100644 index 2320fbcc..00000000 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/LanternBoundingBox.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * This file is a part of the SteamWar software. - * - * Copyright (C) 2025 SteamWar.de-Serverteam - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package de.steamwar.bausystem.features.slaves.laufbau.boundingboxes; - -import de.steamwar.bausystem.features.slaves.laufbau.BlockBoundingBox; -import de.steamwar.bausystem.features.slaves.laufbau.BoundingBoxLoader; -import de.steamwar.bausystem.features.slaves.laufbau.Cuboid; -import de.steamwar.linkage.Linked; -import org.bukkit.Material; -import org.bukkit.block.data.type.Lantern; - -import java.util.ArrayList; -import java.util.List; - -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.createItem; -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.pixelCuboid; - -@Linked -public class LanternBoundingBox implements BoundingBoxLoader { - - @Override - public void load() { - lantern(); - hangingLantern(); - } - - public void lantern() { - Lantern lantern = (Lantern) Material.LANTERN.createBlockData(); - lantern.setHanging(false); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(5, 0, 5, 6, 7, 6)); - cuboidList.add(pixelCuboid(6, 7, 6, 4, 2, 4)); - new BlockBoundingBox(lantern, cuboidList, createItem("LAUFBAU_BLOCK_LANTERN", Material.LANTERN)); - } - - public void hangingLantern() { - Lantern lantern = (Lantern) Material.LANTERN.createBlockData(); - lantern.setHanging(true); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(5, 1, 5, 6, 7, 6)); - cuboidList.add(pixelCuboid(6, 8, 6, 4, 2, 4)); - new BlockBoundingBox(lantern, cuboidList, createItem("LAUFBAU_BLOCK_LANTERN", Material.LANTERN, "LAUFBAU_HANGING")); - } -} diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/LecternBoundingBox.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/LecternBoundingBox.java deleted file mode 100644 index ab49f3ab..00000000 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/LecternBoundingBox.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * This file is a part of the SteamWar software. - * - * Copyright (C) 2025 SteamWar.de-Serverteam - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package de.steamwar.bausystem.features.slaves.laufbau.boundingboxes; - -import de.steamwar.bausystem.features.slaves.laufbau.BlockBoundingBox; -import de.steamwar.bausystem.features.slaves.laufbau.BoundingBoxLoader; -import de.steamwar.bausystem.features.slaves.laufbau.Cuboid; -import de.steamwar.linkage.Linked; -import org.bukkit.Material; -import org.bukkit.block.data.BlockData; - -import java.util.ArrayList; -import java.util.List; - -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.createItem; -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.pixelCuboid; - -@Linked -public class LecternBoundingBox implements BoundingBoxLoader { - - @Override - public void load() { - BlockData blockData = Material.LECTERN.createBlockData(); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 0, 0, 16, 2, 16)); - cuboidList.add(pixelCuboid(4, 2, 4, 8, 12, 8)); - new BlockBoundingBox(blockData, cuboidList, createItem("LAUFBAU_BLOCK_LECTERN", Material.LECTERN)); - } -} diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/StairBoundingBox.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/StairBoundingBox.java deleted file mode 100644 index ff14d1b8..00000000 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/StairBoundingBox.java +++ /dev/null @@ -1,343 +0,0 @@ -/* - * This file is a part of the SteamWar software. - * - * Copyright (C) 2025 SteamWar.de-Serverteam - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package de.steamwar.bausystem.features.slaves.laufbau.boundingboxes; - -import de.steamwar.bausystem.features.slaves.laufbau.BlockBoundingBox; -import de.steamwar.bausystem.features.slaves.laufbau.BoundingBoxLoader; -import de.steamwar.bausystem.features.slaves.laufbau.Cuboid; -import de.steamwar.linkage.Linked; -import org.bukkit.Material; -import org.bukkit.block.BlockFace; -import org.bukkit.block.data.type.Stairs; - -import java.util.ArrayList; -import java.util.List; - -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.createItem; -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.pixelCuboid; - -@Linked -public class StairBoundingBox implements BoundingBoxLoader { - - @Override - public void load() { - straightBottomNorthStair(); - straightBottomSouthStair(); - straightBottomEastStair(); - straightBottomWestStair(); - - straightTopNorthStair(); - straightTopSouthStair(); - straightTopEastStair(); - straightTopWestStair(); - - outerLeftBottomNorthStair(); - outerLeftBottomSouthStair(); - outerLeftBottomEastStair(); - outerLeftBottomWestStair(); - - outerLeftTopNorthStair(); - outerLeftTopSouthStair(); - outerLeftTopEastStair(); - outerLeftTopWestStair(); - - innerLeftBottomNorthStair(); - innerLeftBottomSouthStair(); - innerLeftBottomEastStair(); - innerLeftBottomWestStair(); - - innerLeftTopNorthStair(); - innerLeftTopSouthStair(); - innerLeftTopEastStair(); - innerLeftTopWestStair(); - } - - public void straightBottomNorthStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.STRAIGHT); - stairs.setHalf(Stairs.Half.BOTTOM); - stairs.setFacing(BlockFace.NORTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 0, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(0, 8, 0, 16, 8, 8)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_STRAIGHT", "LAUFBAU_HALF_BOTTOM", "LAUFBAU_FACING_NORTH")); - } - - public void straightBottomSouthStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.STRAIGHT); - stairs.setHalf(Stairs.Half.BOTTOM); - stairs.setFacing(BlockFace.SOUTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 0, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(0, 8, 8, 16, 8, 8)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_STRAIGHT", "LAUFBAU_HALF_BOTTOM", "LAUFBAU_FACING_SOUTH")); - } - - public void straightBottomEastStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.STRAIGHT); - stairs.setHalf(Stairs.Half.BOTTOM); - stairs.setFacing(BlockFace.EAST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 0, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(8, 8, 0, 8, 8, 16)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_STRAIGHT", "LAUFBAU_HALF_BOTTOM", "LAUFBAU_FACING_EAST")); - } - - public void straightBottomWestStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.STRAIGHT); - stairs.setHalf(Stairs.Half.BOTTOM); - stairs.setFacing(BlockFace.WEST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 0, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(0, 8, 0, 8, 8, 16)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_STRAIGHT", "LAUFBAU_HALF_BOTTOM", "LAUFBAU_FACING_WEST")); - } - - public void straightTopNorthStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.STRAIGHT); - stairs.setHalf(Stairs.Half.TOP); - stairs.setFacing(BlockFace.NORTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 8, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(0, 0, 0, 16, 8, 8)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_STRAIGHT", "LAUFBAU_HALF_TOP", "LAUFBAU_FACING_NORTH")); - } - - public void straightTopSouthStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.STRAIGHT); - stairs.setHalf(Stairs.Half.TOP); - stairs.setFacing(BlockFace.SOUTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 8, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(0, 0, 8, 16, 8, 8)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_STRAIGHT", "LAUFBAU_HALF_TOP", "LAUFBAU_FACING_SOUTH")); - } - - public void straightTopEastStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.STRAIGHT); - stairs.setHalf(Stairs.Half.TOP); - stairs.setFacing(BlockFace.EAST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 8, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(8, 0, 0, 8, 8, 16)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_STRAIGHT", "LAUFBAU_HALF_TOP", "LAUFBAU_FACING_EAST")); - } - - public void straightTopWestStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.STRAIGHT); - stairs.setHalf(Stairs.Half.TOP); - stairs.setFacing(BlockFace.WEST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 8, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(0, 0, 0, 8, 8, 16)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_STRAIGHT", "LAUFBAU_HALF_TOP", "LAUFBAU_FACING_WEST")); - } - - public void outerLeftBottomNorthStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.OUTER_LEFT); - stairs.setHalf(Stairs.Half.BOTTOM); - stairs.setFacing(BlockFace.NORTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 0, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(0, 8, 0, 8, 8, 8)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_OUTER_LEFT", "LAUFBAU_HALF_BOTTOM", "LAUFBAU_FACING_NORTH")); - } - - public void outerLeftBottomSouthStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.OUTER_LEFT); - stairs.setHalf(Stairs.Half.BOTTOM); - stairs.setFacing(BlockFace.SOUTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 0, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(8, 8, 8, 8, 8, 8)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_OUTER_LEFT", "LAUFBAU_HALF_BOTTOM", "LAUFBAU_FACING_SOUTH")); - } - - public void outerLeftBottomEastStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.OUTER_LEFT); - stairs.setHalf(Stairs.Half.BOTTOM); - stairs.setFacing(BlockFace.EAST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 0, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(8, 8, 0, 8, 8, 8)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_OUTER_LEFT", "LAUFBAU_HALF_BOTTOM", "LAUFBAU_FACING_EAST")); - } - - public void outerLeftBottomWestStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.OUTER_LEFT); - stairs.setHalf(Stairs.Half.BOTTOM); - stairs.setFacing(BlockFace.WEST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 0, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(0, 8, 8, 8, 8, 8)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_OUTER_LEFT", "LAUFBAU_HALF_BOTTOM", "LAUFBAU_FACING_WEST")); - } - - public void outerLeftTopNorthStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.OUTER_LEFT); - stairs.setHalf(Stairs.Half.TOP); - stairs.setFacing(BlockFace.NORTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 8, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(0, 0, 0, 8, 8, 8)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_OUTER_LEFT", "LAUFBAU_HALF_TOP", "LAUFBAU_FACING_NORTH")); - } - - public void outerLeftTopSouthStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.OUTER_LEFT); - stairs.setHalf(Stairs.Half.TOP); - stairs.setFacing(BlockFace.SOUTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 8, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(8, 0, 8, 8, 8, 8)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_OUTER_LEFT", "LAUFBAU_HALF_TOP", "LAUFBAU_FACING_SOUTH")); - } - - public void outerLeftTopEastStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.OUTER_LEFT); - stairs.setHalf(Stairs.Half.TOP); - stairs.setFacing(BlockFace.EAST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 8, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(8, 0, 0, 8, 8, 8)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_OUTER_LEFT", "LAUFBAU_HALF_TOP", "LAUFBAU_FACING_EAST")); - } - - public void outerLeftTopWestStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.OUTER_LEFT); - stairs.setHalf(Stairs.Half.TOP); - stairs.setFacing(BlockFace.WEST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 8, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(0, 0, 8, 8, 8, 8)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_OUTER_LEFT", "LAUFBAU_HALF_TOP", "LAUFBAU_FACING_WEST")); - } - - public void innerLeftBottomNorthStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.INNER_LEFT); - stairs.setHalf(Stairs.Half.BOTTOM); - stairs.setFacing(BlockFace.NORTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 0, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(0, 8, 0, 16, 8, 8)); - cuboidList.add(pixelCuboid(0, 8, 8, 8, 8, 8)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_INNER_LEFT", "LAUFBAU_HALF_BOTTOM", "LAUFBAU_FACING_NORTH")); - } - - public void innerLeftBottomSouthStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.INNER_LEFT); - stairs.setHalf(Stairs.Half.BOTTOM); - stairs.setFacing(BlockFace.SOUTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 0, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(0, 8, 8, 16, 8, 8)); - cuboidList.add(pixelCuboid(8, 8, 0, 8, 8, 8)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_INNER_LEFT", "LAUFBAU_HALF_BOTTOM", "LAUFBAU_FACING_SOUTH")); - } - - public void innerLeftBottomEastStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.INNER_LEFT); - stairs.setHalf(Stairs.Half.BOTTOM); - stairs.setFacing(BlockFace.EAST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 0, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(0, 8, 0, 16, 8, 8)); - cuboidList.add(pixelCuboid(8, 8, 8, 8, 8, 8)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_INNER_LEFT", "LAUFBAU_HALF_BOTTOM", "LAUFBAU_FACING_EAST")); - } - - public void innerLeftBottomWestStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.INNER_LEFT); - stairs.setHalf(Stairs.Half.BOTTOM); - stairs.setFacing(BlockFace.WEST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 0, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(0, 8, 8, 16, 8, 8)); - cuboidList.add(pixelCuboid(0, 8, 0, 8, 8, 8)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_INNER_LEFT", "LAUFBAU_HALF_BOTTOM", "LAUFBAU_FACING_WEST")); - } - - public void innerLeftTopNorthStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.INNER_LEFT); - stairs.setHalf(Stairs.Half.TOP); - stairs.setFacing(BlockFace.NORTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 8, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(0, 0, 0, 16, 8, 8)); - cuboidList.add(pixelCuboid(0, 0, 8, 8, 8, 8)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_INNER_LEFT", "LAUFBAU_HALF_TOP", "LAUFBAU_FACING_NORTH")); - } - - public void innerLeftTopSouthStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.INNER_LEFT); - stairs.setHalf(Stairs.Half.TOP); - stairs.setFacing(BlockFace.SOUTH); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 8, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(0, 0, 8, 16, 8, 8)); - cuboidList.add(pixelCuboid(8, 0, 0, 8, 8, 8)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_INNER_LEFT", "LAUFBAU_HALF_TOP", "LAUFBAU_FACING_SOUTH")); - } - - public void innerLeftTopEastStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.INNER_LEFT); - stairs.setHalf(Stairs.Half.TOP); - stairs.setFacing(BlockFace.EAST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 8, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(0, 0, 0, 16, 8, 8)); - cuboidList.add(pixelCuboid(8, 0, 8, 8, 8, 8)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_INNER_LEFT", "LAUFBAU_HALF_TOP", "LAUFBAU_FACING_EAST")); - } - - public void innerLeftTopWestStair() { - Stairs stairs = (Stairs) Material.END_STONE_BRICK_STAIRS.createBlockData(); - stairs.setShape(Stairs.Shape.INNER_LEFT); - stairs.setHalf(Stairs.Half.TOP); - stairs.setFacing(BlockFace.WEST); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(0, 8, 0, 16, 8, 16)); - cuboidList.add(pixelCuboid(0, 0, 8, 16, 8, 8)); - cuboidList.add(pixelCuboid(0, 0, 0, 8, 8, 8)); - new BlockBoundingBox(stairs, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_STAIRS", Material.END_STONE_BRICK_STAIRS, "LAUFBAU_SHAPE_INNER_LEFT", "LAUFBAU_HALF_TOP", "LAUFBAU_FACING_WEST")); - } -} diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/WallBoundingBox.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/WallBoundingBox.java deleted file mode 100644 index dffe873d..00000000 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/slaves/laufbau/boundingboxes/WallBoundingBox.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * This file is a part of the SteamWar software. - * - * Copyright (C) 2025 SteamWar.de-Serverteam - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package de.steamwar.bausystem.features.slaves.laufbau.boundingboxes; - -import de.steamwar.bausystem.features.slaves.laufbau.BlockBoundingBox; -import de.steamwar.bausystem.features.slaves.laufbau.BoundingBoxLoader; -import de.steamwar.bausystem.features.slaves.laufbau.Cuboid; -import de.steamwar.linkage.Linked; -import org.bukkit.Material; -import org.bukkit.block.BlockFace; -import org.bukkit.block.data.type.Wall; - -import java.util.ArrayList; -import java.util.List; - -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.createItem; -import static de.steamwar.bausystem.features.slaves.laufbau.LaufbauUtils.pixelCuboid; - -@Linked -public class WallBoundingBox implements BoundingBoxLoader { - - @Override - public void load() { - v18(); - } - - private void v18() { - for (int nx = 0; nx < 2; nx++) { - for (int nz = 0; nz < 2; nz++) { - for (int px = 0; px < 2; px++) { - for (int pz = 0; pz < 2; pz++) { - Wall fence = (Wall) Material.END_STONE_BRICK_WALL.createBlockData(); - List lore = new ArrayList<>(); - List cuboidList = new ArrayList<>(); - cuboidList.add(pixelCuboid(4, 0, 4, 8, 24, 8)); - if (nz == 1) { - lore.add("LAUFBAU_CONNECTION_NORTH"); - fence.setHeight(BlockFace.NORTH, Wall.Height.LOW); - cuboidList.add(pixelCuboid(5, 0, 0, 6, 24, 4)); - } - if (pz == 1) { - lore.add("LAUFBAU_CONNECTION_SOUTH"); - fence.setHeight(BlockFace.SOUTH, Wall.Height.LOW); - cuboidList.add(pixelCuboid(5, 0, 12, 6, 24, 4)); - } - if (nx == 1) { - lore.add("LAUFBAU_CONNECTION_WEST"); - fence.setHeight(BlockFace.WEST, Wall.Height.LOW); - cuboidList.add(pixelCuboid(0, 0, 5, 4, 24, 6)); - } - if (px == 1) { - lore.add("LAUFBAU_CONNECTION_EAST"); - fence.setHeight(BlockFace.EAST, Wall.Height.LOW); - cuboidList.add(pixelCuboid(12, 0, 5, 4, 24, 6)); - } - new BlockBoundingBox(fence, cuboidList, createItem("LAUFBAU_BLOCK_END_STONE_BRICK_WALL", Material.END_STONE_BRICK_WALL, lore.toArray(new String[0]))); - } - } - } - } - } -} diff --git a/BauSystem/build.gradle.kts b/BauSystem/build.gradle.kts index de9fe1b8..6a6bfac5 100644 --- a/BauSystem/build.gradle.kts +++ b/BauSystem/build.gradle.kts @@ -37,5 +37,6 @@ tasks.register("DevBau21") { dependsOn(":SpigotCore:shadowJar") dependsOn(":BauSystem:shadowJar") dependsOn(":SchematicSystem:shadowJar") + dependsOn(":KotlinCore:shadowJar") template = "Bau21" }