public void CalculateNeighborhoodBiomePresence() { int groupCellBonus = 2; int cellCount = groupCellBonus; TerrainCell groupCell = Group.Cell; float totalPresence = groupCell.GetBiomePresence(BiomeId) * groupCellBonus; foreach (TerrainCell c in groupCell.Neighbors.Values) { totalPresence += c.GetBiomePresence(BiomeId); cellCount++; } _neighborhoodBiomePresence = totalPresence / cellCount; if ((_neighborhoodBiomePresence < 0) || (_neighborhoodBiomePresence > 1)) { throw new System.Exception("Neighborhood Biome Presence outside range: " + _neighborhoodBiomePresence); } }
public override float Calculate(TerrainCell cell) { return(cell.GetBiomePresence(_biomeId)); }
public override bool Evaluate(TerrainCell cell) { return(cell.GetBiomePresence(_biomeId) >= MinValue); }