CustomObjectStructure(LocalWorld world, CustomObjectCoordinate start) {
    CustomObject object = start.getObject();

    this.world = world;
    this.start = start;
    this.height = object.getStructurePartSpawnHeight();
    this.maxBranchDepth = object.getMaxBranchDepth();
    random =
        RandomHelper.getRandomForCoords(start.getX(), start.getY(), start.getZ(), world.getSeed());

    // Calculate all branches and add them to a list
    objectsToSpawn = new LinkedHashMap<ChunkCoordinate, Set<CustomObjectCoordinate>>();
    addToSpawnList(start); // Add the object itself
    addBranches(start, 1);
  }
 private Branch[] getBranches(CustomObject customObject, Rotation rotation) {
   return customObject.getBranches(rotation);
 }