void CaseRasterization(ref float[,] _array, int _x, int _y, RasterizationSettings _settings) { float _val = _array[_x, _y]; if (_val > _settings.maxValue) { _val = _settings.maxValue; } else if (_val < _settings.minValue) { _val = _settings.minValue; } _array[_x, _y] = MT_MathTools.Cross(_val, _settings.maxValue, _settings.minValue); }
static void DiamondStep(int _side, int _step, int _randomRange, int _size, ref float[,] _map, ref float _min, ref float _max) { for (int i = 0; i < _size - 1; i += _step) { //Debug.Log("Stepping in"); //(i+_step)%_side for (int j = (i + _step) % _side; j < _size - 1; j += _side) { /*if (i == 0 && j != 0) * { * Debug.Log(i + _step); * Debug.Log(i); * }*/ //Debug.Log(j); //Debug.Log(MT_MathTools.Mod(i + _step, _size)); //Debug.Log(j); float _average = _map[MT_MathTools.Mod(i + _step, _size), j]; /*Debug.Log(i - _step); * Debug.Log(MT_MathTools.Mod(i - _step, _size)); * Debug.Log(j);*/ _average += _map[MT_MathTools.Mod(i - _step, _size), j]; //Debug.Log(MT_MathTools.Mod(i + _step, _size)); _average += _map[i, MT_MathTools.Mod(j + _step, _size)]; //Debug.Log(MT_MathTools.Mod(i + _step, _size)); _average += _map[i, MT_MathTools.Mod(j - _step, _size)]; _average /= 4; _average += UnityEngine.Random.Range(-_randomRange, _randomRange); /*if (i == 0) * { * _map[_size - 1, j] = 30; * } * if (j==0) * { * _map[i, _size - 1] = 10; * }*/ if (_map[i, j] != 0) { Debug.Log($"OVERIDING : [{i + _step}][{i}]"); Debug.Log($"VALUE : {_map[i + _step, i]}"); } if (i == 0) { _map[_size - 1, j] = _average; } if (j == 0) { _map[i, _size - 1] = _average; } _map[i, j] = _average; _max = _max < _average ? _average : _max; _min = _min > _average ? _average : _min; /*if (_map[i, i + _step] != 0) * { * Debug.Log($"OVERIDING : [{i}][{i + _step}]"); * Debug.Log($"VALUE : {_map[i, i + _step]}"); * } * _map[i+_step, i] = 100; * _map[i, i+ _step] = 50;*/ } } }