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);
        }
Beispiel #2
0
 public int GetTopHeightFast(int x, int z)
 {
     return(Terrain.ExtractTopHeight(GetShaftValueFast(x, z)));
 }