Skip to content

Commit 0e55470

Browse files
authoredApr 20, 2018
Node resolver: Make error on fallback optional, disable for mapgen aliases
1 parent 87ad4d8 commit 0e55470

File tree

3 files changed

+19
-17
lines changed

3 files changed

+19
-17
lines changed
 

Diff for: ‎src/mapgen/mg_biome.cpp

+12-12
Original file line numberDiff line numberDiff line change
@@ -317,16 +317,16 @@ Biome *BiomeGenOriginal::calcBiomeFromNoise(float heat, float humidity, v3s16 po
317317

318318
void Biome::resolveNodeNames()
319319
{
320-
getIdFromNrBacklog(&c_top, "mapgen_stone", CONTENT_AIR);
321-
getIdFromNrBacklog(&c_filler, "mapgen_stone", CONTENT_AIR);
322-
getIdFromNrBacklog(&c_stone, "mapgen_stone", CONTENT_AIR);
323-
getIdFromNrBacklog(&c_water_top, "mapgen_water_source", CONTENT_AIR);
324-
getIdFromNrBacklog(&c_water, "mapgen_water_source", CONTENT_AIR);
325-
getIdFromNrBacklog(&c_river_water, "mapgen_river_water_source", CONTENT_AIR);
326-
getIdFromNrBacklog(&c_riverbed, "mapgen_stone", CONTENT_AIR);
327-
getIdFromNrBacklog(&c_dust, "ignore", CONTENT_IGNORE);
328-
getIdFromNrBacklog(&c_cave_liquid, "ignore", CONTENT_IGNORE);
329-
getIdFromNrBacklog(&c_dungeon, "ignore", CONTENT_IGNORE);
330-
getIdFromNrBacklog(&c_dungeon_alt, "ignore", CONTENT_IGNORE);
331-
getIdFromNrBacklog(&c_dungeon_stair, "ignore", CONTENT_IGNORE);
320+
getIdFromNrBacklog(&c_top, "mapgen_stone", CONTENT_AIR, false);
321+
getIdFromNrBacklog(&c_filler, "mapgen_stone", CONTENT_AIR, false);
322+
getIdFromNrBacklog(&c_stone, "mapgen_stone", CONTENT_AIR, false);
323+
getIdFromNrBacklog(&c_water_top, "mapgen_water_source", CONTENT_AIR, false);
324+
getIdFromNrBacklog(&c_water, "mapgen_water_source", CONTENT_AIR, false);
325+
getIdFromNrBacklog(&c_river_water, "mapgen_river_water_source", CONTENT_AIR, false);
326+
getIdFromNrBacklog(&c_riverbed, "mapgen_stone", CONTENT_AIR, false);
327+
getIdFromNrBacklog(&c_dust, "ignore", CONTENT_IGNORE, false);
328+
getIdFromNrBacklog(&c_cave_liquid, "ignore", CONTENT_IGNORE, false);
329+
getIdFromNrBacklog(&c_dungeon, "ignore", CONTENT_IGNORE, false);
330+
getIdFromNrBacklog(&c_dungeon_alt, "ignore", CONTENT_IGNORE, false);
331+
getIdFromNrBacklog(&c_dungeon_stair, "ignore", CONTENT_IGNORE, false);
332332
}

Diff for: ‎src/nodedef.cpp

+4-3
Original file line numberDiff line numberDiff line change
@@ -1621,7 +1621,7 @@ void NodeResolver::nodeResolveInternal()
16211621

16221622

16231623
bool NodeResolver::getIdFromNrBacklog(content_t *result_out,
1624-
const std::string &node_alt, content_t c_fallback)
1624+
const std::string &node_alt, content_t c_fallback, bool error_on_fallback)
16251625
{
16261626
if (m_nodenames_idx == m_nodenames.size()) {
16271627
*result_out = c_fallback;
@@ -1639,8 +1639,9 @@ bool NodeResolver::getIdFromNrBacklog(content_t *result_out,
16391639
}
16401640

16411641
if (!success) {
1642-
errorstream << "NodeResolver: failed to resolve node name '" << name
1643-
<< "'." << std::endl;
1642+
if (error_on_fallback)
1643+
errorstream << "NodeResolver: failed to resolve node name '" << name
1644+
<< "'." << std::endl;
16441645
c = c_fallback;
16451646
}
16461647

Diff for: ‎src/nodedef.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -733,9 +733,10 @@ class NodeResolver {
733733
virtual void resolveNodeNames() = 0;
734734

735735
bool getIdFromNrBacklog(content_t *result_out,
736-
const std::string &node_alt, content_t c_fallback);
736+
const std::string &node_alt, content_t c_fallback,
737+
bool error_on_fallback = true);
737738
bool getIdsFromNrBacklog(std::vector<content_t> *result_out,
738-
bool all_required=false, content_t c_fallback=CONTENT_IGNORE);
739+
bool all_required = false, content_t c_fallback = CONTENT_IGNORE);
739740

740741
void nodeResolveInternal();
741742

0 commit comments

Comments
 (0)