public PrecipitationShaftInfo GetPrecipitationShaftInfo(int x, int z) { int shaftValue = SubsystemTerrain.Terrain.GetShaftValue(x, z); int seasonalTemperature = SubsystemTerrain.Terrain.GetSeasonalTemperature(shaftValue); int num = Terrain.ExtractTopHeight(shaftValue); PrecipitationShaftInfo result; if (IsPlaceFrozen(seasonalTemperature, num)) { result = default(PrecipitationShaftInfo); result.Intensity = GlobalPrecipitationIntensity; result.Type = PrecipitationType.Snow; result.YLimit = num + 1; return(result); } int seasonalHumidity = SubsystemTerrain.Terrain.GetSeasonalHumidity(shaftValue); if (seasonalTemperature <= 8 || seasonalHumidity >= 8) { result = default(PrecipitationShaftInfo); result.Intensity = GlobalPrecipitationIntensity; result.Type = PrecipitationType.Rain; result.YLimit = num + 1; return(result); } result = default(PrecipitationShaftInfo); result.Intensity = 0f; result.Type = PrecipitationType.Rain; result.YLimit = num + 1; return(result); }
public int GetTopHeightFast(int x, int z) { return(Terrain.ExtractTopHeight(GetShaftValueFast(x, z))); }