EnergonRelics/src/main/java/com/thebrokenrail/energonrelics/api/block/SimpleBlockWithEntity.java

39 lines
1.1 KiB
Java
Raw Normal View History

2020-08-04 17:06:11 +00:00
package com.thebrokenrail.energonrelics.api.block;
2020-07-13 20:37:21 +00:00
import net.minecraft.block.BlockEntityProvider;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.block.entity.BlockEntityType;
import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry;
import net.minecraft.world.BlockView;
import java.util.function.Function;
2020-08-04 17:06:11 +00:00
/**
* Simple Block With Entity
*/
2020-07-13 20:37:21 +00:00
public abstract class SimpleBlockWithEntity extends SimpleBlock implements BlockEntityProvider {
protected BlockEntityType<BlockEntity> type;
public SimpleBlockWithEntity(Settings settings) {
super(settings);
}
@Override
2020-08-04 17:06:11 +00:00
public void register(Identifier id) {
super.register(id);
type = Registry.register(Registry.BLOCK_ENTITY_TYPE, id, BlockEntityType.Builder.create(() -> getFactory().apply(type), this).build(null));
2020-07-13 20:37:21 +00:00
}
2020-08-04 17:06:11 +00:00
/**
* Factory To Create Block Entity
* @return Block Entity Factory
*/
2020-07-13 20:37:21 +00:00
protected abstract Function<BlockEntityType<BlockEntity>, BlockEntity> getFactory();
@Override
public BlockEntity createBlockEntity(BlockView world) {
return getFactory().apply(type);
}
}