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

Method buildTreeVariant

source/game/StarPlantDatabase.cpp:175–215  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

173}
174
175TreeVariant PlantDatabase::buildTreeVariant(
176 String const& stemName, float stemHueShift, String const& foliageName, float foliageHueShift) const {
177 if (!m_treeStemConfigs.contains(stemName) || !m_treeFoliageConfigs.contains(foliageName))
178 throw PlantDatabaseException::format("stemName '{}' or foliageName '{}' not found in plant database", stemName, foliageName);
179
180 TreeVariant treeVariant;
181
182 treeVariant.stemName = stemName;
183 treeVariant.foliageName = foliageName;
184
185 auto stemConfig = m_treeStemConfigs.get(stemName);
186 treeVariant.stemDirectory = stemConfig.directory;
187 treeVariant.stemSettings = stemConfig.settings;
188 treeVariant.stemHueShift = stemHueShift;
189
190 auto foliageConfig = m_treeFoliageConfigs.get(foliageName);
191 treeVariant.foliageDirectory = foliageConfig.directory;
192 treeVariant.foliageSettings = foliageConfig.settings;
193 treeVariant.foliageHueShift = foliageHueShift;
194
195 treeVariant.ceiling = stemConfig.settings.getBool("ceiling", false);
196
197 treeVariant.stemDropConfig = stemConfig.settings.get("dropConfig", JsonObject());
198 treeVariant.foliageDropConfig = foliageConfig.settings.get("dropConfig", JsonObject());
199
200 JsonObject descriptions;
201 for (auto const& entry : stemConfig.settings.iterateObject()) {
202 if (entry.first.endsWith("Description"))
203 descriptions[entry.first] = entry.second;
204 }
205 descriptions["description"] = stemConfig.settings.getString("description", stemName + " with " + foliageName);
206 treeVariant.descriptions = descriptions;
207
208 treeVariant.ephemeral = stemConfig.settings.getBool("allowsBlockPlacement", false);
209
210 treeVariant.tileDamageParameters = TileDamageParameters(
211 stemConfig.settings.get("damageTable", "/plants/treeDamage.config"),
212 stemConfig.settings.getFloat("health", 1.0f));
213
214 return treeVariant;
215}
216
217TreeVariant PlantDatabase::buildTreeVariant(String const& stemName, float stemHueShift) const {
218 if (!m_treeStemConfigs.contains(stemName))

Callers 2

createItemMethod · 0.80
enterStageMethod · 0.80

Calls 10

strfFunction · 0.85
getBoolMethod · 0.80
iterateObjectMethod · 0.80
getStringMethod · 0.80
getFloatMethod · 0.80
formatFunction · 0.50
containsMethod · 0.45
getMethod · 0.45
endsWithMethod · 0.45

Tested by

no test coverage detected