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); }