MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / addPotentialBiomeItems

Method addPotentialBiomeItems

source/game/StarWorldTemplate.cpp:460–488  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

458}
459
460void WorldTemplate::addPotentialBiomeItems(int x, int y, PotentialBiomeItems& items, List<BiomeItemDistribution> const& distributions, BiomePlacementArea area, Maybe<BiomePlacementMode> mode) const {
461 for (auto const& itemDistribution : distributions) {
462 auto placeMode = mode.value(itemDistribution.mode());
463
464 if (area == BiomePlacementArea::Surface) {
465 if (placeMode == itemDistribution.mode() && placeMode == BiomePlacementMode::Floor) {
466 if (auto itemToPlace = itemDistribution.itemToPlace(x, y))
467 items.surfaceBiomeItems.append(itemToPlace.take());
468 }
469 if (placeMode == itemDistribution.mode() && placeMode == BiomePlacementMode::Ocean) {
470 if (auto itemToPlace = itemDistribution.itemToPlace(x, y))
471 items.oceanItems.append(itemToPlace.take());
472 }
473 } else if (area == BiomePlacementArea::Underground) {
474 if (placeMode == itemDistribution.mode() && placeMode == BiomePlacementMode::Floor) {
475 if (auto itemToPlace = itemDistribution.itemToPlace(x, y))
476 items.caveSurfaceBiomeItems.append(itemToPlace.take());
477 }
478 if (placeMode == itemDistribution.mode() && placeMode == BiomePlacementMode::Ceiling) {
479 if (auto itemToPlace = itemDistribution.itemToPlace(x, y))
480 items.caveCeilingBiomeItems.append(itemToPlace.take());
481 }
482 if (placeMode == itemDistribution.mode() && placeMode == BiomePlacementMode::Background) {
483 if (auto itemToPlace = itemDistribution.itemToPlace(x, y))
484 items.caveBackgroundBiomeItems.append(itemToPlace.take());
485 }
486 }
487 }
488}
489
490
491WorldTemplate::PotentialBiomeItems WorldTemplate::potentialBiomeItemsAt(int x, int y) const {

Callers 1

generateMicroDungeonsMethod · 0.80

Calls 5

itemToPlaceMethod · 0.80
valueMethod · 0.45
modeMethod · 0.45
appendMethod · 0.45
takeMethod · 0.45

Tested by

no test coverage detected