forked from SteamWar/SteamWar
Remove unused code from Laufbau
This commit is contained in:
@@ -25,7 +25,6 @@ import de.steamwar.bausystem.configplayer.ConfigConverter;
|
|||||||
import de.steamwar.bausystem.features.gui.BauGUI;
|
import de.steamwar.bausystem.features.gui.BauGUI;
|
||||||
import de.steamwar.bausystem.features.script.lua.SteamWarLuaPlugin;
|
import de.steamwar.bausystem.features.script.lua.SteamWarLuaPlugin;
|
||||||
import de.steamwar.bausystem.features.script.lua.libs.LuaLib;
|
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.Panzern;
|
||||||
import de.steamwar.bausystem.features.slaves.panzern.PanzernAlgorithm;
|
import de.steamwar.bausystem.features.slaves.panzern.PanzernAlgorithm;
|
||||||
import de.steamwar.bausystem.features.tracer.TraceManager;
|
import de.steamwar.bausystem.features.tracer.TraceManager;
|
||||||
@@ -112,9 +111,6 @@ public class BauSystem extends JavaPlugin implements Listener {
|
|||||||
if (any instanceof ConfigConverter) {
|
if (any instanceof ConfigConverter) {
|
||||||
Config.addConfigConverter((ConfigConverter) any);
|
Config.addConfigConverter((ConfigConverter) any);
|
||||||
}
|
}
|
||||||
if (any instanceof BoundingBoxLoader) {
|
|
||||||
((BoundingBoxLoader) any).load();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
try {
|
try {
|
||||||
|
|||||||
-204
@@ -19,28 +19,17 @@
|
|||||||
|
|
||||||
package de.steamwar.bausystem.features.slaves.laufbau;
|
package de.steamwar.bausystem.features.slaves.laufbau;
|
||||||
|
|
||||||
import com.sk89q.worldedit.blocks.SkullBlock;
|
|
||||||
import com.sk89q.worldedit.world.block.BaseBlock;
|
import com.sk89q.worldedit.world.block.BaseBlock;
|
||||||
import de.steamwar.inventory.SWItem;
|
import de.steamwar.inventory.SWItem;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.ToString;
|
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.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.ArrayList;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.function.Consumer;
|
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
|
@ToString
|
||||||
@Getter
|
@Getter
|
||||||
public class BlockBoundingBox {
|
public class BlockBoundingBox {
|
||||||
@@ -92,197 +81,4 @@ public class BlockBoundingBox {
|
|||||||
public double volume() {
|
public double volume() {
|
||||||
return 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<BaseBlock> 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());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
-25
@@ -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 <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package de.steamwar.bausystem.features.slaves.laufbau;
|
|
||||||
|
|
||||||
public interface BoundingBoxLoader {
|
|
||||||
|
|
||||||
void load();
|
|
||||||
}
|
|
||||||
+10
@@ -22,6 +22,7 @@ package de.steamwar.bausystem.features.slaves.laufbau;
|
|||||||
import de.steamwar.bausystem.region.Point;
|
import de.steamwar.bausystem.region.Point;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.bukkit.util.BoundingBox;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@@ -33,6 +34,15 @@ public class Cuboid {
|
|||||||
private double dy;
|
private double dy;
|
||||||
private double dz;
|
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) {
|
public boolean intersects(Cuboid cuboid) {
|
||||||
double minx = x - cuboid.dx;
|
double minx = x - cuboid.dx;
|
||||||
double miny = y - cuboid.dy;
|
double miny = y - cuboid.dy;
|
||||||
|
|||||||
+37
@@ -24,15 +24,52 @@ import de.steamwar.bausystem.SWUtils;
|
|||||||
import de.steamwar.bausystem.shared.Pair;
|
import de.steamwar.bausystem.shared.Pair;
|
||||||
import de.steamwar.bausystem.utils.WorldEditUtils;
|
import de.steamwar.bausystem.utils.WorldEditUtils;
|
||||||
import de.steamwar.command.SWCommand;
|
import de.steamwar.command.SWCommand;
|
||||||
|
import de.steamwar.inventory.SWItem;
|
||||||
import de.steamwar.linkage.Linked;
|
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.Bukkit;
|
||||||
import org.bukkit.Location;
|
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.entity.Player;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
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
|
@Linked
|
||||||
public class LaufbauCommand extends SWCommand {
|
public class LaufbauCommand extends SWCommand {
|
||||||
|
|
||||||
|
static {
|
||||||
|
AtomicLong counter = new AtomicLong();
|
||||||
|
AtomicReference<VoxelShape> 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() {
|
public LaufbauCommand() {
|
||||||
super("laufbau", "laufsklave");
|
super("laufbau", "laufsklave");
|
||||||
}
|
}
|
||||||
|
|||||||
-261
@@ -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 <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-46
@@ -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 <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
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<Cuboid> 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));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-149
@@ -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 <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-46
@@ -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 <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
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<Cuboid> 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));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-62
@@ -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 <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
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<Cuboid> 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<Cuboid> 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"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-69
@@ -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 <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
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<Cuboid> 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<Cuboid> 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<Cuboid> 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"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-89
@@ -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 <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
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<String> lore = new ArrayList<>();
|
|
||||||
List<Cuboid> 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])));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-45
@@ -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 <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
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<Cuboid> cuboidList = new ArrayList<>();
|
|
||||||
cuboidList.add(pixelCuboid(1, 0, 1, 14, 16, 14));
|
|
||||||
new BlockBoundingBox(blockData, cuboidList, createItem("LAUFBAU_BLOCK_DRAGON_EGG", Material.DRAGON_EGG));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-59
@@ -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 <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
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<Cuboid> 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<Cuboid> 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"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-75
@@ -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 <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
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<String> lore = new ArrayList<>();
|
|
||||||
List<Cuboid> 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])));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-157
@@ -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 <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-97
@@ -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 <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-75
@@ -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 <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
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<String> lore = new ArrayList<>();
|
|
||||||
List<Cuboid> 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])));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-61
@@ -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 <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
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<Cuboid> 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<Cuboid> 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"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-46
@@ -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 <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
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<Cuboid> 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));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-343
@@ -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 <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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<Cuboid> 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"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-79
@@ -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 <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
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<String> lore = new ArrayList<>();
|
|
||||||
List<Cuboid> 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])));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -37,5 +37,6 @@ tasks.register<DevServer>("DevBau21") {
|
|||||||
dependsOn(":SpigotCore:shadowJar")
|
dependsOn(":SpigotCore:shadowJar")
|
||||||
dependsOn(":BauSystem:shadowJar")
|
dependsOn(":BauSystem:shadowJar")
|
||||||
dependsOn(":SchematicSystem:shadowJar")
|
dependsOn(":SchematicSystem:shadowJar")
|
||||||
|
dependsOn(":KotlinCore:shadowJar")
|
||||||
template = "Bau21"
|
template = "Bau21"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user