
cn.nukkit.blockproperty.CommonBlockProperties Maven / Gradle / Ivy
package cn.nukkit.blockproperty;
import cn.nukkit.api.PowerNukkitOnly;
import cn.nukkit.api.PowerNukkitXOnly;
import cn.nukkit.api.Since;
import cn.nukkit.blockproperty.value.ChiselType;
import cn.nukkit.blockproperty.value.VerticalHalf;
import cn.nukkit.math.BlockFace;
import cn.nukkit.math.CompassRoseDirection;
import cn.nukkit.utils.DyeColor;
import static cn.nukkit.math.CompassRoseDirection.*;
@PowerNukkitOnly
@Since("1.4.0.0-PN")
public final class CommonBlockProperties {
@PowerNukkitOnly
@Since("1.4.0.0-PN")
public static final BlockProperties EMPTY_PROPERTIES = new BlockProperties();
@PowerNukkitOnly
@Since("1.4.0.0-PN")
public static final BooleanBlockProperty OPEN = new BooleanBlockProperty("open_bit", false);
@PowerNukkitOnly
@Since("1.4.0.0-PN")
public static final BooleanBlockProperty TOGGLE = new BooleanBlockProperty("toggle_bit", false);
@PowerNukkitOnly
@Since("1.4.0.0-PN")
public static final IntBlockProperty REDSTONE_SIGNAL = new IntBlockProperty("redstone_signal", false, 15);
@PowerNukkitOnly
@Since("1.5.0.0-PN")
public static final BooleanBlockProperty PERMANENTLY_DEAD = new BooleanBlockProperty("dead_bit", true);
@PowerNukkitOnly
@Since("1.5.0.0-PN")
public static final BlockProperties REDSTONE_SIGNAL_BLOCK_PROPERTY = new BlockProperties(REDSTONE_SIGNAL);
@PowerNukkitOnly
@Since("1.4.0.0-PN")
public static final BooleanBlockProperty UPPER_BLOCK = new BooleanBlockProperty("upper_block_bit", false);
@PowerNukkitOnly
@Since("1.4.0.0-PN")
public static final BlockProperty FACING_DIRECTION = new ArrayBlockProperty<>("facing_direction", false, new BlockFace[]{
// Index based
BlockFace.DOWN, BlockFace.UP,
BlockFace.NORTH, BlockFace.SOUTH,
BlockFace.WEST, BlockFace.EAST,
}).ordinal(true);
@PowerNukkitXOnly
@Since("1.20.30-r1")
public static final ArrayBlockProperty BLOCK_FACE = new ArrayBlockProperty<>("minecraft:block_face", false, new BlockFace[]{
// Index based
BlockFace.DOWN, BlockFace.UP,
BlockFace.NORTH, BlockFace.SOUTH,
BlockFace.WEST, BlockFace.EAST,
});
@Since("1.20.0-r2")
@PowerNukkitXOnly
public static final ArrayBlockProperty FACING_DIRECTION_ARRAY = new ArrayBlockProperty<>("facing_direction", false, new BlockFace[]{
// Index based
BlockFace.DOWN, BlockFace.UP,
BlockFace.NORTH, BlockFace.SOUTH,
BlockFace.WEST, BlockFace.EAST,
});
public static final ArrayBlockProperty GROUND_SIGN_DIRECTION = new ArrayBlockProperty<>("ground_sign_direction", false, new CompassRoseDirection[]{
SOUTH, SOUTH_SOUTH_WEST, SOUTH_WEST, WEST_SOUTH_WEST,
WEST, WEST_NORTH_WEST, NORTH_WEST, NORTH_NORTH_WEST,
NORTH, NORTH_NORTH_EAST, NORTH_EAST, EAST_NORTH_EAST,
EAST, EAST_SOUTH_EAST, SOUTH_EAST, SOUTH_SOUTH_EAST
}).ordinal(true);
@PowerNukkitXOnly
@Since("1.20.0-r2")
public static final BooleanBlockProperty ATTACHED = new BooleanBlockProperty("attached_bit", false);
@PowerNukkitXOnly
@Since("1.20.0-r2")
public static final BooleanBlockProperty HANGING = new BooleanBlockProperty("hanging", false);
@PowerNukkitOnly
@Since("1.5.0.0-PN")
public static final ArrayBlockProperty CHISEL_TYPE = new ArrayBlockProperty<>("chisel_type", true, ChiselType.class);
@PowerNukkitOnly
@Since("1.5.0.0-PN")
public static final IntBlockProperty AGE_15 = new IntBlockProperty("age", false, 15);
@PowerNukkitOnly
@Since("1.5.0.0-PN")
public static final BlockProperties FACING_DIRECTION_BLOCK_PROPERTIES = new BlockProperties(FACING_DIRECTION);
@PowerNukkitOnly
@Since("1.4.0.0-PN")
public static final BlockProperty DIRECTION = new ArrayBlockProperty<>("direction", false, new BlockFace[]{
// Horizontal-index based
BlockFace.SOUTH, BlockFace.WEST,
BlockFace.NORTH, BlockFace.EAST,
}).ordinal(true);
@PowerNukkitXOnly
@Since("1.20.30-r1")
public static final ArrayBlockProperty CARDINAL_DIRECTION = new ArrayBlockProperty<>("minecraft:cardinal_direction", false, new BlockFace[]{
BlockFace.SOUTH, BlockFace.WEST,
BlockFace.NORTH, BlockFace.EAST,
});
@PowerNukkitXOnly
@Since("1.20.30-r1")
public static final ArrayBlockProperty VERTICAL_HALF = new ArrayBlockProperty<>("minecraft:vertical_half", false, new VerticalHalf[]{
VerticalHalf.BOTTOM, VerticalHalf.TOP
});
@PowerNukkitXOnly
@Since("1.20.30-r1")
public static final BlockProperties VERTICAL_HALF_PROPERTIES = new BlockProperties(CommonBlockProperties.VERTICAL_HALF);
@PowerNukkitOnly
@Since("1.4.0.0-PN")
public static final BlockProperty PILLAR_AXIS = new ArrayBlockProperty<>("pillar_axis", false, new BlockFace.Axis[]{
BlockFace.Axis.Y, BlockFace.Axis.X, BlockFace.Axis.Z
});
@Since("1.20.0-r2")
@PowerNukkitXOnly
public static final ArrayBlockProperty DIRECTION_ARRAY = (ArrayBlockProperty) DIRECTION;
@Since("1.20.0-r2")
@PowerNukkitXOnly
public static final ArrayBlockProperty PILLAR_AXIS_ARRAY = (ArrayBlockProperty) PILLAR_AXIS;
@PowerNukkitOnly
@Since("1.4.0.0-PN")
public static final IntBlockProperty DEPRECATED = new IntBlockProperty("deprecated", false, 3);
@PowerNukkitOnly
@Since("1.5.0.0-PN")
public static final BlockProperty COLOR = new ArrayBlockProperty<>("color", true, new DyeColor[]{
DyeColor.WHITE, DyeColor.ORANGE, DyeColor.MAGENTA, DyeColor.LIGHT_BLUE, DyeColor.YELLOW, DyeColor.LIME, DyeColor.PINK,
DyeColor.GRAY, DyeColor.LIGHT_GRAY, DyeColor.CYAN, DyeColor.PURPLE, DyeColor.BLUE, DyeColor.BROWN,
DyeColor.GREEN, DyeColor.RED, DyeColor.BLACK
}, 4, "color", false, new String[]{
"white", "orange", "magenta", "light_blue", "yellow", "lime", "pink", "gray", "silver", "cyan", "purple", "blue",
"brown", "green", "red", "black"
});
@Since("1.20.0-r2")
@PowerNukkitXOnly
public static final ArrayBlockProperty COLOR_ARRAY = (ArrayBlockProperty) COLOR;
@PowerNukkitOnly
@Since("1.5.0.0-PN")
public static final BlockProperties COLOR_BLOCK_PROPERTIES = new BlockProperties(COLOR);
private CommonBlockProperties() {
throw new UnsupportedOperationException("This is a utility class and cannot be instantiated");
}
@PowerNukkitOnly
@Since("1.4.0.0-PN")
public static final BooleanBlockProperty POWERED = new BooleanBlockProperty("powered_bit", false);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy