Exemplo n.º 1
0
        public static bool SeasonalShiftAmplitudeAt(ref float __result, int tile)
        {
            WorldGrid newWorldGrid = Find.WorldGrid;

            if (worldGrid != newWorldGrid)
            {
                worldGrid = newWorldGrid;
                SeasonalShiftAmplitudeCache.Clear();
                tileAbsTickTemperature.Clear();
                tileTemperature.Clear();
#if DEBUG
                Log.Message("RimThreaded is rebuilding WorldGrid Temperature Cache");
#endif
            }

            if (SeasonalShiftAmplitudeCache.TryGetValue(tile, out __result))
            {
                return(false);
            }
            __result = Find.WorldGrid.LongLatOf(tile).y >= 0.0 ?
                       TemperatureTuning.SeasonalTempVariationCurve.Evaluate(newWorldGrid.DistanceFromEquatorNormalized(tile)) :
                       -TemperatureTuning.SeasonalTempVariationCurve.Evaluate(newWorldGrid.DistanceFromEquatorNormalized(tile));
            SeasonalShiftAmplitudeCache[tile] = __result;
            return(false);
        }