Skip to content
Permalink
Browse files

Biome API: Add biome-specific river water

  • Loading branch information...
paramat committed Apr 19, 2015
1 parent 0c792db commit a615da6b12186c83b343dcf76d56e402252d4862
Showing with 23 additions and 19 deletions.
  1. +8 −6 src/mg_biome.cpp
  2. +1 −0 src/mg_biome.h
  3. +14 −13 src/script/lua_api/l_mapgen.cpp
@@ -55,6 +55,7 @@ BiomeManager::BiomeManager(IGameDef *gamedef) :
b->m_nodenames.push_back("mapgen_stone");
b->m_nodenames.push_back("mapgen_water_source");
b->m_nodenames.push_back("mapgen_water_source");
b->m_nodenames.push_back("mapgen_river_water_source");
b->m_nodenames.push_back("air");
m_ndef->pendNodeResolve(b, NODE_RESOLVE_DEFERRED);

@@ -131,11 +132,12 @@ void BiomeManager::clear()

void Biome::resolveNodeNames()
{
getIdFromNrBacklog(&c_top, "mapgen_dirt_with_grass", CONTENT_AIR);
getIdFromNrBacklog(&c_filler, "mapgen_dirt", CONTENT_AIR);
getIdFromNrBacklog(&c_stone, "mapgen_stone", CONTENT_AIR);
getIdFromNrBacklog(&c_water_top, "mapgen_water_source", CONTENT_AIR);
getIdFromNrBacklog(&c_water, "mapgen_water_source", CONTENT_AIR);
getIdFromNrBacklog(&c_dust, "air", CONTENT_IGNORE);
getIdFromNrBacklog(&c_top, "mapgen_dirt_with_grass", CONTENT_AIR);
getIdFromNrBacklog(&c_filler, "mapgen_dirt", CONTENT_AIR);
getIdFromNrBacklog(&c_stone, "mapgen_stone", CONTENT_AIR);
getIdFromNrBacklog(&c_water_top, "mapgen_water_source", CONTENT_AIR);
getIdFromNrBacklog(&c_water, "mapgen_water_source", CONTENT_AIR);
getIdFromNrBacklog(&c_river_water, "mapgen_river_water_source", CONTENT_AIR);
getIdFromNrBacklog(&c_dust, "air", CONTENT_IGNORE);
}

@@ -42,6 +42,7 @@ class Biome : public ObjDef, public NodeResolver {
content_t c_stone;
content_t c_water_top;
content_t c_water;
content_t c_river_water;
content_t c_dust;

s16 depth_top;
@@ -389,22 +389,23 @@ Biome *read_biome_def(lua_State *L, int index, INodeDefManager *ndef)
Biome *b = BiomeManager::create(biometype);

b->name = getstringfield_default(L, index, "name", "");
b->depth_top = getintfield_default(L, index, "depth_top", 1);
b->depth_filler = getintfield_default(L, index, "depth_filler", 2);
b->depth_water_top = getintfield_default(L, index, "depth_water_top", 0);
b->y_min = getintfield_default(L, index, "y_min", -31000);
b->y_max = getintfield_default(L, index, "y_max", 31000);
b->heat_point = getfloatfield_default(L, index, "heat_point", 0.f);
b->humidity_point = getfloatfield_default(L, index, "humidity_point", 0.f);
b->depth_top = getintfield_default(L, index, "depth_top", 1);
b->depth_filler = getintfield_default(L, index, "depth_filler", 2);
b->depth_water_top = getintfield_default(L, index, "depth_water_top", 0);
b->y_min = getintfield_default(L, index, "y_min", -31000);
b->y_max = getintfield_default(L, index, "y_max", 31000);
b->heat_point = getfloatfield_default(L, index, "heat_point", 0.f);
b->humidity_point = getfloatfield_default(L, index, "humidity_point", 0.f);
b->flags = 0; //reserved

std::vector<std::string> &nn = b->m_nodenames;
nn.push_back(getstringfield_default(L, index, "node_top", ""));
nn.push_back(getstringfield_default(L, index, "node_filler", ""));
nn.push_back(getstringfield_default(L, index, "node_stone", ""));
nn.push_back(getstringfield_default(L, index, "node_water_top", ""));
nn.push_back(getstringfield_default(L, index, "node_water", ""));
nn.push_back(getstringfield_default(L, index, "node_dust", ""));
nn.push_back(getstringfield_default(L, index, "node_top", ""));
nn.push_back(getstringfield_default(L, index, "node_filler", ""));
nn.push_back(getstringfield_default(L, index, "node_stone", ""));
nn.push_back(getstringfield_default(L, index, "node_water_top", ""));
nn.push_back(getstringfield_default(L, index, "node_water", ""));
nn.push_back(getstringfield_default(L, index, "node_river_water", ""));
nn.push_back(getstringfield_default(L, index, "node_dust", ""));
ndef->pendNodeResolve(b, NODE_RESOLVE_DEFERRED);

return b;

0 comments on commit a615da6

Please sign in to comment.
You can’t perform that action at this time.