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

Method buildTerrestrialLayout

source/game/StarWorldLayout.cpp:106–238  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

104}
105
106WorldLayout WorldLayout::buildTerrestrialLayout(TerrestrialWorldParameters const& terrestrialParameters, uint64_t seed) {
107 auto& root = Root::singleton();
108 auto assets = root.assets();
109 auto terrainDatabase = root.terrainDatabase();
110 auto biomeDatabase = root.biomeDatabase();
111
112 RandomSource randSource(seed);
113
114 WorldLayout layout;
115 layout.m_worldSize = terrestrialParameters.worldSize;
116
117 auto addLayer = [&](TerrestrialWorldParameters::TerrestrialLayer const& terrestrialLayer) {
118 RegionParams primaryRegionParams = {
119 terrestrialLayer.layerBaseHeight,
120 terrestrialParameters.threatLevel,
121 terrestrialLayer.primaryRegion.biome,
122 terrestrialLayer.primaryRegion.blockSelector,
123 terrestrialLayer.primaryRegion.fgCaveSelector,
124 terrestrialLayer.primaryRegion.bgCaveSelector,
125 terrestrialLayer.primaryRegion.fgOreSelector,
126 terrestrialLayer.primaryRegion.bgOreSelector,
127 terrestrialLayer.primaryRegion.subBlockSelector,
128 {
129 terrestrialLayer.primaryRegion.caveLiquid,
130 terrestrialLayer.primaryRegion.caveLiquidSeedDensity,
131 terrestrialLayer.primaryRegion.oceanLiquid,
132 terrestrialLayer.primaryRegion.oceanLiquidLevel,
133 terrestrialLayer.primaryRegion.encloseLiquids,
134 terrestrialLayer.primaryRegion.fillMicrodungeons
135 }
136 };
137
138 RegionParams primarySubRegionParams = {
139 terrestrialLayer.layerBaseHeight,
140 terrestrialParameters.threatLevel,
141 terrestrialLayer.primarySubRegion.biome,
142 terrestrialLayer.primarySubRegion.blockSelector,
143 terrestrialLayer.primarySubRegion.fgCaveSelector,
144 terrestrialLayer.primarySubRegion.bgCaveSelector,
145 terrestrialLayer.primarySubRegion.fgOreSelector,
146 terrestrialLayer.primarySubRegion.bgOreSelector,
147 terrestrialLayer.primarySubRegion.subBlockSelector,
148 {
149 terrestrialLayer.primarySubRegion.caveLiquid,
150 terrestrialLayer.primarySubRegion.caveLiquidSeedDensity,
151 terrestrialLayer.primarySubRegion.oceanLiquid,
152 terrestrialLayer.primarySubRegion.oceanLiquidLevel,
153 terrestrialLayer.primarySubRegion.encloseLiquids,
154 terrestrialLayer.primarySubRegion.fillMicrodungeons
155 }
156 };
157
158 List<RegionParams> secondaryRegions;
159 for (auto const& secondaryRegion : terrestrialLayer.secondaryRegions) {
160 RegionParams secondaryRegionParams = {
161 terrestrialLayer.layerBaseHeight,
162 terrestrialParameters.threatLevel,
163 secondaryRegion.biome,

Callers

nothing calls this directly

Calls 9

singletonClass · 0.85
reverseIterateFunction · 0.85
staticRandomU64Function · 0.85
assetsMethod · 0.80
terrainDatabaseMethod · 0.80
biomeDatabaseMethod · 0.80
addLayerMethod · 0.80
finalizeMethod · 0.80
appendMethod · 0.45

Tested by

no test coverage detected