return generateTree(location, type, null);
}
@Override
public boolean generateTree(Location loc, TreeType type, BlockChangeDelegate delegate) {
final BlockStateDelegate blockStateDelegate = new BlockStateDelegate();
final TreeGenerator generator = new TreeGenerator(blockStateDelegate);
if (generator.generate(random, loc, type)) {
final List<BlockState> blockStates = new ArrayList<BlockState>(blockStateDelegate.getBlockStates());
StructureGrowEvent growEvent = new StructureGrowEvent(loc, type, false, null, blockStates);
EventFactory.callEvent(growEvent);
if (!growEvent.isCancelled()) {
for (BlockState state : blockStates) {
state.update(true);