Start update
This commit is contained in:
parent
570e65ca47
commit
cbc91f4523
9 changed files with 42 additions and 30 deletions
|
@ -1,12 +1,14 @@
|
|||
package ru.bclib.blockentities;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.entity.SignBlockEntity;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import ru.bclib.registry.BaseBlockEntities;
|
||||
|
||||
public class BaseSignBlockEntity extends SignBlockEntity {
|
||||
public BaseSignBlockEntity() {
|
||||
super();
|
||||
public BaseSignBlockEntity(BlockPos blockPos, BlockState blockState) {
|
||||
super(blockPos, blockState);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -6,24 +6,39 @@ import java.util.function.Supplier;
|
|||
|
||||
import com.google.common.collect.Sets;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class DynamicBlockEntityType<T extends BlockEntity> extends BlockEntityType<T> {
|
||||
|
||||
private final Set<Block> validBlocks = Sets.newHashSet();
|
||||
private final BlockEntitySupplier<? extends T> factory;
|
||||
|
||||
public DynamicBlockEntityType(Supplier<? extends T> supplier) {
|
||||
super(supplier, Collections.emptySet(), null);
|
||||
public DynamicBlockEntityType(BlockEntitySupplier<? extends T> supplier) {
|
||||
super(null, Collections.emptySet(), null);
|
||||
this.factory = supplier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValid(Block block) {
|
||||
return validBlocks.contains(block);
|
||||
@Nullable public T create(BlockPos blockPos, BlockState blockState) {
|
||||
return factory.create(blockPos, blockState);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValid(BlockState blockState) {
|
||||
return validBlocks.contains(blockState.getBlock());
|
||||
}
|
||||
|
||||
public void registerBlock(Block block) {
|
||||
validBlocks.add(block);
|
||||
}
|
||||
|
||||
@FunctionalInterface
|
||||
interface BlockEntitySupplier<T extends BlockEntity> {
|
||||
T create(BlockPos blockPos, BlockState blockState);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue