mirror of
https://github.com/GeyserMC/Geyser.git
synced 2024-08-14 23:57:35 +00:00
112 lines
2.8 KiB
Java
112 lines
2.8 KiB
Java
|
package org.geysermc.geyser.api.block.custom.nonvanilla;
|
||
|
|
||
|
import org.checkerframework.checker.index.qual.NonNegative;
|
||
|
import org.checkerframework.checker.nullness.qual.NonNull;
|
||
|
import org.checkerframework.checker.nullness.qual.Nullable;
|
||
|
import org.geysermc.geyser.api.GeyserApi;
|
||
|
|
||
|
public interface JavaBlockState {
|
||
|
/**
|
||
|
* Gets the identifier of the block state
|
||
|
*
|
||
|
* @return the identifier of the block state
|
||
|
*/
|
||
|
@NonNull String identifier();
|
||
|
|
||
|
/**
|
||
|
* Gets the Java ID of the block state
|
||
|
*
|
||
|
* @return the Java ID of the block state
|
||
|
*/
|
||
|
@NonNegative int javaId();
|
||
|
|
||
|
/**
|
||
|
* Gets the state group ID of the block state
|
||
|
*
|
||
|
* @return the state group ID of the block state
|
||
|
*/
|
||
|
@NonNegative int stateGroupId();
|
||
|
|
||
|
/**
|
||
|
* Gets the block hardness of the block state
|
||
|
*
|
||
|
* @return the block hardness of the block state
|
||
|
*/
|
||
|
@NonNegative float blockHardness();
|
||
|
|
||
|
/**
|
||
|
* Gets whether the block state is waterlogged
|
||
|
*
|
||
|
* @return whether the block state is waterlogged
|
||
|
*/
|
||
|
@NonNull boolean waterlogged();
|
||
|
|
||
|
/**
|
||
|
* Gets the collision of the block state
|
||
|
*
|
||
|
* @return the collision of the block state
|
||
|
*/
|
||
|
@NonNull JavaBoundingBox[] collision();
|
||
|
|
||
|
/**
|
||
|
* Gets whether the block state can be broken with hand
|
||
|
*
|
||
|
* @return whether the block state can be broken with hand
|
||
|
*/
|
||
|
@NonNull boolean canBreakWithHand();
|
||
|
|
||
|
/**
|
||
|
* Gets the pick item of the block state
|
||
|
*
|
||
|
* @return the pick item of the block state
|
||
|
*/
|
||
|
@Nullable String pickItem();
|
||
|
|
||
|
/**
|
||
|
* Gets the piston behavior of the block state
|
||
|
*
|
||
|
* @return the piston behavior of the block state
|
||
|
*/
|
||
|
@Nullable String pistonBehavior();
|
||
|
|
||
|
/**
|
||
|
* Gets whether the block state has block entity
|
||
|
*
|
||
|
* @return whether the block state has block entity
|
||
|
*/
|
||
|
@Nullable boolean hasBlockEntity();
|
||
|
|
||
|
/**
|
||
|
* Creates a new {@link JavaBlockState.Builder} instance
|
||
|
*
|
||
|
* @return a new {@link JavaBlockState.Builder} instance
|
||
|
*/
|
||
|
static JavaBlockState.Builder builder() {
|
||
|
return GeyserApi.api().provider(JavaBlockState.Builder.class);
|
||
|
}
|
||
|
|
||
|
interface Builder {
|
||
|
Builder identifier(@NonNull String identifier);
|
||
|
|
||
|
Builder javaId(@NonNegative int javaId);
|
||
|
|
||
|
Builder stateGroupId(@NonNegative int stateGroupId);
|
||
|
|
||
|
Builder blockHardness(@NonNegative float blockHardness);
|
||
|
|
||
|
Builder waterlogged(@NonNull boolean waterlogged);
|
||
|
|
||
|
Builder collision(@NonNull JavaBoundingBox[] collision);
|
||
|
|
||
|
Builder canBreakWithHand(@NonNull boolean canBreakWithHand);
|
||
|
|
||
|
Builder pickItem(@Nullable String pickItem);
|
||
|
|
||
|
Builder pistonBehavior(@Nullable String pistonBehavior);
|
||
|
|
||
|
Builder hasBlockEntity(@Nullable boolean hasBlockEntity);
|
||
|
|
||
|
JavaBlockState build();
|
||
|
}
|
||
|
}
|