39 lines
948 B
Java
39 lines
948 B
Java
package ru.bclib.sdf.primitive;
|
|
|
|
import net.minecraft.core.BlockPos;
|
|
import net.minecraft.world.level.block.Block;
|
|
import net.minecraft.world.level.block.state.BlockState;
|
|
import ru.bclib.sdf.SDF;
|
|
|
|
import java.util.function.Function;
|
|
|
|
public abstract class SDFPrimitive extends SDF {
|
|
protected Function<BlockPos, BlockState> placerFunction;
|
|
|
|
public SDFPrimitive setBlock(Function<BlockPos, BlockState> placerFunction) {
|
|
this.placerFunction = placerFunction;
|
|
return this;
|
|
}
|
|
|
|
public SDFPrimitive setBlock(BlockState state) {
|
|
this.placerFunction = (pos) -> {
|
|
return state;
|
|
};
|
|
return this;
|
|
}
|
|
|
|
public SDFPrimitive setBlock(Block block) {
|
|
this.placerFunction = (pos) -> {
|
|
return block.defaultBlockState();
|
|
};
|
|
return this;
|
|
}
|
|
|
|
public BlockState getBlockState(BlockPos pos) {
|
|
return placerFunction.apply(pos);
|
|
}
|
|
|
|
/*public abstract CompoundTag toNBT(CompoundTag root) {
|
|
|
|
}*/
|
|
}
|