bool IsPointMountains(Vector2 point, WG_Primitive_BaseNoise[] noises) { if (point.x > zoneWidth / 2 || point.x < -zoneWidth / 2 || point.y > zoneHeight / 2 || point.y < -zoneHeight / 2) { return(true); } bool toReturn = false; float maxLevel = float.MinValue; for (int noiseIndex = 0; noiseIndex < noises.Length; noiseIndex++) { if (noises[noiseIndex].isActive) { FloatBool height = noises[noiseIndex].GetHeight(point); additiveEnum mode = noises[noiseIndex].additive; float level = noises[noiseIndex].importantLevel; if (height.boolVal && height.floatVal > mountainsLimit && level > maxLevel) { maxLevel = level; if (mode == additiveEnum.Additive) { toReturn = true; } else { toReturn = false; } } } } return(toReturn); }
public override FloatBool GetHeight(Vector2 position) { FloatBool toReturn = new FloatBool { boolVal = false, floatVal = 0.0f }; if (!isActive) { return(toReturn); } else { Vector2 localPosition = new Vector2(transform.position.x, transform.position.z); if (mode == modeEnum.Area && Vector3.Distance(position, localPosition) > areaOuterRadius) { return(toReturn); } toReturn.boolVal = true; toReturn.floatVal = GetHeightInner(position); return(toReturn); } }