diff options
author | Jesse Plamondon-Willard <github@jplamondonw.com> | 2016-11-05 16:51:06 -0400 |
---|---|---|
committer | Jesse Plamondon-Willard <github@jplamondonw.com> | 2016-11-05 16:51:06 -0400 |
commit | e2af64c7a9a27432d018c4e30934630e983e764f (patch) | |
tree | 3c3b3de92bc155964172ba2ca523ba0fdddda693 /src | |
parent | e78c136f52f4dbcbca3809fe9a7c0942c0dadc15 (diff) | |
download | SMAPI-e2af64c7a9a27432d018c4e30934630e983e764f.tar.gz SMAPI-e2af64c7a9a27432d018c4e30934630e983e764f.tar.bz2 SMAPI-e2af64c7a9a27432d018c4e30934630e983e764f.zip |
mark extensions deprecated (#165)
Diffstat (limited to 'src')
-rw-r--r-- | src/StardewModdingAPI.sln.DotSettings | 3 | ||||
-rw-r--r-- | src/StardewModdingAPI/Extensions.cs | 40 |
2 files changed, 41 insertions, 2 deletions
diff --git a/src/StardewModdingAPI.sln.DotSettings b/src/StardewModdingAPI.sln.DotSettings index 99688f9f..7ee9b76e 100644 --- a/src/StardewModdingAPI.sln.DotSettings +++ b/src/StardewModdingAPI.sln.DotSettings @@ -7,7 +7,8 @@ <s:String x:Key="/Default/CodeStyle/CSharpVarKeywordUsage/ForSimpleTypes/@EntryValue">UseExplicitType</s:String> <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=ID/@EntryIndexedValue">ID</s:String> <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateInstanceFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb"><ExtraRule Prefix="_" Suffix="" Style="aaBb" /></Policy></s:String> - <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateStaticFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateStaticFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb"><ExtraRule Prefix="_" Suffix="" Style="aaBb" /></Policy></s:String> + <s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateStaticReadonly/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb"><ExtraRule Prefix="_" Suffix="" Style="aaBb" /></Policy></s:String> <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EAddAccessorOwnerDeclarationBracesMigration/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateBlankLinesAroundFieldToBlankLinesAroundProperty/@EntryIndexedValue">True</s:Boolean> <s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateThisQualifierSettings/@EntryIndexedValue">True</s:Boolean> diff --git a/src/StardewModdingAPI/Extensions.cs b/src/StardewModdingAPI/Extensions.cs index 27278416..d76523cd 100644 --- a/src/StardewModdingAPI/Extensions.cs +++ b/src/StardewModdingAPI/Extensions.cs @@ -12,10 +12,24 @@ namespace StardewModdingAPI public static class Extensions { /********* + ** Properties + *********/ + /// <summary>The backing field for <see cref="Random"/>.</summary> + private static readonly Random _random = new Random(); + + + /********* ** Accessors *********/ /// <summary>A pseudo-random number generator.</summary> - public static Random Random = new Random(); + public static Random Random + { + get + { + Program.DeprecationManager.Warn($"{nameof(Extensions)}.{nameof(Extensions.Random)}", "1.0"); + return Extensions._random; + } + } /********* @@ -25,12 +39,16 @@ namespace StardewModdingAPI /// <param name="key">The key to check.</param> public static bool IsKeyDown(this Keys key) { + Program.DeprecationManager.Warn($"{nameof(Extensions)}.{nameof(Extensions.IsKeyDown)}", "1.0"); + return Keyboard.GetState().IsKeyDown(key); } /// <summary>Get a random color.</summary> public static Color RandomColour() { + Program.DeprecationManager.Warn($"{nameof(Extensions)}.{nameof(Extensions.RandomColour)}", "1.0"); + return new Color(Extensions.Random.Next(0, 255), Extensions.Random.Next(0, 255), Extensions.Random.Next(0, 255)); } @@ -40,6 +58,7 @@ namespace StardewModdingAPI [Obsolete("The usage of ToSingular has changed. Please update your call to use ToSingular<T>")] public static string ToSingular(this IEnumerable ienum, string split = ", ") { + Program.DeprecationManager.Warn($"{nameof(Extensions)}.{nameof(Extensions.ToSingular)}", "1.0"); Log.Error("The usage of ToSingular has changed. Please update your call to use ToSingular<T>"); return ""; } @@ -50,6 +69,8 @@ namespace StardewModdingAPI /// <param name="split">The value separator.</param> public static string ToSingular<T>(this IEnumerable<T> ienum, string split = ", ") { + Program.DeprecationManager.Warn($"{nameof(Extensions)}.{nameof(Extensions.ToSingular)}", "1.0"); + //Apparently Keys[] won't split normally :l if (typeof(T) == typeof(Keys)) { @@ -62,6 +83,8 @@ namespace StardewModdingAPI /// <param name="o">The value.</param> public static bool IsInt32(this object o) { + Program.DeprecationManager.Warn($"{nameof(Extensions)}.{nameof(Extensions.IsInt32)}", "1.0"); + int i; return int.TryParse(o.ToString(), out i); } @@ -70,6 +93,8 @@ namespace StardewModdingAPI /// <param name="o">The value.</param> public static int AsInt32(this object o) { + Program.DeprecationManager.Warn($"{nameof(Extensions)}.{nameof(Extensions.AsInt32)}", "1.0"); + return int.Parse(o.ToString()); } @@ -77,6 +102,8 @@ namespace StardewModdingAPI /// <param name="o">The value.</param> public static bool IsBool(this object o) { + Program.DeprecationManager.Warn($"{nameof(Extensions)}.{nameof(Extensions.IsBool)}", "1.0"); + bool b; return bool.TryParse(o.ToString(), out b); } @@ -85,6 +112,8 @@ namespace StardewModdingAPI /// <param name="o">The value.</param> public static bool AsBool(this object o) { + Program.DeprecationManager.Warn($"{nameof(Extensions)}.{nameof(Extensions.AsBool)}", "1.0"); + return bool.Parse(o.ToString()); } @@ -92,6 +121,8 @@ namespace StardewModdingAPI /// <param name="enumerable">The values to hash.</param> public static int GetHash(this IEnumerable enumerable) { + Program.DeprecationManager.Warn($"{nameof(Extensions)}.{nameof(Extensions.GetHash)}", "1.0"); + var hash = 0; foreach (var v in enumerable) hash ^= v.GetHashCode(); @@ -103,6 +134,8 @@ namespace StardewModdingAPI /// <param name="o">The value.</param> public static T Cast<T>(this object o) where T : class { + Program.DeprecationManager.Warn($"{nameof(Extensions)}.{nameof(Extensions.Cast)}", "1.0"); + return o as T; } @@ -110,6 +143,7 @@ namespace StardewModdingAPI /// <param name="o">The object to scan.</param> public static FieldInfo[] GetPrivateFields(this object o) { + Program.DeprecationManager.Warn($"{nameof(Extensions)}.{nameof(Extensions.GetPrivateFields)}", "1.0"); return o.GetType().GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Static); } @@ -118,6 +152,7 @@ namespace StardewModdingAPI /// <param name="name">The name of the field to find.</param> public static FieldInfo GetBaseFieldInfo(this Type t, string name) { + Program.DeprecationManager.Warn($"{nameof(Extensions)}.{nameof(Extensions.GetBaseFieldValue)}", "1.0"); return t.GetField(name, BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Static); } @@ -127,6 +162,7 @@ namespace StardewModdingAPI /// <param name="name">The name of the field to find.</param> public static T GetBaseFieldValue<T>(this Type t, object o, string name) where T : class { + Program.DeprecationManager.Warn($"{nameof(Extensions)}.{nameof(Extensions.GetBaseFieldValue)}", "1.0"); return t.GetBaseFieldInfo(name).GetValue(o) as T; } @@ -137,6 +173,7 @@ namespace StardewModdingAPI /// <param name="newValue">The value to set.</param> public static void SetBaseFieldValue<T>(this Type t, object o, string name, object newValue) where T : class { + Program.DeprecationManager.Warn($"{nameof(Extensions)}.{nameof(Extensions.SetBaseFieldValue)}", "1.0"); t.GetBaseFieldInfo(name).SetValue(o, newValue as T); } @@ -144,6 +181,7 @@ namespace StardewModdingAPI /// <param name="st">The string to copy.</param> public static string RemoveNumerics(this string st) { + Program.DeprecationManager.Warn($"{nameof(Extensions)}.{nameof(Extensions.RemoveNumerics)}", "1.0"); var s = st; foreach (var c in s) { |