Exemple #1
0
int MapgenCarpathian::getSpawnLevelAtPoint(v2s16 p)
{
	s16 level_at_point = terrainLevelAtPoint(p.X, p.Y);
	if (level_at_point <= water_level || level_at_point > water_level + 32)
		return MAX_MAP_GENERATION_LIMIT; // Unsuitable spawn point

	return level_at_point;
}
int MapgenValleys::getSpawnLevelAtPoint(v2s16 p)
{
	// Check to make sure this isn't a request for a location in a river.
	float rivers = NoisePerlin2D(&noise_rivers->np, p.X, p.Y, seed);
	if (fabs(rivers) < river_size_factor)
		return MAX_MAP_GENERATION_LIMIT;  // Unsuitable spawn point

	s16 level_at_point = terrainLevelAtPoint(p.X, p.Y);
	if (level_at_point <= water_level ||
			level_at_point > water_level + 32)
		return MAX_MAP_GENERATION_LIMIT;  // Unsuitable spawn point
	else
		return level_at_point;
}
int MapgenValleys::getGroundLevelAtPoint(v2s16 p)
{
	// ***********************************
	// This method (deliberately) does not
	// return correct terrain values.
	// ***********************************

	// Since MT doesn't normally deal with rivers, check
	// to make sure this isn't a request for a location
	// in a river.
	float rivers = NoisePerlin2D(&noise_rivers->np, p.X, p.Y, seed);

	// If it's wet, return an unusable number.
	if (fabs(rivers) < river_size_factor)
		return MAX_MAP_GENERATION_LIMIT;

	// Otherwise, return the real result.
	return terrainLevelAtPoint(p.X, p.Y);
}