diff --git a/CHANGELOG.md b/CHANGELOG.md index daa10274e..1fd2e1387 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,9 +29,12 @@ Unless otherwise specified, any version comparison below is the comparison of se - (API) Added `BlockGrowEvent` which will be called when crops grow. - (API) Added two overloads `LightService#getInternalLight(Vector3ic)` and `LightService#getSkyLight(Vector3ic)`, they have the same functionality as `LightService#getXXXLight(int, int, int)`. -- (API) Implemented beacon block, and several related interfaces are added to api module. - (API) `BlockContainer#getBlockPos` and `BlockContainer#setBlockPos` now return/require `Position3ic` instead of `Vector3ic`, this enables us to get the dimension information of a `BlockContainer`. +- (API) Implemented brewing stand, and several related interfaces & objects including `BlockEntityBrewingStand`, `BrewingStandContainer`, + `Registries#POTION_MIX_RECIPES`, `PotionMixRecipe` are added to api module. See commit history for more details. +- (API) Implemented slab, and several related interfaces are added to api module. +- (API) Introduced `BlockBaseComponent#combine` method which is used by slab. For the details of this method, see the javadoc. - (API) Implemented brewing stand, and several related interfaces & objects including `BlockEntityBrewingStand`, `BrewingStandContainer`, `Registries#POTION_MIX_RECIPES`, `PotionMixRecipe` are added to api module. See commit history for more details. diff --git a/api/src/main/java/org/allaymc/api/block/component/BlockBaseComponent.java b/api/src/main/java/org/allaymc/api/block/component/BlockBaseComponent.java index 3fa1b4dfc..4c1905fe7 100644 --- a/api/src/main/java/org/allaymc/api/block/component/BlockBaseComponent.java +++ b/api/src/main/java/org/allaymc/api/block/component/BlockBaseComponent.java @@ -69,7 +69,10 @@ default boolean canRandomUpdate() { } /** - * Try to place a block. + * Try to place a block at the specified position and with optional placement info. + *
+ * When this method is called, the caller ensures that the current block in `placeBlockPos` + * is a block that has REPLACEABLE tag. * * @param dimension The dimension where the block is placed. * @param blockState The block that is being placed. @@ -80,6 +83,23 @@ default boolean canRandomUpdate() { */ boolean place(Dimension dimension, BlockState blockState, Vector3ic placeBlockPos, PlayerInteractInfo placementInfo); + /** + * Try to combine a block with another block which is already in the dimension and does not have REPLACEABLE tag. + *
+ * This method is used by slab blocks for example. Two slab blocks can be combined to one double slab blocks. + * In most cases two blocks cannot be combined, so the default implementation just return {@code false}. + * + * @param dimension The dimension where the block is placed. + * @param blockState The block that is going to be combined with another block which is already in the dimension. + * @param combineBlockPos The pos of the block that is being combined with. + * @param placementInfo The player placement info, can be {@code null}. + * + * @return {@code true} if the block is combined successfully, {@code false} if failed. + */ + default boolean combine(Dimension dimension, BlockState blockState, Vector3ic combineBlockPos, PlayerInteractInfo placementInfo) { + return false; + } + /** * Called when place a block. *
diff --git a/api/src/main/java/org/allaymc/api/block/component/BlockDoubleSlabBaseComponent.java b/api/src/main/java/org/allaymc/api/block/component/BlockDoubleSlabBaseComponent.java
new file mode 100644
index 000000000..150b2afaf
--- /dev/null
+++ b/api/src/main/java/org/allaymc/api/block/component/BlockDoubleSlabBaseComponent.java
@@ -0,0 +1,15 @@
+package org.allaymc.api.block.component;
+
+import org.allaymc.api.block.type.BlockType;
+
+/**
+ * @author daoge_cmd
+ */
+public interface BlockDoubleSlabBaseComponent extends BlockBaseComponent {
+ /**
+ * Get the single slab block type.
+ *
+ * @return the single slab block type.
+ */
+ BlockType> getSingleSlabBlockType();
+}
diff --git a/api/src/main/java/org/allaymc/api/block/component/BlockSlabBaseComponent.java b/api/src/main/java/org/allaymc/api/block/component/BlockSlabBaseComponent.java
new file mode 100644
index 000000000..0caccf7f4
--- /dev/null
+++ b/api/src/main/java/org/allaymc/api/block/component/BlockSlabBaseComponent.java
@@ -0,0 +1,15 @@
+package org.allaymc.api.block.component;
+
+import org.allaymc.api.block.type.BlockType;
+
+/**
+ * @author daoge_cmd
+ */
+public interface BlockSlabBaseComponent extends BlockBaseComponent {
+ /**
+ * Get the double slab block type.
+ *
+ * @return the double slab block type.
+ */
+ BlockType> getDoubleSlabBlockType();
+}
diff --git a/api/src/main/java/org/allaymc/api/block/interfaces/BlockCopperSlabBehavior.java b/api/src/main/java/org/allaymc/api/block/interfaces/BlockCopperSlabBehavior.java
new file mode 100644
index 000000000..1d69f417e
--- /dev/null
+++ b/api/src/main/java/org/allaymc/api/block/interfaces/BlockCopperSlabBehavior.java
@@ -0,0 +1,6 @@
+package org.allaymc.api.block.interfaces;
+
+import org.allaymc.api.block.component.BlockOxidationComponent;
+
+public interface BlockCopperSlabBehavior extends BlockSlabBehavior, BlockOxidationComponent {
+}
diff --git a/api/src/main/java/org/allaymc/api/block/interfaces/BlockDoubleCopperSlabBehavior.java b/api/src/main/java/org/allaymc/api/block/interfaces/BlockDoubleCopperSlabBehavior.java
new file mode 100644
index 000000000..4ba47524b
--- /dev/null
+++ b/api/src/main/java/org/allaymc/api/block/interfaces/BlockDoubleCopperSlabBehavior.java
@@ -0,0 +1,6 @@
+package org.allaymc.api.block.interfaces;
+
+import org.allaymc.api.block.component.BlockOxidationComponent;
+
+public interface BlockDoubleCopperSlabBehavior extends BlockDoubleSlabBehavior, BlockOxidationComponent {
+}
diff --git a/api/src/main/java/org/allaymc/api/block/interfaces/BlockDoubleSlabBehavior.java b/api/src/main/java/org/allaymc/api/block/interfaces/BlockDoubleSlabBehavior.java
new file mode 100644
index 000000000..6616d2e7c
--- /dev/null
+++ b/api/src/main/java/org/allaymc/api/block/interfaces/BlockDoubleSlabBehavior.java
@@ -0,0 +1,7 @@
+package org.allaymc.api.block.interfaces;
+
+import org.allaymc.api.block.BlockBehavior;
+import org.allaymc.api.block.component.BlockDoubleSlabBaseComponent;
+
+public interface BlockDoubleSlabBehavior extends BlockBehavior, BlockDoubleSlabBaseComponent {
+}
diff --git a/api/src/main/java/org/allaymc/api/block/interfaces/BlockSlabBehavior.java b/api/src/main/java/org/allaymc/api/block/interfaces/BlockSlabBehavior.java
index 0bc8bb0d0..4e166ee84 100644
--- a/api/src/main/java/org/allaymc/api/block/interfaces/BlockSlabBehavior.java
+++ b/api/src/main/java/org/allaymc/api/block/interfaces/BlockSlabBehavior.java
@@ -1,6 +1,7 @@
package org.allaymc.api.block.interfaces;
import org.allaymc.api.block.BlockBehavior;
+import org.allaymc.api.block.component.BlockSlabBaseComponent;
-public interface BlockSlabBehavior extends BlockBehavior {
+public interface BlockSlabBehavior extends BlockBehavior, BlockSlabBaseComponent {
}
diff --git a/api/src/main/java/org/allaymc/api/block/type/BlockTypes.java b/api/src/main/java/org/allaymc/api/block/type/BlockTypes.java
index 2285960fe..bc297bb3d 100644
--- a/api/src/main/java/org/allaymc/api/block/type/BlockTypes.java
+++ b/api/src/main/java/org/allaymc/api/block/type/BlockTypes.java
@@ -1,412 +1,7 @@
package org.allaymc.api.block.type;
import org.allaymc.api.annotation.MinecraftVersionSensitive;
-import org.allaymc.api.block.interfaces.BlockAcaciaPressurePlateBehavior;
-import org.allaymc.api.block.interfaces.BlockActivatorRailBehavior;
-import org.allaymc.api.block.interfaces.BlockAirBehavior;
-import org.allaymc.api.block.interfaces.BlockAlliumBehavior;
-import org.allaymc.api.block.interfaces.BlockAllowBehavior;
-import org.allaymc.api.block.interfaces.BlockAmethystBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockAmethystClusterBehavior;
-import org.allaymc.api.block.interfaces.BlockAncientDebrisBehavior;
-import org.allaymc.api.block.interfaces.BlockAndesiteBehavior;
-import org.allaymc.api.block.interfaces.BlockAnvilBehavior;
-import org.allaymc.api.block.interfaces.BlockAzaleaBehavior;
-import org.allaymc.api.block.interfaces.BlockAzureBluetBehavior;
-import org.allaymc.api.block.interfaces.BlockBambooBehavior;
-import org.allaymc.api.block.interfaces.BlockBambooMosaicBehavior;
-import org.allaymc.api.block.interfaces.BlockBambooPressurePlateBehavior;
-import org.allaymc.api.block.interfaces.BlockBarrelBehavior;
-import org.allaymc.api.block.interfaces.BlockBarrierBehavior;
-import org.allaymc.api.block.interfaces.BlockBasaltBehavior;
-import org.allaymc.api.block.interfaces.BlockBeaconBehavior;
-import org.allaymc.api.block.interfaces.BlockBedBehavior;
-import org.allaymc.api.block.interfaces.BlockBedrockBehavior;
-import org.allaymc.api.block.interfaces.BlockBeeNestBehavior;
-import org.allaymc.api.block.interfaces.BlockBeehiveBehavior;
-import org.allaymc.api.block.interfaces.BlockBeetrootBehavior;
-import org.allaymc.api.block.interfaces.BlockBellBehavior;
-import org.allaymc.api.block.interfaces.BlockBigDripleafBehavior;
-import org.allaymc.api.block.interfaces.BlockBirchPressurePlateBehavior;
-import org.allaymc.api.block.interfaces.BlockBlackstoneBehavior;
-import org.allaymc.api.block.interfaces.BlockBlastFurnaceBehavior;
-import org.allaymc.api.block.interfaces.BlockBlueIceBehavior;
-import org.allaymc.api.block.interfaces.BlockBlueOrchidBehavior;
-import org.allaymc.api.block.interfaces.BlockBoneBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockBookshelfBehavior;
-import org.allaymc.api.block.interfaces.BlockBorderBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockBrewingStandBehavior;
-import org.allaymc.api.block.interfaces.BlockBrickBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockBricksBehavior;
-import org.allaymc.api.block.interfaces.BlockBrownMushroomBehavior;
-import org.allaymc.api.block.interfaces.BlockBrownMushroomBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockBubbleColumnBehavior;
-import org.allaymc.api.block.interfaces.BlockBuddingAmethystBehavior;
-import org.allaymc.api.block.interfaces.BlockButtonBehavior;
-import org.allaymc.api.block.interfaces.BlockCactusBehavior;
-import org.allaymc.api.block.interfaces.BlockCakeBehavior;
-import org.allaymc.api.block.interfaces.BlockCalciteBehavior;
-import org.allaymc.api.block.interfaces.BlockCalibratedSculkSensorBehavior;
-import org.allaymc.api.block.interfaces.BlockCameraBehavior;
-import org.allaymc.api.block.interfaces.BlockCampfireBehavior;
-import org.allaymc.api.block.interfaces.BlockCandleBehavior;
-import org.allaymc.api.block.interfaces.BlockCandleCakeBehavior;
-import org.allaymc.api.block.interfaces.BlockCarpetBehavior;
-import org.allaymc.api.block.interfaces.BlockCarrotsBehavior;
-import org.allaymc.api.block.interfaces.BlockCartographyTableBehavior;
-import org.allaymc.api.block.interfaces.BlockCarvedPumpkinBehavior;
-import org.allaymc.api.block.interfaces.BlockCauldronBehavior;
-import org.allaymc.api.block.interfaces.BlockCaveVinesBehavior;
-import org.allaymc.api.block.interfaces.BlockCaveVinesBodyWithBerriesBehavior;
-import org.allaymc.api.block.interfaces.BlockCaveVinesHeadWithBerriesBehavior;
-import org.allaymc.api.block.interfaces.BlockChainBehavior;
-import org.allaymc.api.block.interfaces.BlockChainCommandBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockChalkboardBehavior;
-import org.allaymc.api.block.interfaces.BlockChemicalHeatBehavior;
-import org.allaymc.api.block.interfaces.BlockCherryPressurePlateBehavior;
-import org.allaymc.api.block.interfaces.BlockChestBehavior;
-import org.allaymc.api.block.interfaces.BlockChiseledBookshelfBehavior;
-import org.allaymc.api.block.interfaces.BlockChiseledDeepslateBehavior;
-import org.allaymc.api.block.interfaces.BlockChiseledPolishedBlackstoneBehavior;
-import org.allaymc.api.block.interfaces.BlockChiseledQuartzBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockChiseledTuffBehavior;
-import org.allaymc.api.block.interfaces.BlockChorusFlowerBehavior;
-import org.allaymc.api.block.interfaces.BlockChorusPlantBehavior;
-import org.allaymc.api.block.interfaces.BlockClayBehavior;
-import org.allaymc.api.block.interfaces.BlockClientRequestPlaceholderBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockClosedEyeblossomBehavior;
-import org.allaymc.api.block.interfaces.BlockCoalBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockCoalOreBehavior;
-import org.allaymc.api.block.interfaces.BlockCoarseDirtBehavior;
-import org.allaymc.api.block.interfaces.BlockCobbledDeepslateBehavior;
-import org.allaymc.api.block.interfaces.BlockCobblestoneBehavior;
-import org.allaymc.api.block.interfaces.BlockCocoaBehavior;
-import org.allaymc.api.block.interfaces.BlockColoredTorchBehavior;
-import org.allaymc.api.block.interfaces.BlockCommandBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockComposterBehavior;
-import org.allaymc.api.block.interfaces.BlockCompoundCreatorBehavior;
-import org.allaymc.api.block.interfaces.BlockConcreteBehavior;
-import org.allaymc.api.block.interfaces.BlockConcretePowderBehavior;
-import org.allaymc.api.block.interfaces.BlockConduitBehavior;
-import org.allaymc.api.block.interfaces.BlockCopperBehavior;
-import org.allaymc.api.block.interfaces.BlockCopperBulbBehavior;
-import org.allaymc.api.block.interfaces.BlockCopperDoorBehavior;
-import org.allaymc.api.block.interfaces.BlockCopperGrateBehavior;
-import org.allaymc.api.block.interfaces.BlockCopperOreBehavior;
-import org.allaymc.api.block.interfaces.BlockCopperStairsBehavior;
-import org.allaymc.api.block.interfaces.BlockCopperTrapdoorBehavior;
-import org.allaymc.api.block.interfaces.BlockCoralBehavior;
-import org.allaymc.api.block.interfaces.BlockCoralBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockCoralFanBehavior;
-import org.allaymc.api.block.interfaces.BlockCoralWallFanBehavior;
-import org.allaymc.api.block.interfaces.BlockCornflowerBehavior;
-import org.allaymc.api.block.interfaces.BlockCrackedDeepslateTilesBehavior;
-import org.allaymc.api.block.interfaces.BlockCrafterBehavior;
-import org.allaymc.api.block.interfaces.BlockCraftingTableBehavior;
-import org.allaymc.api.block.interfaces.BlockCreakingHeartBehavior;
-import org.allaymc.api.block.interfaces.BlockCrimsonFungusBehavior;
-import org.allaymc.api.block.interfaces.BlockCrimsonNyliumBehavior;
-import org.allaymc.api.block.interfaces.BlockCrimsonPressurePlateBehavior;
-import org.allaymc.api.block.interfaces.BlockCrimsonRootsBehavior;
-import org.allaymc.api.block.interfaces.BlockCryingObsidianBehavior;
-import org.allaymc.api.block.interfaces.BlockDandelionBehavior;
-import org.allaymc.api.block.interfaces.BlockDarkOakPressurePlateBehavior;
-import org.allaymc.api.block.interfaces.BlockDarkPrismarineBehavior;
-import org.allaymc.api.block.interfaces.BlockDaylightDetectorBehavior;
-import org.allaymc.api.block.interfaces.BlockDaylightDetectorInvertedBehavior;
-import org.allaymc.api.block.interfaces.BlockDeadbushBehavior;
-import org.allaymc.api.block.interfaces.BlockDecoratedPotBehavior;
-import org.allaymc.api.block.interfaces.BlockDeepslateBehavior;
-import org.allaymc.api.block.interfaces.BlockDeepslateCoalOreBehavior;
-import org.allaymc.api.block.interfaces.BlockDeepslateCopperOreBehavior;
-import org.allaymc.api.block.interfaces.BlockDeepslateDiamondOreBehavior;
-import org.allaymc.api.block.interfaces.BlockDeepslateEmeraldOreBehavior;
-import org.allaymc.api.block.interfaces.BlockDeepslateGoldOreBehavior;
-import org.allaymc.api.block.interfaces.BlockDeepslateIronOreBehavior;
-import org.allaymc.api.block.interfaces.BlockDeepslateLapisOreBehavior;
-import org.allaymc.api.block.interfaces.BlockDeepslateRedstoneOreBehavior;
-import org.allaymc.api.block.interfaces.BlockDeepslateTilesBehavior;
-import org.allaymc.api.block.interfaces.BlockDenyBehavior;
-import org.allaymc.api.block.interfaces.BlockDeprecatedPurpurBlock1Behavior;
-import org.allaymc.api.block.interfaces.BlockDeprecatedPurpurBlock2Behavior;
-import org.allaymc.api.block.interfaces.BlockDetectorRailBehavior;
-import org.allaymc.api.block.interfaces.BlockDiamondBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockDiamondOreBehavior;
-import org.allaymc.api.block.interfaces.BlockDioriteBehavior;
-import org.allaymc.api.block.interfaces.BlockDirtBehavior;
-import org.allaymc.api.block.interfaces.BlockDirtWithRootsBehavior;
-import org.allaymc.api.block.interfaces.BlockDispenserBehavior;
-import org.allaymc.api.block.interfaces.BlockDoorBehavior;
-import org.allaymc.api.block.interfaces.BlockDragonEggBehavior;
-import org.allaymc.api.block.interfaces.BlockDriedKelpBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockDripstoneBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockDropperBehavior;
-import org.allaymc.api.block.interfaces.BlockElementBehavior;
-import org.allaymc.api.block.interfaces.BlockEmeraldBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockEmeraldOreBehavior;
-import org.allaymc.api.block.interfaces.BlockEnchantingTableBehavior;
-import org.allaymc.api.block.interfaces.BlockEndGatewayBehavior;
-import org.allaymc.api.block.interfaces.BlockEndPortalBehavior;
-import org.allaymc.api.block.interfaces.BlockEndPortalFrameBehavior;
-import org.allaymc.api.block.interfaces.BlockEndRodBehavior;
-import org.allaymc.api.block.interfaces.BlockEndStoneBehavior;
-import org.allaymc.api.block.interfaces.BlockEnderChestBehavior;
-import org.allaymc.api.block.interfaces.BlockFarmlandBehavior;
-import org.allaymc.api.block.interfaces.BlockFenceBehavior;
-import org.allaymc.api.block.interfaces.BlockFenceGateBehavior;
-import org.allaymc.api.block.interfaces.BlockFernBehavior;
-import org.allaymc.api.block.interfaces.BlockFireBehavior;
-import org.allaymc.api.block.interfaces.BlockFletchingTableBehavior;
-import org.allaymc.api.block.interfaces.BlockFlowerPotBehavior;
-import org.allaymc.api.block.interfaces.BlockFloweringAzaleaBehavior;
-import org.allaymc.api.block.interfaces.BlockFrameBehavior;
-import org.allaymc.api.block.interfaces.BlockFrogSpawnBehavior;
-import org.allaymc.api.block.interfaces.BlockFrostedIceBehavior;
-import org.allaymc.api.block.interfaces.BlockFurnaceBehavior;
-import org.allaymc.api.block.interfaces.BlockGildedBlackstoneBehavior;
-import org.allaymc.api.block.interfaces.BlockGlassBehavior;
-import org.allaymc.api.block.interfaces.BlockGlassPaneBehavior;
-import org.allaymc.api.block.interfaces.BlockGlowFrameBehavior;
-import org.allaymc.api.block.interfaces.BlockGlowLichenBehavior;
-import org.allaymc.api.block.interfaces.BlockGlowingobsidianBehavior;
-import org.allaymc.api.block.interfaces.BlockGlowstoneBehavior;
-import org.allaymc.api.block.interfaces.BlockGoldBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockGoldOreBehavior;
-import org.allaymc.api.block.interfaces.BlockGoldenRailBehavior;
-import org.allaymc.api.block.interfaces.BlockGraniteBehavior;
-import org.allaymc.api.block.interfaces.BlockGrassBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockGrassPathBehavior;
-import org.allaymc.api.block.interfaces.BlockGravelBehavior;
-import org.allaymc.api.block.interfaces.BlockGrindstoneBehavior;
-import org.allaymc.api.block.interfaces.BlockHangingRootsBehavior;
-import org.allaymc.api.block.interfaces.BlockHangingSignBehavior;
-import org.allaymc.api.block.interfaces.BlockHardenedClayBehavior;
-import org.allaymc.api.block.interfaces.BlockHayBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockHeadBehavior;
-import org.allaymc.api.block.interfaces.BlockHeavyCoreBehavior;
-import org.allaymc.api.block.interfaces.BlockHeavyWeightedPressurePlateBehavior;
-import org.allaymc.api.block.interfaces.BlockHoneyBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockHoneycombBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockHopperBehavior;
-import org.allaymc.api.block.interfaces.BlockIceBehavior;
-import org.allaymc.api.block.interfaces.BlockInfestedCobblestoneBehavior;
-import org.allaymc.api.block.interfaces.BlockInfestedDeepslateBehavior;
-import org.allaymc.api.block.interfaces.BlockInfestedStoneBehavior;
-import org.allaymc.api.block.interfaces.BlockInfoUpdate2Behavior;
-import org.allaymc.api.block.interfaces.BlockInfoUpdateBehavior;
-import org.allaymc.api.block.interfaces.BlockInvisibleBedrockBehavior;
-import org.allaymc.api.block.interfaces.BlockIronBarsBehavior;
-import org.allaymc.api.block.interfaces.BlockIronBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockIronDoorBehavior;
-import org.allaymc.api.block.interfaces.BlockIronOreBehavior;
-import org.allaymc.api.block.interfaces.BlockIronTrapdoorBehavior;
-import org.allaymc.api.block.interfaces.BlockJigsawBehavior;
-import org.allaymc.api.block.interfaces.BlockJukeboxBehavior;
-import org.allaymc.api.block.interfaces.BlockJunglePressurePlateBehavior;
-import org.allaymc.api.block.interfaces.BlockKelpBehavior;
-import org.allaymc.api.block.interfaces.BlockLabTableBehavior;
-import org.allaymc.api.block.interfaces.BlockLadderBehavior;
-import org.allaymc.api.block.interfaces.BlockLanternBehavior;
-import org.allaymc.api.block.interfaces.BlockLapisBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockLapisOreBehavior;
-import org.allaymc.api.block.interfaces.BlockLargeAmethystBudBehavior;
-import org.allaymc.api.block.interfaces.BlockLargeFernBehavior;
-import org.allaymc.api.block.interfaces.BlockLeavesBehavior;
-import org.allaymc.api.block.interfaces.BlockLecternBehavior;
-import org.allaymc.api.block.interfaces.BlockLeverBehavior;
-import org.allaymc.api.block.interfaces.BlockLightBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockLightWeightedPressurePlateBehavior;
-import org.allaymc.api.block.interfaces.BlockLightningRodBehavior;
-import org.allaymc.api.block.interfaces.BlockLilacBehavior;
-import org.allaymc.api.block.interfaces.BlockLilyOfTheValleyBehavior;
-import org.allaymc.api.block.interfaces.BlockLiquidBehavior;
-import org.allaymc.api.block.interfaces.BlockLitDeepslateRedstoneOreBehavior;
-import org.allaymc.api.block.interfaces.BlockLitPumpkinBehavior;
-import org.allaymc.api.block.interfaces.BlockLitRedstoneLampBehavior;
-import org.allaymc.api.block.interfaces.BlockLitRedstoneOreBehavior;
-import org.allaymc.api.block.interfaces.BlockLodestoneBehavior;
-import org.allaymc.api.block.interfaces.BlockLoomBehavior;
-import org.allaymc.api.block.interfaces.BlockMagmaBehavior;
-import org.allaymc.api.block.interfaces.BlockMangrovePressurePlateBehavior;
-import org.allaymc.api.block.interfaces.BlockMangrovePropaguleBehavior;
-import org.allaymc.api.block.interfaces.BlockMangroveRootsBehavior;
-import org.allaymc.api.block.interfaces.BlockMaterialReducerBehavior;
-import org.allaymc.api.block.interfaces.BlockMediumAmethystBudBehavior;
-import org.allaymc.api.block.interfaces.BlockMelonBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockMelonStemBehavior;
-import org.allaymc.api.block.interfaces.BlockMobSpawnerBehavior;
-import org.allaymc.api.block.interfaces.BlockMossBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockMossyCobblestoneBehavior;
-import org.allaymc.api.block.interfaces.BlockMovingBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockMudBehavior;
-import org.allaymc.api.block.interfaces.BlockMuddyMangroveRootsBehavior;
-import org.allaymc.api.block.interfaces.BlockMushroomStemBehavior;
-import org.allaymc.api.block.interfaces.BlockMyceliumBehavior;
-import org.allaymc.api.block.interfaces.BlockNetherBrickBehavior;
-import org.allaymc.api.block.interfaces.BlockNetherGoldOreBehavior;
-import org.allaymc.api.block.interfaces.BlockNetherSproutsBehavior;
-import org.allaymc.api.block.interfaces.BlockNetherWartBehavior;
-import org.allaymc.api.block.interfaces.BlockNetherWartBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockNetheriteBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockNetherrackBehavior;
-import org.allaymc.api.block.interfaces.BlockNetherreactorBehavior;
-import org.allaymc.api.block.interfaces.BlockNoteblockBehavior;
-import org.allaymc.api.block.interfaces.BlockObserverBehavior;
-import org.allaymc.api.block.interfaces.BlockObsidianBehavior;
-import org.allaymc.api.block.interfaces.BlockOchreFroglightBehavior;
-import org.allaymc.api.block.interfaces.BlockOpenEyeblossomBehavior;
-import org.allaymc.api.block.interfaces.BlockOrangeTulipBehavior;
-import org.allaymc.api.block.interfaces.BlockOxeyeDaisyBehavior;
-import org.allaymc.api.block.interfaces.BlockPackedIceBehavior;
-import org.allaymc.api.block.interfaces.BlockPackedMudBehavior;
-import org.allaymc.api.block.interfaces.BlockPaleHangingMossBehavior;
-import org.allaymc.api.block.interfaces.BlockPaleMossBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockPaleOakPressurePlateBehavior;
-import org.allaymc.api.block.interfaces.BlockPearlescentFroglightBehavior;
-import org.allaymc.api.block.interfaces.BlockPeonyBehavior;
-import org.allaymc.api.block.interfaces.BlockPinkPetalsBehavior;
-import org.allaymc.api.block.interfaces.BlockPinkTulipBehavior;
-import org.allaymc.api.block.interfaces.BlockPistonArmCollisionBehavior;
-import org.allaymc.api.block.interfaces.BlockPistonBehavior;
-import org.allaymc.api.block.interfaces.BlockPitcherCropBehavior;
-import org.allaymc.api.block.interfaces.BlockPitcherPlantBehavior;
-import org.allaymc.api.block.interfaces.BlockPlanksBehavior;
-import org.allaymc.api.block.interfaces.BlockPodzolBehavior;
-import org.allaymc.api.block.interfaces.BlockPointedDripstoneBehavior;
-import org.allaymc.api.block.interfaces.BlockPolishedAndesiteBehavior;
-import org.allaymc.api.block.interfaces.BlockPolishedBasaltBehavior;
-import org.allaymc.api.block.interfaces.BlockPolishedBlackstoneBehavior;
-import org.allaymc.api.block.interfaces.BlockPolishedBlackstonePressurePlateBehavior;
-import org.allaymc.api.block.interfaces.BlockPolishedDeepslateBehavior;
-import org.allaymc.api.block.interfaces.BlockPolishedDioriteBehavior;
-import org.allaymc.api.block.interfaces.BlockPolishedGraniteBehavior;
-import org.allaymc.api.block.interfaces.BlockPolishedTuffBehavior;
-import org.allaymc.api.block.interfaces.BlockPoppyBehavior;
-import org.allaymc.api.block.interfaces.BlockPortalBehavior;
-import org.allaymc.api.block.interfaces.BlockPotatoesBehavior;
-import org.allaymc.api.block.interfaces.BlockPowderSnowBehavior;
-import org.allaymc.api.block.interfaces.BlockPoweredComparatorBehavior;
-import org.allaymc.api.block.interfaces.BlockPoweredRepeaterBehavior;
-import org.allaymc.api.block.interfaces.BlockPrismarineBehavior;
-import org.allaymc.api.block.interfaces.BlockPumpkinBehavior;
-import org.allaymc.api.block.interfaces.BlockPumpkinStemBehavior;
-import org.allaymc.api.block.interfaces.BlockPurpurBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockPurpurPillarBehavior;
-import org.allaymc.api.block.interfaces.BlockQuartzBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockQuartzOreBehavior;
-import org.allaymc.api.block.interfaces.BlockQuartzPillarBehavior;
-import org.allaymc.api.block.interfaces.BlockRailBehavior;
-import org.allaymc.api.block.interfaces.BlockRawCopperBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockRawGoldBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockRawIronBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockRedMushroomBehavior;
-import org.allaymc.api.block.interfaces.BlockRedMushroomBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockRedNetherBrickBehavior;
-import org.allaymc.api.block.interfaces.BlockRedSandBehavior;
-import org.allaymc.api.block.interfaces.BlockRedTulipBehavior;
-import org.allaymc.api.block.interfaces.BlockRedstoneBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockRedstoneLampBehavior;
-import org.allaymc.api.block.interfaces.BlockRedstoneOreBehavior;
-import org.allaymc.api.block.interfaces.BlockRedstoneTorchBehavior;
-import org.allaymc.api.block.interfaces.BlockRedstoneWireBehavior;
-import org.allaymc.api.block.interfaces.BlockReedsBehavior;
-import org.allaymc.api.block.interfaces.BlockReinforcedDeepslateBehavior;
-import org.allaymc.api.block.interfaces.BlockRepeatingCommandBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockReserved6Behavior;
-import org.allaymc.api.block.interfaces.BlockResinBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockResinClumpBehavior;
-import org.allaymc.api.block.interfaces.BlockRespawnAnchorBehavior;
-import org.allaymc.api.block.interfaces.BlockRoseBushBehavior;
-import org.allaymc.api.block.interfaces.BlockSandBehavior;
-import org.allaymc.api.block.interfaces.BlockSandstoneBehavior;
-import org.allaymc.api.block.interfaces.BlockSaplingBehavior;
-import org.allaymc.api.block.interfaces.BlockScaffoldingBehavior;
-import org.allaymc.api.block.interfaces.BlockSculkBehavior;
-import org.allaymc.api.block.interfaces.BlockSculkCatalystBehavior;
-import org.allaymc.api.block.interfaces.BlockSculkSensorBehavior;
-import org.allaymc.api.block.interfaces.BlockSculkShriekerBehavior;
-import org.allaymc.api.block.interfaces.BlockSculkVeinBehavior;
-import org.allaymc.api.block.interfaces.BlockSeaLanternBehavior;
-import org.allaymc.api.block.interfaces.BlockSeaPickleBehavior;
-import org.allaymc.api.block.interfaces.BlockSeagrassBehavior;
-import org.allaymc.api.block.interfaces.BlockShortGrassBehavior;
-import org.allaymc.api.block.interfaces.BlockShroomlightBehavior;
-import org.allaymc.api.block.interfaces.BlockShulkerBoxBehavior;
-import org.allaymc.api.block.interfaces.BlockSignBehavior;
-import org.allaymc.api.block.interfaces.BlockSlabBehavior;
-import org.allaymc.api.block.interfaces.BlockSlimeBehavior;
-import org.allaymc.api.block.interfaces.BlockSmallAmethystBudBehavior;
-import org.allaymc.api.block.interfaces.BlockSmallDripleafBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockSmithingTableBehavior;
-import org.allaymc.api.block.interfaces.BlockSmokerBehavior;
-import org.allaymc.api.block.interfaces.BlockSmoothBasaltBehavior;
-import org.allaymc.api.block.interfaces.BlockSmoothQuartzBehavior;
-import org.allaymc.api.block.interfaces.BlockSmoothStoneBehavior;
-import org.allaymc.api.block.interfaces.BlockSnifferEggBehavior;
-import org.allaymc.api.block.interfaces.BlockSnowBehavior;
-import org.allaymc.api.block.interfaces.BlockSnowLayerBehavior;
-import org.allaymc.api.block.interfaces.BlockSoulCampfireBehavior;
-import org.allaymc.api.block.interfaces.BlockSoulLanternBehavior;
-import org.allaymc.api.block.interfaces.BlockSoulSandBehavior;
-import org.allaymc.api.block.interfaces.BlockSoulSoilBehavior;
-import org.allaymc.api.block.interfaces.BlockSoulTorchBehavior;
-import org.allaymc.api.block.interfaces.BlockSpongeBehavior;
-import org.allaymc.api.block.interfaces.BlockSporeBlossomBehavior;
-import org.allaymc.api.block.interfaces.BlockSprucePressurePlateBehavior;
-import org.allaymc.api.block.interfaces.BlockStairsBehavior;
-import org.allaymc.api.block.interfaces.BlockStandingBannerBehavior;
-import org.allaymc.api.block.interfaces.BlockStickyPistonArmCollisionBehavior;
-import org.allaymc.api.block.interfaces.BlockStickyPistonBehavior;
-import org.allaymc.api.block.interfaces.BlockStoneBehavior;
-import org.allaymc.api.block.interfaces.BlockStonePressurePlateBehavior;
-import org.allaymc.api.block.interfaces.BlockStonecutterBehavior;
-import org.allaymc.api.block.interfaces.BlockStonecutterBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockStructureBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockStructureVoidBehavior;
-import org.allaymc.api.block.interfaces.BlockSunflowerBehavior;
-import org.allaymc.api.block.interfaces.BlockSuspiciousGravelBehavior;
-import org.allaymc.api.block.interfaces.BlockSuspiciousSandBehavior;
-import org.allaymc.api.block.interfaces.BlockSweetBerryBushBehavior;
-import org.allaymc.api.block.interfaces.BlockTallGrassBehavior;
-import org.allaymc.api.block.interfaces.BlockTargetBehavior;
-import org.allaymc.api.block.interfaces.BlockTerracottaBehavior;
-import org.allaymc.api.block.interfaces.BlockTntBehavior;
-import org.allaymc.api.block.interfaces.BlockTorchBehavior;
-import org.allaymc.api.block.interfaces.BlockTorchflowerBehavior;
-import org.allaymc.api.block.interfaces.BlockTorchflowerCropBehavior;
-import org.allaymc.api.block.interfaces.BlockTrapdoorBehavior;
-import org.allaymc.api.block.interfaces.BlockTrappedChestBehavior;
-import org.allaymc.api.block.interfaces.BlockTrialSpawnerBehavior;
-import org.allaymc.api.block.interfaces.BlockTripWireBehavior;
-import org.allaymc.api.block.interfaces.BlockTripwireHookBehavior;
-import org.allaymc.api.block.interfaces.BlockTuffBehavior;
-import org.allaymc.api.block.interfaces.BlockTurtleEggBehavior;
-import org.allaymc.api.block.interfaces.BlockTwistingVinesBehavior;
-import org.allaymc.api.block.interfaces.BlockUnderwaterTntBehavior;
-import org.allaymc.api.block.interfaces.BlockUnderwaterTorchBehavior;
-import org.allaymc.api.block.interfaces.BlockUnknownBehavior;
-import org.allaymc.api.block.interfaces.BlockUnpoweredComparatorBehavior;
-import org.allaymc.api.block.interfaces.BlockUnpoweredRepeaterBehavior;
-import org.allaymc.api.block.interfaces.BlockVaultBehavior;
-import org.allaymc.api.block.interfaces.BlockVerdantFroglightBehavior;
-import org.allaymc.api.block.interfaces.BlockVineBehavior;
-import org.allaymc.api.block.interfaces.BlockWallBannerBehavior;
-import org.allaymc.api.block.interfaces.BlockWallBehavior;
-import org.allaymc.api.block.interfaces.BlockWarpedFungusBehavior;
-import org.allaymc.api.block.interfaces.BlockWarpedNyliumBehavior;
-import org.allaymc.api.block.interfaces.BlockWarpedPressurePlateBehavior;
-import org.allaymc.api.block.interfaces.BlockWarpedRootsBehavior;
-import org.allaymc.api.block.interfaces.BlockWarpedWartBlockBehavior;
-import org.allaymc.api.block.interfaces.BlockWaterlilyBehavior;
-import org.allaymc.api.block.interfaces.BlockWebBehavior;
-import org.allaymc.api.block.interfaces.BlockWeepingVinesBehavior;
-import org.allaymc.api.block.interfaces.BlockWetSpongeBehavior;
-import org.allaymc.api.block.interfaces.BlockWheatBehavior;
-import org.allaymc.api.block.interfaces.BlockWhiteTulipBehavior;
-import org.allaymc.api.block.interfaces.BlockWitherRoseBehavior;
-import org.allaymc.api.block.interfaces.BlockWoodBehavior;
-import org.allaymc.api.block.interfaces.BlockWoodenPressurePlateBehavior;
-import org.allaymc.api.block.interfaces.BlockWoolBehavior;
+import org.allaymc.api.block.interfaces.*;
/**
* Automatically generated by {@code org.allaymc.codegen.BlockClassGen}
@@ -417,7 +12,7 @@ public final class BlockTypes {
public static BlockType