From 589d48a969fe5a5e05f629493891f17f0ff89122 Mon Sep 17 00:00:00 2001 From: yangzhi <@4F!xZpJwly&KbWq> Date: Wed, 10 Apr 2019 01:27:45 +0800 Subject: [PATCH] SMAPI Android Transportation --- SMAPI | 1 - src/Harmony/Attributes.cs | 325 ++ src/Harmony/CodeInstruction.cs | 62 + src/Harmony/CodeTranspiler.cs | 295 ++ src/Harmony/Extras/DelegateTypeFactory.cs | 43 + src/Harmony/Extras/FastAccess.cs | 123 + src/Harmony/Extras/MethodInvoker.cs | 179 + src/Harmony/GlobalSuppressions.cs | 4 + src/Harmony/HarmonyInstance.cs | 190 + src/Harmony/HarmonyMethod.cs | 141 + src/Harmony/HarmonySharedState.cs | 68 + src/Harmony/ILCopying/ByteBuffer.cs | 104 + src/Harmony/ILCopying/Emitter.cs | 315 ++ src/Harmony/ILCopying/ILInstruction.cs | 148 + src/Harmony/ILCopying/Memory.cs | 204 + src/Harmony/ILCopying/MethodCopier.cs | 730 ++++ src/Harmony/ILCopying/Signature.cs | 271 ++ src/Harmony/MethodPatcher.cs | 419 ++ src/Harmony/Patch.cs | 194 + src/Harmony/PatchFunctions.cs | 99 + src/Harmony/PatchProcessor.cs | 305 ++ src/Harmony/Priority.cs | 15 + src/Harmony/Tools/AccessCache.cs | 96 + src/Harmony/Tools/AccessTools.cs | 398 ++ src/Harmony/Tools/DynamicTools.cs | 226 + src/Harmony/Tools/Extensions.cs | 82 + src/Harmony/Tools/FileLog.cs | 120 + src/Harmony/Tools/PatchTools.cs | 33 + src/Harmony/Tools/SelfPatching.cs | 134 + src/Harmony/Tools/SymbolExtensions.cs | 61 + src/Harmony/Tools/Traverse.cs | 298 ++ src/Harmony/Transpilers.cs | 38 + src/Mod.csproj | 831 ++++ src/Mod.sln | 25 + src/ModEntry.cs | 66 + src/Mono/Cecil/ArrayType.cs | 141 + src/Mono/Cecil/AssemblyDefinition.cs | 194 + src/Mono/Cecil/AssemblyFlags.cs | 24 + src/Mono/Cecil/AssemblyHashAlgorithm.cs | 18 + src/Mono/Cecil/AssemblyLinkedResource.cs | 39 + src/Mono/Cecil/AssemblyNameDefinition.cs | 32 + src/Mono/Cecil/AssemblyNameReference.cs | 266 ++ src/Mono/Cecil/AssemblyReader.cs | 3862 +++++++++++++++++ src/Mono/Cecil/AssemblyWriter.cs | 3310 ++++++++++++++ src/Mono/Cecil/BaseAssemblyResolver.cs | 410 ++ src/Mono/Cecil/CallSite.cs | 106 + src/Mono/Cecil/Cil/Code.cs | 234 + src/Mono/Cecil/Cil/CodeReader.cs | 671 +++ src/Mono/Cecil/Cil/CodeWriter.cs | 659 +++ src/Mono/Cecil/Cil/Document.cs | 123 + src/Mono/Cecil/Cil/ExceptionHandler.cs | 71 + src/Mono/Cecil/Cil/ILProcessor.cs | 260 ++ src/Mono/Cecil/Cil/Instruction.cs | 296 ++ src/Mono/Cecil/Cil/MethodBody.cs | 248 ++ src/Mono/Cecil/Cil/OpCode.cs | 439 ++ src/Mono/Cecil/Cil/OpCodes.cs | 894 ++++ src/Mono/Cecil/Cil/PortablePdb.cs | 590 +++ src/Mono/Cecil/Cil/SequencePoint.cs | 76 + src/Mono/Cecil/Cil/Symbols.cs | 1127 +++++ src/Mono/Cecil/Cil/VariableDefinition.cs | 29 + src/Mono/Cecil/Cil/VariableReference.cs | 42 + src/Mono/Cecil/Consts.cs | 5 + src/Mono/Cecil/CustomAttribute.cs | 205 + src/Mono/Cecil/DefaultAssemblyResolver.cs | 61 + src/Mono/Cecil/EmbeddedResource.cs | 98 + src/Mono/Cecil/EventAttributes.cs | 21 + src/Mono/Cecil/EventDefinition.cs | 155 + src/Mono/Cecil/EventReference.cs | 42 + src/Mono/Cecil/ExportedType.cs | 240 + src/Mono/Cecil/FieldAttributes.cs | 41 + src/Mono/Cecil/FieldDefinition.cs | 267 ++ src/Mono/Cecil/FieldReference.cs | 68 + src/Mono/Cecil/FileAttributes.cs | 17 + src/Mono/Cecil/FunctionPointerType.cs | 111 + src/Mono/Cecil/GenericInstanceMethod.cs | 67 + src/Mono/Cecil/GenericInstanceType.cs | 65 + src/Mono/Cecil/GenericParameter.cs | 268 ++ src/Mono/Cecil/GenericParameterAttributes.cs | 27 + src/Mono/Cecil/IConstantProvider.cs | 44 + src/Mono/Cecil/ICustomAttributeProvider.cs | 42 + src/Mono/Cecil/IGenericInstance.cs | 48 + src/Mono/Cecil/IGenericParameterProvider.cs | 56 + src/Mono/Cecil/IMarshalInfoProvider.cs | 38 + src/Mono/Cecil/IMemberDefinition.cs | 82 + src/Mono/Cecil/IMetadataScope.cs | 23 + src/Mono/Cecil/IMetadataTokenProvider.cs | 17 + src/Mono/Cecil/IMethodSignature.cs | 57 + src/Mono/Cecil/Import.cs | 829 ++++ src/Mono/Cecil/LinkedResource.cs | 42 + src/Mono/Cecil/ManifestResourceAttributes.cs | 21 + src/Mono/Cecil/MarshalInfo.cs | 153 + src/Mono/Cecil/MemberDefinitionCollection.cs | 74 + src/Mono/Cecil/MemberReference.cs | 107 + src/Mono/Cecil/Metadata/BlobHeap.cs | 54 + src/Mono/Cecil/Metadata/Buffers.cs | 505 +++ src/Mono/Cecil/Metadata/CodedIndex.cs | 29 + src/Mono/Cecil/Metadata/ElementType.cs | 55 + src/Mono/Cecil/Metadata/GuidHeap.cs | 36 + src/Mono/Cecil/Metadata/Heap.cs | 24 + src/Mono/Cecil/Metadata/MetadataToken.cs | 94 + src/Mono/Cecil/Metadata/PdbHeap.cs | 34 + src/Mono/Cecil/Metadata/Row.cs | 152 + src/Mono/Cecil/Metadata/StringHeap.cs | 60 + src/Mono/Cecil/Metadata/TableHeap.cs | 104 + src/Mono/Cecil/Metadata/TokenType.cs | 49 + src/Mono/Cecil/Metadata/UserStringHeap.cs | 36 + src/Mono/Cecil/Metadata/Utilities.cs | 652 +++ src/Mono/Cecil/MetadataResolver.cs | 391 ++ src/Mono/Cecil/MetadataSystem.cs | 429 ++ src/Mono/Cecil/MethodAttributes.cs | 48 + src/Mono/Cecil/MethodCallingConvention.cs | 22 + src/Mono/Cecil/MethodDefinition.cs | 545 +++ src/Mono/Cecil/MethodImplAttributes.cs | 36 + src/Mono/Cecil/MethodReference.cs | 202 + src/Mono/Cecil/MethodReturnType.cs | 98 + src/Mono/Cecil/MethodSemanticsAttributes.cs | 25 + src/Mono/Cecil/MethodSpecification.cs | 84 + src/Mono/Cecil/Modifiers.cs | 112 + src/Mono/Cecil/ModuleDefinition.cs | 1373 ++++++ src/Mono/Cecil/ModuleKind.cs | 55 + src/Mono/Cecil/ModuleReference.cs | 49 + src/Mono/Cecil/NativeType.cs | 55 + src/Mono/Cecil/PE/BinaryStreamReader.cs | 54 + src/Mono/Cecil/PE/BinaryStreamWriter.cs | 93 + src/Mono/Cecil/PE/ByteBuffer.cs | 341 ++ .../Cecil/PE/ByteBufferEqualityComparer.cs | 48 + src/Mono/Cecil/PE/DataDirectory.cs | 32 + src/Mono/Cecil/PE/Image.cs | 170 + src/Mono/Cecil/PE/ImageReader.cs | 793 ++++ src/Mono/Cecil/PE/ImageWriter.cs | 855 ++++ src/Mono/Cecil/PE/Section.cs | 24 + src/Mono/Cecil/PE/TextMap.cs | 112 + src/Mono/Cecil/PInvokeAttributes.cs | 44 + src/Mono/Cecil/PInvokeInfo.cs | 120 + src/Mono/Cecil/ParameterAttributes.cs | 27 + src/Mono/Cecil/ParameterDefinition.cs | 146 + .../Cecil/ParameterDefinitionCollection.cs | 62 + src/Mono/Cecil/ParameterReference.cs | 57 + src/Mono/Cecil/PinnedType.cs | 35 + src/Mono/Cecil/PointerType.cs | 43 + src/Mono/Cecil/PropertyAttributes.cs | 23 + src/Mono/Cecil/PropertyDefinition.cs | 244 ++ src/Mono/Cecil/PropertyReference.cs | 45 + src/Mono/Cecil/ReferenceType.cs | 43 + src/Mono/Cecil/Resource.cs | 58 + src/Mono/Cecil/SecurityDeclaration.cs | 179 + src/Mono/Cecil/SentinelType.cs | 35 + src/Mono/Cecil/TargetRuntime.cs | 19 + src/Mono/Cecil/Treatments.cs | 66 + src/Mono/Cecil/TypeAttributes.cs | 63 + src/Mono/Cecil/TypeDefinition.cs | 609 +++ src/Mono/Cecil/TypeDefinitionCollection.cs | 100 + src/Mono/Cecil/TypeParser.cs | 532 +++ src/Mono/Cecil/TypeReference.cs | 352 ++ src/Mono/Cecil/TypeSpecification.cs | 68 + src/Mono/Cecil/TypeSystem.cs | 331 ++ src/Mono/Cecil/VariantType.cs | 35 + src/Mono/Cecil/WindowsRuntimeProjections.cs | 875 ++++ src/Mono/Collections/Generic/Collection.cs | 416 ++ .../Collections/Generic/ReadOnlyCollection.cs | 94 + src/Mono/Disposable.cs | 45 + src/Mono/Empty.cs | 62 + src/Mono/MergeSort.cs | 66 + .../Security/Cryptography/CryptoConvert.cs | 253 ++ .../Security/Cryptography/CryptoService.cs | 158 + src/Mono/Type.cs | 137 + src/Newtonsoft.Json/Bson/BsonBinaryType.cs | 44 + src/Newtonsoft.Json/Bson/BsonBinaryWriter.cs | 328 ++ src/Newtonsoft.Json/Bson/BsonObjectId.cs | 58 + src/Newtonsoft.Json/Bson/BsonReader.cs | 834 ++++ src/Newtonsoft.Json/Bson/BsonToken.cs | 166 + src/Newtonsoft.Json/Bson/BsonType.cs | 51 + src/Newtonsoft.Json/Bson/BsonWriter.cs | 537 +++ src/Newtonsoft.Json/ConstructorHandling.cs | 43 + .../Converters/BinaryConverter.cs | 208 + .../Converters/BsonObjectIdConverter.cs | 91 + .../Converters/CustomCreationConverter.cs | 101 + .../Converters/DataSetConverter.cs | 125 + .../Converters/DataTableConverter.cs | 254 ++ .../Converters/DateTimeConverterBase.cs | 58 + .../Converters/DiscriminatedUnionConverter.cs | 280 ++ .../Converters/EntityKeyMemberConverter.cs | 156 + .../Converters/ExpandoObjectConverter.cs | 165 + .../Converters/IsoDateTimeConverter.cs | 194 + .../Converters/JavaScriptDateTimeConverter.cs | 111 + .../Converters/KeyValuePairConverter.cs | 153 + .../Converters/RegexConverter.cs | 235 + .../Converters/StringEnumConverter.cs | 276 ++ .../Converters/UnixDateTimeConverter.cs | 132 + .../Converters/VersionConverter.cs | 106 + .../Converters/XmlNodeConverter.cs | 2217 ++++++++++ src/Newtonsoft.Json/DateFormatHandling.cs | 43 + src/Newtonsoft.Json/DateParseHandling.cs | 49 + src/Newtonsoft.Json/DateTimeZoneHandling.cs | 56 + src/Newtonsoft.Json/DefaultJsonNameTable.cs | 197 + src/Newtonsoft.Json/DefaultValueHandling.cs | 67 + src/Newtonsoft.Json/Dynamic.snk | Bin 0 -> 596 bytes src/Newtonsoft.Json/FloatFormatHandling.cs | 52 + src/Newtonsoft.Json/FloatParseHandling.cs | 43 + src/Newtonsoft.Json/FormatterAssemblyStyle.cs | 24 + src/Newtonsoft.Json/Formatting.cs | 43 + src/Newtonsoft.Json/IArrayPool.cs | 22 + src/Newtonsoft.Json/IJsonLineInfo.cs | 53 + src/Newtonsoft.Json/JsonArrayAttribute.cs | 73 + .../JsonConstructorAttribute.cs | 37 + src/Newtonsoft.Json/JsonContainerAttribute.cs | 180 + src/Newtonsoft.Json/JsonConvert.cs | 1084 +++++ src/Newtonsoft.Json/JsonConverter.cs | 147 + src/Newtonsoft.Json/JsonConverterAttribute.cs | 77 + .../JsonConverterCollection.cs | 39 + .../JsonDictionaryAttribute.cs | 52 + src/Newtonsoft.Json/JsonException.cs | 92 + .../JsonExtensionDataAttribute.cs | 37 + src/Newtonsoft.Json/JsonIgnoreAttribute.cs | 39 + src/Newtonsoft.Json/JsonNameTable.cs | 17 + src/Newtonsoft.Json/JsonObjectAttribute.cs | 100 + src/Newtonsoft.Json/JsonPosition.cs | 177 + src/Newtonsoft.Json/JsonPropertyAttribute.cs | 223 + src/Newtonsoft.Json/JsonReader.Async.cs | 246 ++ src/Newtonsoft.Json/JsonReader.cs | 1276 ++++++ src/Newtonsoft.Json/JsonReaderException.cs | 148 + src/Newtonsoft.Json/JsonRequiredAttribute.cs | 39 + .../JsonSerializationException.cs | 148 + src/Newtonsoft.Json/JsonSerializer.cs | 1229 ++++++ src/Newtonsoft.Json/JsonSerializerSettings.cs | 455 ++ src/Newtonsoft.Json/JsonTextReader.Async.cs | 1768 ++++++++ src/Newtonsoft.Json/JsonTextReader.cs | 2599 +++++++++++ src/Newtonsoft.Json/JsonTextWriter.Async.cs | 1357 ++++++ src/Newtonsoft.Json/JsonTextWriter.cs | 915 ++++ src/Newtonsoft.Json/JsonToken.cs | 127 + src/Newtonsoft.Json/JsonValidatingReader.cs | 1023 +++++ src/Newtonsoft.Json/JsonWriter.Async.cs | 1797 ++++++++ src/Newtonsoft.Json/JsonWriter.cs | 1781 ++++++++ src/Newtonsoft.Json/JsonWriterException.cs | 114 + src/Newtonsoft.Json/Linq/CommentHandling.cs | 43 + .../Linq/DuplicatePropertyNameHandling.cs | 46 + src/Newtonsoft.Json/Linq/Extensions.cs | 330 ++ src/Newtonsoft.Json/Linq/IJEnumerable.cs | 46 + src/Newtonsoft.Json/Linq/JArray.Async.cs | 103 + src/Newtonsoft.Json/Linq/JArray.cs | 398 ++ .../Linq/JConstructor.Async.cs | 106 + src/Newtonsoft.Json/Linq/JConstructor.cs | 245 ++ src/Newtonsoft.Json/Linq/JContainer.Async.cs | 169 + src/Newtonsoft.Json/Linq/JContainer.cs | 1203 +++++ src/Newtonsoft.Json/Linq/JEnumerable.cs | 140 + src/Newtonsoft.Json/Linq/JObject.Async.cs | 129 + src/Newtonsoft.Json/Linq/JObject.cs | 849 ++++ src/Newtonsoft.Json/Linq/JProperty.Async.cs | 118 + src/Newtonsoft.Json/Linq/JProperty.cs | 385 ++ .../Linq/JPropertyDescriptor.cs | 156 + .../Linq/JPropertyKeyedCollection.cs | 282 ++ src/Newtonsoft.Json/Linq/JRaw.Async.cs | 57 + src/Newtonsoft.Json/Linq/JRaw.cs | 75 + src/Newtonsoft.Json/Linq/JToken.Async.cs | 178 + src/Newtonsoft.Json/Linq/JToken.cs | 2695 ++++++++++++ .../Linq/JTokenEqualityComparer.cs | 64 + src/Newtonsoft.Json/Linq/JTokenReader.cs | 339 ++ src/Newtonsoft.Json/Linq/JTokenType.cs | 123 + .../Linq/JTokenWriter.Async.cs | 53 + src/Newtonsoft.Json/Linq/JTokenWriter.cs | 532 +++ src/Newtonsoft.Json/Linq/JValue.Async.cs | 138 + src/Newtonsoft.Json/Linq/JValue.cs | 1175 +++++ src/Newtonsoft.Json/Linq/JsonLoadSettings.cs | 81 + src/Newtonsoft.Json/Linq/JsonMergeSettings.cs | 103 + .../Linq/JsonPath/ArrayIndexFilter.cs | 44 + .../Linq/JsonPath/ArrayMultipleIndexFilter.cs | 25 + .../Linq/JsonPath/ArraySliceFilter.cs | 87 + .../Linq/JsonPath/FieldFilter.cs | 48 + .../Linq/JsonPath/FieldMultipleFilter.cs | 51 + src/Newtonsoft.Json/Linq/JsonPath/JPath.cs | 903 ++++ .../Linq/JsonPath/PathFilter.cs | 81 + .../Linq/JsonPath/QueryExpression.cs | 306 ++ .../Linq/JsonPath/QueryFilter.cs | 24 + .../Linq/JsonPath/QueryScanFilter.cs | 34 + .../Linq/JsonPath/RootFilter.cs | 18 + .../Linq/JsonPath/ScanFilter.cs | 48 + .../Linq/JsonPath/ScanMultipleFilter.cs | 40 + src/Newtonsoft.Json/Linq/LineInfoHandling.cs | 43 + .../Linq/MergeArrayHandling.cs | 20 + .../Linq/MergeNullValueHandling.cs | 21 + src/Newtonsoft.Json/MemberSerialization.cs | 58 + .../MetadataPropertyHandling.cs | 52 + src/Newtonsoft.Json/MissingMemberHandling.cs | 47 + src/Newtonsoft.Json/Newtonsoft.Json.csproj | 94 + src/Newtonsoft.Json/Newtonsoft.Json.ruleset | 15 + src/Newtonsoft.Json/NullValueHandling.cs | 47 + src/Newtonsoft.Json/ObjectCreationHandling.cs | 48 + .../PreserveReferencesHandling.cs | 62 + src/Newtonsoft.Json/ReferenceLoopHandling.cs | 52 + src/Newtonsoft.Json/Required.cs | 53 + src/Newtonsoft.Json/Schema/Extensions.cs | 137 + src/Newtonsoft.Json/Schema/JsonSchema.cs | 353 ++ .../Schema/JsonSchemaBuilder.cs | 487 +++ .../Schema/JsonSchemaConstants.cs | 80 + .../Schema/JsonSchemaException.cs | 113 + .../Schema/JsonSchemaGenerator.cs | 502 +++ src/Newtonsoft.Json/Schema/JsonSchemaModel.cs | 125 + .../Schema/JsonSchemaModelBuilder.cs | 211 + src/Newtonsoft.Json/Schema/JsonSchemaNode.cs | 85 + .../Schema/JsonSchemaNodeCollection.cs | 39 + .../Schema/JsonSchemaResolver.cs | 79 + src/Newtonsoft.Json/Schema/JsonSchemaType.cs | 87 + .../Schema/JsonSchemaWriter.cs | 258 ++ .../Schema/UndefinedSchemaIdHandling.cs | 56 + .../Schema/ValidationEventArgs.cs | 68 + .../Schema/ValidationEventHandler.cs | 40 + .../Serialization/CachedAttributeGetter.cs | 41 + .../Serialization/CamelCaseNamingStrategy.cs | 87 + .../CamelCasePropertyNamesContractResolver.cs | 94 + .../Serialization/DefaultContractResolver.cs | 1722 ++++++++ .../Serialization/DefaultNamingStrategy.cs | 18 + .../Serialization/DefaultReferenceResolver.cs | 83 + .../DefaultSerializationBinder.cs | 215 + .../Serialization/DiagnosticsTraceWriter.cs | 79 + .../Serialization/DynamicValueProvider.cs | 120 + .../Serialization/ErrorContext.cs | 75 + .../Serialization/ErrorEventArgs.cs | 58 + .../Serialization/ExpressionValueProvider.cs | 121 + .../Serialization/FormatterConverter.cs | 117 + .../Serialization/IAttributeProvider.cs | 51 + .../Serialization/IContractResolver.cs | 46 + .../Serialization/IReferenceResolver.cs | 67 + .../Serialization/ISerializationBinder.cs | 53 + .../Serialization/ITraceWriter.cs | 28 + .../Serialization/IValueProvider.cs | 47 + .../Serialization/JsonArrayContract.cs | 319 ++ .../Serialization/JsonContainerContract.cs | 117 + .../Serialization/JsonContract.cs | 325 ++ .../Serialization/JsonDictionaryContract.cs | 245 ++ .../Serialization/JsonDynamicContract.cs | 116 + .../Serialization/JsonFormatterConverter.cs | 160 + .../JsonISerializableContract.cs | 55 + .../Serialization/JsonLinqContract.cs | 45 + .../Serialization/JsonObjectContract.cs | 193 + .../Serialization/JsonPrimitiveContract.cs | 75 + .../Serialization/JsonProperty.cs | 318 ++ .../Serialization/JsonPropertyCollection.cs | 185 + .../JsonSerializerInternalBase.cs | 159 + .../JsonSerializerInternalReader.cs | 2603 +++++++++++ .../JsonSerializerInternalWriter.cs | 1223 ++++++ .../Serialization/JsonSerializerProxy.cs | 289 ++ .../Serialization/JsonStringContract.cs | 45 + .../Serialization/JsonTypeReflector.cs | 531 +++ .../Serialization/MemoryTraceWriter.cs | 100 + .../Serialization/NamingStrategy.cs | 146 + .../Serialization/ObjectConstructor.cs | 33 + .../Serialization/OnErrorAttribute.cs | 37 + .../ReflectionAttributeProvider.cs | 71 + .../Serialization/ReflectionValueProvider.cs | 90 + .../SerializationBinderAdapter.cs | 59 + .../Serialization/SnakeCaseNamingStrategy.cs | 87 + .../Serialization/TraceJsonReader.cs | 157 + .../Serialization/TraceJsonWriter.cs | 598 +++ src/Newtonsoft.Json/SerializationBinder.cs | 36 + src/Newtonsoft.Json/StringEscapeHandling.cs | 48 + src/Newtonsoft.Json/TraceLevel.cs | 39 + .../TypeNameAssemblyFormatHandling.cs | 43 + src/Newtonsoft.Json/TypeNameHandling.cs | 70 + src/Newtonsoft.Json/Utilities/AsyncUtils.cs | 108 + .../Utilities/Base64Encoder.cs | 217 + .../Utilities/BidirectionalDictionary.cs | 94 + .../Utilities/CollectionUtils.cs | 389 ++ .../Utilities/CollectionWrapper.cs | 320 ++ src/Newtonsoft.Json/Utilities/ConvertUtils.cs | 1569 +++++++ .../Utilities/DateTimeParser.cs | 277 ++ .../Utilities/DateTimeUtils.cs | 825 ++++ .../Utilities/DictionaryWrapper.cs | 698 +++ src/Newtonsoft.Json/Utilities/DynamicProxy.cs | 109 + .../Utilities/DynamicProxyMetaObject.cs | 391 ++ .../DynamicReflectionDelegateFactory.cs | 401 ++ src/Newtonsoft.Json/Utilities/DynamicUtils.cs | 210 + src/Newtonsoft.Json/Utilities/EnumInfo.cs | 43 + src/Newtonsoft.Json/Utilities/EnumUtils.cs | 401 ++ .../ExpressionReflectionDelegateFactory.cs | 383 ++ src/Newtonsoft.Json/Utilities/FSharpUtils.cs | 195 + .../Utilities/ILGeneratorExtensions.cs | 98 + .../Utilities/ImmutableCollectionsUtils.cs | 181 + .../Utilities/JavaScriptUtils.cs | 653 +++ .../Utilities/JsonTokenUtils.cs | 74 + .../LateBoundReflectionDelegateFactory.cs | 110 + src/Newtonsoft.Json/Utilities/LinqBridge.cs | 3071 +++++++++++++ src/Newtonsoft.Json/Utilities/MathUtils.cs | 187 + src/Newtonsoft.Json/Utilities/MethodBinder.cs | 346 ++ src/Newtonsoft.Json/Utilities/MethodCall.cs | 29 + .../Utilities/MiscellaneousUtils.cs | 165 + .../Utilities/ReflectionDelegateFactory.cs | 83 + .../Utilities/ReflectionObject.cs | 156 + .../Utilities/ReflectionUtils.cs | 1092 +++++ src/Newtonsoft.Json/Utilities/StringBuffer.cs | 116 + .../Utilities/StringReference.cs | 111 + src/Newtonsoft.Json/Utilities/StringUtils.cs | 344 ++ .../Utilities/StructMultiKey.cs | 61 + .../Utilities/ThreadSafeStore.cs | 109 + .../Utilities/TypeExtensions.cs | 632 +++ .../Utilities/ValidationUtils.cs | 40 + src/Newtonsoft.Json/WriteState.cs | 72 + src/Options/ModOptionsCheckbox.cs | 34 + src/Options/ModOptionsSlider.cs | 34 + src/Properties/AssemblyInfo.cs | 36 + src/SMAPI.Installer/Enums/ScriptAction.cs | 12 - .../Framework/InstallerPaths.cs | 65 - src/SMAPI.Installer/InteractiveInstaller.cs | 992 ----- src/SMAPI.Installer/Program.cs | 82 - .../Properties/AssemblyInfo.cs | 4 - src/SMAPI.Installer/README.txt | 44 - .../StardewModdingAPI.Installer.csproj | 80 - src/SMAPI.Installer/unix-install.sh | 21 - src/SMAPI.Installer/unix-launcher.sh | 97 - src/SMAPI.Installer/windows-exe-config.xml | 5 - src/SMAPI.Installer/windows-install.bat | 8 - src/SMAPI.Internal/SMAPI.Internal.projitems | 18 - .../StardewModdingAPI.Internal.shproj | 13 - .../Framework/DiagnosticResult.cs | 88 - .../Framework/DiagnosticVerifier.Helper.cs | 173 - .../Framework/DiagnosticVerifier.cs | 248 -- .../Mock/Netcode/NetCollection.cs | 10 - .../Mock/Netcode/NetFieldBase.cs | 16 - .../Mock/Netcode/NetInt.cs | 6 - .../Mock/Netcode/NetList.cs | 9 - .../Mock/Netcode/NetObjectList.cs | 6 - .../Mock/Netcode/NetRef.cs | 6 - .../Mock/StardewValley/Farmer.cs | 13 - .../Mock/StardewValley/Item.cs | 33 - .../Mock/StardewValley/Object.cs | 12 - .../NetFieldAnalyzerTests.cs | 160 - .../ObsoleteFieldAnalyzerTests.cs | 89 - ...SMAPI.ModBuildConfig.Analyzer.Tests.csproj | 19 - .../AnalyzerUtilities.cs | 93 - .../NetFieldAnalyzer.cs | 329 -- .../ObsoleteFieldAnalyzer.cs | 96 - .../Properties/AssemblyInfo.cs | 4 - ...wModdingAPI.ModBuildConfig.Analyzer.csproj | 24 - src/SMAPI.ModBuildConfig/DeployModTask.cs | 185 - .../Framework/ModFileManager.cs | 173 - .../Framework/UserErrorException.cs | 16 - .../Properties/AssemblyInfo.cs | 6 - .../StardewModdingAPI.ModBuildConfig.csproj | 76 - .../assets/nuget-icon.pdn | Bin 7401 -> 0 bytes .../assets/nuget-icon.png | Bin 5054 -> 0 bytes src/SMAPI.ModBuildConfig/build/smapi.targets | 185 - src/SMAPI.ModBuildConfig/package.nuspec | 21 - .../Framework/Commands/ArgumentParser.cs | 158 - .../Framework/Commands/ITrainerCommand.cs | 32 - .../Framework/Commands/Other/DebugCommand.cs | 32 - .../Commands/Other/ShowDataFilesCommand.cs | 25 - .../Commands/Other/ShowGameFilesCommand.cs | 25 - .../Framework/Commands/Player/AddCommand.cs | 146 - .../Commands/Player/ListItemTypesCommand.cs | 52 - .../Commands/Player/ListItemsCommand.cs | 75 - .../Commands/Player/SetColorCommand.cs | 75 - .../Commands/Player/SetHealthCommand.cs | 71 - .../Commands/Player/SetImmunityCommand.cs | 37 - .../Commands/Player/SetMaxHealthCommand.cs | 37 - .../Commands/Player/SetMaxStaminaCommand.cs | 37 - .../Commands/Player/SetMoneyCommand.cs | 71 - .../Commands/Player/SetNameCommand.cs | 51 - .../Commands/Player/SetStaminaCommand.cs | 71 - .../Commands/Player/SetStyleCommand.cs | 91 - .../Framework/Commands/TrainerCommand.cs | 102 - .../Framework/Commands/World/ClearCommand.cs | 262 -- .../Commands/World/DownMineLevelCommand.cs | 27 - .../Commands/World/FreezeTimeCommand.cs | 66 - .../Framework/Commands/World/SetDayCommand.cs | 38 - .../Commands/World/SetMineLevelCommand.cs | 32 - .../Commands/World/SetSeasonCommand.cs | 46 - .../Commands/World/SetTimeCommand.cs | 69 - .../Commands/World/SetYearCommand.cs | 38 - .../Framework/ItemData/ItemType.cs | 36 - .../Framework/ItemData/SearchableItem.cs | 60 - .../Framework/ItemRepository.cs | 193 - src/SMAPI.Mods.ConsoleCommands/ModEntry.cs | 73 - .../Properties/AssemblyInfo.cs | 4 - ...rdewModdingAPI.Mods.ConsoleCommands.csproj | 93 - src/SMAPI.Mods.ConsoleCommands/manifest.json | 9 - src/SMAPI.Mods.SaveBackup/ModEntry.cs | 181 - .../Properties/AssemblyInfo.cs | 4 - .../StardewModdingAPI.Mods.SaveBackup.csproj | 62 - src/SMAPI.Mods.SaveBackup/manifest.json | 9 - src/SMAPI.Tests/Core/ModResolverTests.cs | 539 --- src/SMAPI.Tests/Core/TranslationTests.cs | 356 -- src/SMAPI.Tests/Properties/AssemblyInfo.cs | 4 - src/SMAPI.Tests/Sample.cs | 30 - .../StardewModdingAPI.Tests.csproj | 80 - src/SMAPI.Tests/Toolkit/PathUtilitiesTests.cs | 70 - src/SMAPI.Tests/Utilities/SDateTests.cs | 310 -- .../Utilities/SemanticVersionTests.cs | 337 -- src/SMAPI.Tests/app.config | 15 - src/SMAPI.Web/Controllers/IndexController.cs | 198 - .../Controllers/LogParserController.cs | 180 - .../Controllers/ModsApiController.cs | 310 -- src/SMAPI.Web/Controllers/ModsController.cs | 74 - .../Framework/AllowLargePostsAttribute.cs | 52 - .../BeanstalkEnvPropsConfigProvider.cs | 54 - .../Clients/Chucklefish/ChucklefishClient.cs | 92 - .../Clients/Chucklefish/ChucklefishMod.cs | 18 - .../Clients/Chucklefish/IChucklefishClient.cs | 17 - .../Framework/Clients/GitHub/GitAsset.cs | 20 - .../Framework/Clients/GitHub/GitHubClient.cs | 94 - .../Framework/Clients/GitHub/GitRelease.cs | 33 - .../Framework/Clients/GitHub/IGitHubClient.cs | 18 - .../Clients/ModDrop/IModDropClient.cs | 17 - .../Clients/ModDrop/ModDropClient.cs | 96 - .../Framework/Clients/ModDrop/ModDropMod.cs | 24 - .../ModDrop/ResponseModels/FileDataModel.cs | 21 - .../ModDrop/ResponseModels/ModDataModel.cs | 15 - .../ModDrop/ResponseModels/ModListModel.cs | 11 - .../ModDrop/ResponseModels/ModModel.cs | 12 - .../Framework/Clients/Nexus/INexusClient.cs | 17 - .../Framework/Clients/Nexus/NexusMod.cs | 28 - .../Clients/Nexus/NexusWebScrapeClient.cs | 146 - .../Clients/Pastebin/IPastebinClient.cs | 17 - .../Framework/Clients/Pastebin/PasteInfo.cs | 15 - .../Clients/Pastebin/PastebinClient.cs | 134 - .../Clients/Pastebin/SavePasteResult.cs | 15 - .../ConfigModels/ApiClientsConfig.cs | 81 - .../ModCompatibilityListConfig.cs | 12 - .../ConfigModels/ModUpdateCheckConfig.cs | 22 - .../Framework/ConfigModels/SiteConfig.cs | 24 - .../InternalControllerFeatureProvider.cs | 27 - .../Framework/LogParsing/LogParseException.cs | 15 - .../Framework/LogParsing/LogParser.cs | 325 -- .../Framework/LogParsing/Models/LogLevel.cs | 29 - .../Framework/LogParsing/Models/LogMessage.cs | 30 - .../Framework/LogParsing/Models/LogModInfo.cs | 39 - .../Framework/LogParsing/Models/LogSection.cs | 15 - .../Framework/LogParsing/Models/ParsedLog.cs | 50 - .../ModRepositories/BaseRepository.cs | 51 - .../ModRepositories/ChucklefishRepository.cs | 59 - .../ModRepositories/GitHubRepository.cs | 72 - .../ModRepositories/IModRepository.cs | 24 - .../ModRepositories/ModDropRepository.cs | 59 - .../Framework/ModRepositories/ModInfoModel.cs | 56 - .../ModRepositories/NexusRepository.cs | 59 - .../ConditionalRedirectToHttpsRule.cs | 62 - .../ConditionalRewriteSubdomainRule.cs | 48 - .../RewriteRules/RedirectToUrlRule.cs | 57 - src/SMAPI.Web/Framework/VersionConstraint.cs | 16 - src/SMAPI.Web/Program.cs | 24 - src/SMAPI.Web/Properties/AssemblyInfo.cs | 4 - src/SMAPI.Web/Properties/launchSettings.json | 20 - src/SMAPI.Web/StardewModdingAPI.Web.csproj | 42 - src/SMAPI.Web/Startup.cs | 195 - src/SMAPI.Web/ViewModels/IndexModel.cs | 36 - src/SMAPI.Web/ViewModels/IndexVersionModel.cs | 41 - src/SMAPI.Web/ViewModels/LogParserModel.cs | 91 - .../ViewModels/ModCompatibilityModel.cs | 40 - src/SMAPI.Web/ViewModels/ModLinkModel.cs | 28 - src/SMAPI.Web/ViewModels/ModListModel.cs | 36 - src/SMAPI.Web/ViewModels/ModModel.cs | 123 - src/SMAPI.Web/Views/Index/Index.cshtml | 123 - src/SMAPI.Web/Views/Index/Privacy.cshtml | 43 - src/SMAPI.Web/Views/LogParser/Index.cshtml | 311 -- src/SMAPI.Web/Views/Mods/Index.cshtml | 108 - src/SMAPI.Web/Views/Shared/_Layout.cshtml | 36 - src/SMAPI.Web/Views/_ViewStart.cshtml | 3 - src/SMAPI.Web/appsettings.Development.json | 35 - src/SMAPI.Web/appsettings.json | 60 - src/SMAPI.Web/wwwroot/Content/css/index.css | 112 - .../wwwroot/Content/css/log-parser.css | 318 -- src/SMAPI.Web/wwwroot/Content/css/main.css | 141 - src/SMAPI.Web/wwwroot/Content/css/mods.css | 141 - src/SMAPI.Web/wwwroot/Content/css/privacy.css | 3 - .../Content/images/direct-download-icon.png | Bin 250 -> 0 bytes .../images/external/patreon-header-help.png | Bin 4928 -> 0 bytes .../external/patreon-header-upcoming.png | Bin 5421 -> 0 bytes .../external/patreon-header-what-i-do.png | Bin 4803 -> 0 bytes .../wwwroot/Content/images/nexus-icon.png | Bin 927 -> 0 bytes .../Content/images/pufferchick-cool.png | Bin 1099 -> 0 bytes .../wwwroot/Content/images/pufferchick.png | Bin 831 -> 0 bytes .../wwwroot/Content/images/sidebar-bg.gif | Bin 1104 -> 0 bytes src/SMAPI.Web/wwwroot/Content/js/index.js | 34 - .../wwwroot/Content/js/log-parser.js | 162 - src/SMAPI.Web/wwwroot/Content/js/mods.js | 284 -- .../wwwroot/StardewModdingAPI.metadata.json | 569 --- src/SMAPI.Web/wwwroot/favicon.ico | Bin 15086 -> 0 bytes src/SMAPI.sln | 151 - src/SMAPI.sln.DotSettings | 26 - src/SMAPI/Constants.cs | 27 +- src/SMAPI/Framework/Content/ContentCache.cs | 14 +- src/SMAPI/Framework/ContentCoordinator.cs | 2 +- src/SMAPI/Framework/IModMetadata.cs | 12 +- src/SMAPI/Framework/ModHelpers/ModHelper.cs | 6 +- .../Framework/ModHelpers/MultiplayerHelper.cs | 76 - .../Framework/ModLoading/AssemblyLoader.cs | 2 +- src/SMAPI/Framework/ModLoading/ModMetadata.cs | 20 +- .../ModLoading/PlatformAssemblyMap.cs | 2 +- .../Framework/Networking/SGalaxyNetClient.cs | 52 - .../Framework/Networking/SGalaxyNetServer.cs | 75 - .../Framework/Networking/SLidgrenClient.cs | 50 - .../Framework/Networking/SLidgrenServer.cs | 65 - src/SMAPI/Framework/Reflection/Reflector.cs | 8 +- src/SMAPI/Framework/SCore.cs | 440 +- src/SMAPI/Framework/SGame.cs | 1578 +++---- src/SMAPI/Framework/SMultiplayer.cs | 515 --- .../StateTracking/LocationTracker.cs | 2 +- .../StateTracking/WorldLocationsTracker.cs | 4 +- src/SMAPI/Framework/WatcherCore.cs | 2 +- src/SMAPI/IMod.cs | 5 + src/SMAPI/IModHelper.cs | 4 +- src/SMAPI/IMultiplayerHelper.cs | 33 - .../ConsoleWriting/ColorfulConsoleWriter.cs | 0 .../Internal}/ConsoleWriting/LogLevel.cs | 0 .../ConsoleWriting/MonitorColorScheme.cs | 2 +- .../Internal}/EnvironmentUtility.cs | 0 .../Internal}/Platform.cs | 3 + src/SMAPI/Mod.cs | 7 + src/SMAPI/Patches/LoadForNewGamePatch.cs | 9 +- src/SMAPI/Program.cs | 4 +- src/SMAPI/Properties/AssemblyInfo.cs | 7 - .../Toolkit/CoreInterfaces}/IManifest.cs | 0 .../IManifestContentPackFor.cs | 0 .../CoreInterfaces}/IManifestDependency.cs | 0 .../CoreInterfaces}/ISemanticVersion.cs | 0 .../Framework/ModData/MetadataModel.cs | 0 .../Framework/ModData/ModDataField.cs | 0 .../Framework/ModData/ModDataFieldKey.cs | 0 .../Framework/ModData/ModDataModel.cs | 0 .../Framework/ModData/ModDataRecord.cs | 0 .../ModData/ModDataRecordVersionedFields.cs | 0 .../Toolkit}/Framework/ModData/ModDatabase.cs | 0 .../Toolkit}/Framework/ModData/ModStatus.cs | 0 .../Toolkit}/Framework/ModData/ModWarning.cs | 0 .../Framework/ModScanning/ModFolder.cs | 0 .../Framework/ModScanning/ModScanner.cs | 0 .../Framework/UpdateData/ModRepositoryKey.cs | 0 .../Framework/UpdateData/UpdateKey.cs | 0 .../Toolkit}/ModToolkit.cs | 14 +- .../Toolkit}/SemanticVersion.cs | 0 .../ManifestContentPackForConverter.cs | 0 .../ManifestDependencyArrayConverter.cs | 0 .../Converters/SemanticVersionConverter.cs | 0 .../Converters/SimpleReadOnlyConverter.cs | 0 .../Serialisation/InternalExtensions.cs | 0 .../Toolkit}/Serialisation/JsonHelper.cs | 0 .../Toolkit}/Serialisation/Models/Manifest.cs | 0 .../Models/ManifestContentPackFor.cs | 0 .../Models/ManifestDependency.cs | 0 .../Toolkit}/Serialisation/SParseException.cs | 0 .../Toolkit}/Utilities/FileUtilities.cs | 4 +- .../Toolkit}/Utilities/PathUtilities.cs | 0 .../Properties/AssemblyInfo.cs | 4 - ...ewModdingAPI.Toolkit.CoreInterfaces.csproj | 18 - .../Framework/Clients/WebApi/ModEntryModel.cs | 33 - .../Clients/WebApi/ModEntryVersionModel.cs | 31 - .../WebApi/ModExtendedMetadataModel.cs | 126 - .../Framework/Clients/WebApi/ModSeachModel.cs | 36 - .../Clients/WebApi/ModSearchEntryModel.cs | 34 - .../Framework/Clients/WebApi/WebApiClient.cs | 73 - .../Framework/Clients/Wiki/WikiClient.cs | 243 -- .../Clients/Wiki/WikiCompatibilityInfo.cs | 24 - .../Clients/Wiki/WikiCompatibilityStatus.cs | 27 - .../Framework/Clients/Wiki/WikiModEntry.cs | 60 - .../Framework/Clients/Wiki/WikiModList.cs | 18 - .../Clients/Wiki/WikiSmapi3Status.cs | 18 - .../Properties/AssemblyInfo.cs | 7 - .../StardewModdingAPI.Toolkit.csproj | 27 - 656 files changed, 105236 insertions(+), 16795 deletions(-) delete mode 160000 SMAPI create mode 100644 src/Harmony/Attributes.cs create mode 100644 src/Harmony/CodeInstruction.cs create mode 100644 src/Harmony/CodeTranspiler.cs create mode 100644 src/Harmony/Extras/DelegateTypeFactory.cs create mode 100644 src/Harmony/Extras/FastAccess.cs create mode 100644 src/Harmony/Extras/MethodInvoker.cs create mode 100644 src/Harmony/GlobalSuppressions.cs create mode 100644 src/Harmony/HarmonyInstance.cs create mode 100644 src/Harmony/HarmonyMethod.cs create mode 100644 src/Harmony/HarmonySharedState.cs create mode 100644 src/Harmony/ILCopying/ByteBuffer.cs create mode 100644 src/Harmony/ILCopying/Emitter.cs create mode 100644 src/Harmony/ILCopying/ILInstruction.cs create mode 100644 src/Harmony/ILCopying/Memory.cs create mode 100644 src/Harmony/ILCopying/MethodCopier.cs create mode 100644 src/Harmony/ILCopying/Signature.cs create mode 100644 src/Harmony/MethodPatcher.cs create mode 100644 src/Harmony/Patch.cs create mode 100644 src/Harmony/PatchFunctions.cs create mode 100644 src/Harmony/PatchProcessor.cs create mode 100644 src/Harmony/Priority.cs create mode 100644 src/Harmony/Tools/AccessCache.cs create mode 100644 src/Harmony/Tools/AccessTools.cs create mode 100644 src/Harmony/Tools/DynamicTools.cs create mode 100644 src/Harmony/Tools/Extensions.cs create mode 100644 src/Harmony/Tools/FileLog.cs create mode 100644 src/Harmony/Tools/PatchTools.cs create mode 100644 src/Harmony/Tools/SelfPatching.cs create mode 100644 src/Harmony/Tools/SymbolExtensions.cs create mode 100644 src/Harmony/Tools/Traverse.cs create mode 100644 src/Harmony/Transpilers.cs create mode 100644 src/Mod.csproj create mode 100644 src/Mod.sln create mode 100644 src/ModEntry.cs create mode 100644 src/Mono/Cecil/ArrayType.cs create mode 100644 src/Mono/Cecil/AssemblyDefinition.cs create mode 100644 src/Mono/Cecil/AssemblyFlags.cs create mode 100644 src/Mono/Cecil/AssemblyHashAlgorithm.cs create mode 100644 src/Mono/Cecil/AssemblyLinkedResource.cs create mode 100644 src/Mono/Cecil/AssemblyNameDefinition.cs create mode 100644 src/Mono/Cecil/AssemblyNameReference.cs create mode 100644 src/Mono/Cecil/AssemblyReader.cs create mode 100644 src/Mono/Cecil/AssemblyWriter.cs create mode 100644 src/Mono/Cecil/BaseAssemblyResolver.cs create mode 100644 src/Mono/Cecil/CallSite.cs create mode 100644 src/Mono/Cecil/Cil/Code.cs create mode 100644 src/Mono/Cecil/Cil/CodeReader.cs create mode 100644 src/Mono/Cecil/Cil/CodeWriter.cs create mode 100644 src/Mono/Cecil/Cil/Document.cs create mode 100644 src/Mono/Cecil/Cil/ExceptionHandler.cs create mode 100644 src/Mono/Cecil/Cil/ILProcessor.cs create mode 100644 src/Mono/Cecil/Cil/Instruction.cs create mode 100644 src/Mono/Cecil/Cil/MethodBody.cs create mode 100644 src/Mono/Cecil/Cil/OpCode.cs create mode 100644 src/Mono/Cecil/Cil/OpCodes.cs create mode 100644 src/Mono/Cecil/Cil/PortablePdb.cs create mode 100644 src/Mono/Cecil/Cil/SequencePoint.cs create mode 100644 src/Mono/Cecil/Cil/Symbols.cs create mode 100644 src/Mono/Cecil/Cil/VariableDefinition.cs create mode 100644 src/Mono/Cecil/Cil/VariableReference.cs create mode 100644 src/Mono/Cecil/Consts.cs create mode 100644 src/Mono/Cecil/CustomAttribute.cs create mode 100644 src/Mono/Cecil/DefaultAssemblyResolver.cs create mode 100644 src/Mono/Cecil/EmbeddedResource.cs create mode 100644 src/Mono/Cecil/EventAttributes.cs create mode 100644 src/Mono/Cecil/EventDefinition.cs create mode 100644 src/Mono/Cecil/EventReference.cs create mode 100644 src/Mono/Cecil/ExportedType.cs create mode 100644 src/Mono/Cecil/FieldAttributes.cs create mode 100644 src/Mono/Cecil/FieldDefinition.cs create mode 100644 src/Mono/Cecil/FieldReference.cs create mode 100644 src/Mono/Cecil/FileAttributes.cs create mode 100644 src/Mono/Cecil/FunctionPointerType.cs create mode 100644 src/Mono/Cecil/GenericInstanceMethod.cs create mode 100644 src/Mono/Cecil/GenericInstanceType.cs create mode 100644 src/Mono/Cecil/GenericParameter.cs create mode 100644 src/Mono/Cecil/GenericParameterAttributes.cs create mode 100644 src/Mono/Cecil/IConstantProvider.cs create mode 100644 src/Mono/Cecil/ICustomAttributeProvider.cs create mode 100644 src/Mono/Cecil/IGenericInstance.cs create mode 100644 src/Mono/Cecil/IGenericParameterProvider.cs create mode 100644 src/Mono/Cecil/IMarshalInfoProvider.cs create mode 100644 src/Mono/Cecil/IMemberDefinition.cs create mode 100644 src/Mono/Cecil/IMetadataScope.cs create mode 100644 src/Mono/Cecil/IMetadataTokenProvider.cs create mode 100644 src/Mono/Cecil/IMethodSignature.cs create mode 100644 src/Mono/Cecil/Import.cs create mode 100644 src/Mono/Cecil/LinkedResource.cs create mode 100644 src/Mono/Cecil/ManifestResourceAttributes.cs create mode 100644 src/Mono/Cecil/MarshalInfo.cs create mode 100644 src/Mono/Cecil/MemberDefinitionCollection.cs create mode 100644 src/Mono/Cecil/MemberReference.cs create mode 100644 src/Mono/Cecil/Metadata/BlobHeap.cs create mode 100644 src/Mono/Cecil/Metadata/Buffers.cs create mode 100644 src/Mono/Cecil/Metadata/CodedIndex.cs create mode 100644 src/Mono/Cecil/Metadata/ElementType.cs create mode 100644 src/Mono/Cecil/Metadata/GuidHeap.cs create mode 100644 src/Mono/Cecil/Metadata/Heap.cs create mode 100644 src/Mono/Cecil/Metadata/MetadataToken.cs create mode 100644 src/Mono/Cecil/Metadata/PdbHeap.cs create mode 100644 src/Mono/Cecil/Metadata/Row.cs create mode 100644 src/Mono/Cecil/Metadata/StringHeap.cs create mode 100644 src/Mono/Cecil/Metadata/TableHeap.cs create mode 100644 src/Mono/Cecil/Metadata/TokenType.cs create mode 100644 src/Mono/Cecil/Metadata/UserStringHeap.cs create mode 100644 src/Mono/Cecil/Metadata/Utilities.cs create mode 100644 src/Mono/Cecil/MetadataResolver.cs create mode 100644 src/Mono/Cecil/MetadataSystem.cs create mode 100644 src/Mono/Cecil/MethodAttributes.cs create mode 100644 src/Mono/Cecil/MethodCallingConvention.cs create mode 100644 src/Mono/Cecil/MethodDefinition.cs create mode 100644 src/Mono/Cecil/MethodImplAttributes.cs create mode 100644 src/Mono/Cecil/MethodReference.cs create mode 100644 src/Mono/Cecil/MethodReturnType.cs create mode 100644 src/Mono/Cecil/MethodSemanticsAttributes.cs create mode 100644 src/Mono/Cecil/MethodSpecification.cs create mode 100644 src/Mono/Cecil/Modifiers.cs create mode 100644 src/Mono/Cecil/ModuleDefinition.cs create mode 100644 src/Mono/Cecil/ModuleKind.cs create mode 100644 src/Mono/Cecil/ModuleReference.cs create mode 100644 src/Mono/Cecil/NativeType.cs create mode 100644 src/Mono/Cecil/PE/BinaryStreamReader.cs create mode 100644 src/Mono/Cecil/PE/BinaryStreamWriter.cs create mode 100644 src/Mono/Cecil/PE/ByteBuffer.cs create mode 100644 src/Mono/Cecil/PE/ByteBufferEqualityComparer.cs create mode 100644 src/Mono/Cecil/PE/DataDirectory.cs create mode 100644 src/Mono/Cecil/PE/Image.cs create mode 100644 src/Mono/Cecil/PE/ImageReader.cs create mode 100644 src/Mono/Cecil/PE/ImageWriter.cs create mode 100644 src/Mono/Cecil/PE/Section.cs create mode 100644 src/Mono/Cecil/PE/TextMap.cs create mode 100644 src/Mono/Cecil/PInvokeAttributes.cs create mode 100644 src/Mono/Cecil/PInvokeInfo.cs create mode 100644 src/Mono/Cecil/ParameterAttributes.cs create mode 100644 src/Mono/Cecil/ParameterDefinition.cs create mode 100644 src/Mono/Cecil/ParameterDefinitionCollection.cs create mode 100644 src/Mono/Cecil/ParameterReference.cs create mode 100644 src/Mono/Cecil/PinnedType.cs create mode 100644 src/Mono/Cecil/PointerType.cs create mode 100644 src/Mono/Cecil/PropertyAttributes.cs create mode 100644 src/Mono/Cecil/PropertyDefinition.cs create mode 100644 src/Mono/Cecil/PropertyReference.cs create mode 100644 src/Mono/Cecil/ReferenceType.cs create mode 100644 src/Mono/Cecil/Resource.cs create mode 100644 src/Mono/Cecil/SecurityDeclaration.cs create mode 100644 src/Mono/Cecil/SentinelType.cs create mode 100644 src/Mono/Cecil/TargetRuntime.cs create mode 100644 src/Mono/Cecil/Treatments.cs create mode 100644 src/Mono/Cecil/TypeAttributes.cs create mode 100644 src/Mono/Cecil/TypeDefinition.cs create mode 100644 src/Mono/Cecil/TypeDefinitionCollection.cs create mode 100644 src/Mono/Cecil/TypeParser.cs create mode 100644 src/Mono/Cecil/TypeReference.cs create mode 100644 src/Mono/Cecil/TypeSpecification.cs create mode 100644 src/Mono/Cecil/TypeSystem.cs create mode 100644 src/Mono/Cecil/VariantType.cs create mode 100644 src/Mono/Cecil/WindowsRuntimeProjections.cs create mode 100644 src/Mono/Collections/Generic/Collection.cs create mode 100644 src/Mono/Collections/Generic/ReadOnlyCollection.cs create mode 100644 src/Mono/Disposable.cs create mode 100644 src/Mono/Empty.cs create mode 100644 src/Mono/MergeSort.cs create mode 100644 src/Mono/Security/Cryptography/CryptoConvert.cs create mode 100644 src/Mono/Security/Cryptography/CryptoService.cs create mode 100644 src/Mono/Type.cs create mode 100644 src/Newtonsoft.Json/Bson/BsonBinaryType.cs create mode 100644 src/Newtonsoft.Json/Bson/BsonBinaryWriter.cs create mode 100644 src/Newtonsoft.Json/Bson/BsonObjectId.cs create mode 100644 src/Newtonsoft.Json/Bson/BsonReader.cs create mode 100644 src/Newtonsoft.Json/Bson/BsonToken.cs create mode 100644 src/Newtonsoft.Json/Bson/BsonType.cs create mode 100644 src/Newtonsoft.Json/Bson/BsonWriter.cs create mode 100644 src/Newtonsoft.Json/ConstructorHandling.cs create mode 100644 src/Newtonsoft.Json/Converters/BinaryConverter.cs create mode 100644 src/Newtonsoft.Json/Converters/BsonObjectIdConverter.cs create mode 100644 src/Newtonsoft.Json/Converters/CustomCreationConverter.cs create mode 100644 src/Newtonsoft.Json/Converters/DataSetConverter.cs create mode 100644 src/Newtonsoft.Json/Converters/DataTableConverter.cs create mode 100644 src/Newtonsoft.Json/Converters/DateTimeConverterBase.cs create mode 100644 src/Newtonsoft.Json/Converters/DiscriminatedUnionConverter.cs create mode 100644 src/Newtonsoft.Json/Converters/EntityKeyMemberConverter.cs create mode 100644 src/Newtonsoft.Json/Converters/ExpandoObjectConverter.cs create mode 100644 src/Newtonsoft.Json/Converters/IsoDateTimeConverter.cs create mode 100644 src/Newtonsoft.Json/Converters/JavaScriptDateTimeConverter.cs create mode 100644 src/Newtonsoft.Json/Converters/KeyValuePairConverter.cs create mode 100644 src/Newtonsoft.Json/Converters/RegexConverter.cs create mode 100644 src/Newtonsoft.Json/Converters/StringEnumConverter.cs create mode 100644 src/Newtonsoft.Json/Converters/UnixDateTimeConverter.cs create mode 100644 src/Newtonsoft.Json/Converters/VersionConverter.cs create mode 100644 src/Newtonsoft.Json/Converters/XmlNodeConverter.cs create mode 100644 src/Newtonsoft.Json/DateFormatHandling.cs create mode 100644 src/Newtonsoft.Json/DateParseHandling.cs create mode 100644 src/Newtonsoft.Json/DateTimeZoneHandling.cs create mode 100644 src/Newtonsoft.Json/DefaultJsonNameTable.cs create mode 100644 src/Newtonsoft.Json/DefaultValueHandling.cs create mode 100644 src/Newtonsoft.Json/Dynamic.snk create mode 100644 src/Newtonsoft.Json/FloatFormatHandling.cs create mode 100644 src/Newtonsoft.Json/FloatParseHandling.cs create mode 100644 src/Newtonsoft.Json/FormatterAssemblyStyle.cs create mode 100644 src/Newtonsoft.Json/Formatting.cs create mode 100644 src/Newtonsoft.Json/IArrayPool.cs create mode 100644 src/Newtonsoft.Json/IJsonLineInfo.cs create mode 100644 src/Newtonsoft.Json/JsonArrayAttribute.cs create mode 100644 src/Newtonsoft.Json/JsonConstructorAttribute.cs create mode 100644 src/Newtonsoft.Json/JsonContainerAttribute.cs create mode 100644 src/Newtonsoft.Json/JsonConvert.cs create mode 100644 src/Newtonsoft.Json/JsonConverter.cs create mode 100644 src/Newtonsoft.Json/JsonConverterAttribute.cs create mode 100644 src/Newtonsoft.Json/JsonConverterCollection.cs create mode 100644 src/Newtonsoft.Json/JsonDictionaryAttribute.cs create mode 100644 src/Newtonsoft.Json/JsonException.cs create mode 100644 src/Newtonsoft.Json/JsonExtensionDataAttribute.cs create mode 100644 src/Newtonsoft.Json/JsonIgnoreAttribute.cs create mode 100644 src/Newtonsoft.Json/JsonNameTable.cs create mode 100644 src/Newtonsoft.Json/JsonObjectAttribute.cs create mode 100644 src/Newtonsoft.Json/JsonPosition.cs create mode 100644 src/Newtonsoft.Json/JsonPropertyAttribute.cs create mode 100644 src/Newtonsoft.Json/JsonReader.Async.cs create mode 100644 src/Newtonsoft.Json/JsonReader.cs create mode 100644 src/Newtonsoft.Json/JsonReaderException.cs create mode 100644 src/Newtonsoft.Json/JsonRequiredAttribute.cs create mode 100644 src/Newtonsoft.Json/JsonSerializationException.cs create mode 100644 src/Newtonsoft.Json/JsonSerializer.cs create mode 100644 src/Newtonsoft.Json/JsonSerializerSettings.cs create mode 100644 src/Newtonsoft.Json/JsonTextReader.Async.cs create mode 100644 src/Newtonsoft.Json/JsonTextReader.cs create mode 100644 src/Newtonsoft.Json/JsonTextWriter.Async.cs create mode 100644 src/Newtonsoft.Json/JsonTextWriter.cs create mode 100644 src/Newtonsoft.Json/JsonToken.cs create mode 100644 src/Newtonsoft.Json/JsonValidatingReader.cs create mode 100644 src/Newtonsoft.Json/JsonWriter.Async.cs create mode 100644 src/Newtonsoft.Json/JsonWriter.cs create mode 100644 src/Newtonsoft.Json/JsonWriterException.cs create mode 100644 src/Newtonsoft.Json/Linq/CommentHandling.cs create mode 100644 src/Newtonsoft.Json/Linq/DuplicatePropertyNameHandling.cs create mode 100644 src/Newtonsoft.Json/Linq/Extensions.cs create mode 100644 src/Newtonsoft.Json/Linq/IJEnumerable.cs create mode 100644 src/Newtonsoft.Json/Linq/JArray.Async.cs create mode 100644 src/Newtonsoft.Json/Linq/JArray.cs create mode 100644 src/Newtonsoft.Json/Linq/JConstructor.Async.cs create mode 100644 src/Newtonsoft.Json/Linq/JConstructor.cs create mode 100644 src/Newtonsoft.Json/Linq/JContainer.Async.cs create mode 100644 src/Newtonsoft.Json/Linq/JContainer.cs create mode 100644 src/Newtonsoft.Json/Linq/JEnumerable.cs create mode 100644 src/Newtonsoft.Json/Linq/JObject.Async.cs create mode 100644 src/Newtonsoft.Json/Linq/JObject.cs create mode 100644 src/Newtonsoft.Json/Linq/JProperty.Async.cs create mode 100644 src/Newtonsoft.Json/Linq/JProperty.cs create mode 100644 src/Newtonsoft.Json/Linq/JPropertyDescriptor.cs create mode 100644 src/Newtonsoft.Json/Linq/JPropertyKeyedCollection.cs create mode 100644 src/Newtonsoft.Json/Linq/JRaw.Async.cs create mode 100644 src/Newtonsoft.Json/Linq/JRaw.cs create mode 100644 src/Newtonsoft.Json/Linq/JToken.Async.cs create mode 100644 src/Newtonsoft.Json/Linq/JToken.cs create mode 100644 src/Newtonsoft.Json/Linq/JTokenEqualityComparer.cs create mode 100644 src/Newtonsoft.Json/Linq/JTokenReader.cs create mode 100644 src/Newtonsoft.Json/Linq/JTokenType.cs create mode 100644 src/Newtonsoft.Json/Linq/JTokenWriter.Async.cs create mode 100644 src/Newtonsoft.Json/Linq/JTokenWriter.cs create mode 100644 src/Newtonsoft.Json/Linq/JValue.Async.cs create mode 100644 src/Newtonsoft.Json/Linq/JValue.cs create mode 100644 src/Newtonsoft.Json/Linq/JsonLoadSettings.cs create mode 100644 src/Newtonsoft.Json/Linq/JsonMergeSettings.cs create mode 100644 src/Newtonsoft.Json/Linq/JsonPath/ArrayIndexFilter.cs create mode 100644 src/Newtonsoft.Json/Linq/JsonPath/ArrayMultipleIndexFilter.cs create mode 100644 src/Newtonsoft.Json/Linq/JsonPath/ArraySliceFilter.cs create mode 100644 src/Newtonsoft.Json/Linq/JsonPath/FieldFilter.cs create mode 100644 src/Newtonsoft.Json/Linq/JsonPath/FieldMultipleFilter.cs create mode 100644 src/Newtonsoft.Json/Linq/JsonPath/JPath.cs create mode 100644 src/Newtonsoft.Json/Linq/JsonPath/PathFilter.cs create mode 100644 src/Newtonsoft.Json/Linq/JsonPath/QueryExpression.cs create mode 100644 src/Newtonsoft.Json/Linq/JsonPath/QueryFilter.cs create mode 100644 src/Newtonsoft.Json/Linq/JsonPath/QueryScanFilter.cs create mode 100644 src/Newtonsoft.Json/Linq/JsonPath/RootFilter.cs create mode 100644 src/Newtonsoft.Json/Linq/JsonPath/ScanFilter.cs create mode 100644 src/Newtonsoft.Json/Linq/JsonPath/ScanMultipleFilter.cs create mode 100644 src/Newtonsoft.Json/Linq/LineInfoHandling.cs create mode 100644 src/Newtonsoft.Json/Linq/MergeArrayHandling.cs create mode 100644 src/Newtonsoft.Json/Linq/MergeNullValueHandling.cs create mode 100644 src/Newtonsoft.Json/MemberSerialization.cs create mode 100644 src/Newtonsoft.Json/MetadataPropertyHandling.cs create mode 100644 src/Newtonsoft.Json/MissingMemberHandling.cs create mode 100644 src/Newtonsoft.Json/Newtonsoft.Json.csproj create mode 100644 src/Newtonsoft.Json/Newtonsoft.Json.ruleset create mode 100644 src/Newtonsoft.Json/NullValueHandling.cs create mode 100644 src/Newtonsoft.Json/ObjectCreationHandling.cs create mode 100644 src/Newtonsoft.Json/PreserveReferencesHandling.cs create mode 100644 src/Newtonsoft.Json/ReferenceLoopHandling.cs create mode 100644 src/Newtonsoft.Json/Required.cs create mode 100644 src/Newtonsoft.Json/Schema/Extensions.cs create mode 100644 src/Newtonsoft.Json/Schema/JsonSchema.cs create mode 100644 src/Newtonsoft.Json/Schema/JsonSchemaBuilder.cs create mode 100644 src/Newtonsoft.Json/Schema/JsonSchemaConstants.cs create mode 100644 src/Newtonsoft.Json/Schema/JsonSchemaException.cs create mode 100644 src/Newtonsoft.Json/Schema/JsonSchemaGenerator.cs create mode 100644 src/Newtonsoft.Json/Schema/JsonSchemaModel.cs create mode 100644 src/Newtonsoft.Json/Schema/JsonSchemaModelBuilder.cs create mode 100644 src/Newtonsoft.Json/Schema/JsonSchemaNode.cs create mode 100644 src/Newtonsoft.Json/Schema/JsonSchemaNodeCollection.cs create mode 100644 src/Newtonsoft.Json/Schema/JsonSchemaResolver.cs create mode 100644 src/Newtonsoft.Json/Schema/JsonSchemaType.cs create mode 100644 src/Newtonsoft.Json/Schema/JsonSchemaWriter.cs create mode 100644 src/Newtonsoft.Json/Schema/UndefinedSchemaIdHandling.cs create mode 100644 src/Newtonsoft.Json/Schema/ValidationEventArgs.cs create mode 100644 src/Newtonsoft.Json/Schema/ValidationEventHandler.cs create mode 100644 src/Newtonsoft.Json/Serialization/CachedAttributeGetter.cs create mode 100644 src/Newtonsoft.Json/Serialization/CamelCaseNamingStrategy.cs create mode 100644 src/Newtonsoft.Json/Serialization/CamelCasePropertyNamesContractResolver.cs create mode 100644 src/Newtonsoft.Json/Serialization/DefaultContractResolver.cs create mode 100644 src/Newtonsoft.Json/Serialization/DefaultNamingStrategy.cs create mode 100644 src/Newtonsoft.Json/Serialization/DefaultReferenceResolver.cs create mode 100644 src/Newtonsoft.Json/Serialization/DefaultSerializationBinder.cs create mode 100644 src/Newtonsoft.Json/Serialization/DiagnosticsTraceWriter.cs create mode 100644 src/Newtonsoft.Json/Serialization/DynamicValueProvider.cs create mode 100644 src/Newtonsoft.Json/Serialization/ErrorContext.cs create mode 100644 src/Newtonsoft.Json/Serialization/ErrorEventArgs.cs create mode 100644 src/Newtonsoft.Json/Serialization/ExpressionValueProvider.cs create mode 100644 src/Newtonsoft.Json/Serialization/FormatterConverter.cs create mode 100644 src/Newtonsoft.Json/Serialization/IAttributeProvider.cs create mode 100644 src/Newtonsoft.Json/Serialization/IContractResolver.cs create mode 100644 src/Newtonsoft.Json/Serialization/IReferenceResolver.cs create mode 100644 src/Newtonsoft.Json/Serialization/ISerializationBinder.cs create mode 100644 src/Newtonsoft.Json/Serialization/ITraceWriter.cs create mode 100644 src/Newtonsoft.Json/Serialization/IValueProvider.cs create mode 100644 src/Newtonsoft.Json/Serialization/JsonArrayContract.cs create mode 100644 src/Newtonsoft.Json/Serialization/JsonContainerContract.cs create mode 100644 src/Newtonsoft.Json/Serialization/JsonContract.cs create mode 100644 src/Newtonsoft.Json/Serialization/JsonDictionaryContract.cs create mode 100644 src/Newtonsoft.Json/Serialization/JsonDynamicContract.cs create mode 100644 src/Newtonsoft.Json/Serialization/JsonFormatterConverter.cs create mode 100644 src/Newtonsoft.Json/Serialization/JsonISerializableContract.cs create mode 100644 src/Newtonsoft.Json/Serialization/JsonLinqContract.cs create mode 100644 src/Newtonsoft.Json/Serialization/JsonObjectContract.cs create mode 100644 src/Newtonsoft.Json/Serialization/JsonPrimitiveContract.cs create mode 100644 src/Newtonsoft.Json/Serialization/JsonProperty.cs create mode 100644 src/Newtonsoft.Json/Serialization/JsonPropertyCollection.cs create mode 100644 src/Newtonsoft.Json/Serialization/JsonSerializerInternalBase.cs create mode 100644 src/Newtonsoft.Json/Serialization/JsonSerializerInternalReader.cs create mode 100644 src/Newtonsoft.Json/Serialization/JsonSerializerInternalWriter.cs create mode 100644 src/Newtonsoft.Json/Serialization/JsonSerializerProxy.cs create mode 100644 src/Newtonsoft.Json/Serialization/JsonStringContract.cs create mode 100644 src/Newtonsoft.Json/Serialization/JsonTypeReflector.cs create mode 100644 src/Newtonsoft.Json/Serialization/MemoryTraceWriter.cs create mode 100644 src/Newtonsoft.Json/Serialization/NamingStrategy.cs create mode 100644 src/Newtonsoft.Json/Serialization/ObjectConstructor.cs create mode 100644 src/Newtonsoft.Json/Serialization/OnErrorAttribute.cs create mode 100644 src/Newtonsoft.Json/Serialization/ReflectionAttributeProvider.cs create mode 100644 src/Newtonsoft.Json/Serialization/ReflectionValueProvider.cs create mode 100644 src/Newtonsoft.Json/Serialization/SerializationBinderAdapter.cs create mode 100644 src/Newtonsoft.Json/Serialization/SnakeCaseNamingStrategy.cs create mode 100644 src/Newtonsoft.Json/Serialization/TraceJsonReader.cs create mode 100644 src/Newtonsoft.Json/Serialization/TraceJsonWriter.cs create mode 100644 src/Newtonsoft.Json/SerializationBinder.cs create mode 100644 src/Newtonsoft.Json/StringEscapeHandling.cs create mode 100644 src/Newtonsoft.Json/TraceLevel.cs create mode 100644 src/Newtonsoft.Json/TypeNameAssemblyFormatHandling.cs create mode 100644 src/Newtonsoft.Json/TypeNameHandling.cs create mode 100644 src/Newtonsoft.Json/Utilities/AsyncUtils.cs create mode 100644 src/Newtonsoft.Json/Utilities/Base64Encoder.cs create mode 100644 src/Newtonsoft.Json/Utilities/BidirectionalDictionary.cs create mode 100644 src/Newtonsoft.Json/Utilities/CollectionUtils.cs create mode 100644 src/Newtonsoft.Json/Utilities/CollectionWrapper.cs create mode 100644 src/Newtonsoft.Json/Utilities/ConvertUtils.cs create mode 100644 src/Newtonsoft.Json/Utilities/DateTimeParser.cs create mode 100644 src/Newtonsoft.Json/Utilities/DateTimeUtils.cs create mode 100644 src/Newtonsoft.Json/Utilities/DictionaryWrapper.cs create mode 100644 src/Newtonsoft.Json/Utilities/DynamicProxy.cs create mode 100644 src/Newtonsoft.Json/Utilities/DynamicProxyMetaObject.cs create mode 100644 src/Newtonsoft.Json/Utilities/DynamicReflectionDelegateFactory.cs create mode 100644 src/Newtonsoft.Json/Utilities/DynamicUtils.cs create mode 100644 src/Newtonsoft.Json/Utilities/EnumInfo.cs create mode 100644 src/Newtonsoft.Json/Utilities/EnumUtils.cs create mode 100644 src/Newtonsoft.Json/Utilities/ExpressionReflectionDelegateFactory.cs create mode 100644 src/Newtonsoft.Json/Utilities/FSharpUtils.cs create mode 100644 src/Newtonsoft.Json/Utilities/ILGeneratorExtensions.cs create mode 100644 src/Newtonsoft.Json/Utilities/ImmutableCollectionsUtils.cs create mode 100644 src/Newtonsoft.Json/Utilities/JavaScriptUtils.cs create mode 100644 src/Newtonsoft.Json/Utilities/JsonTokenUtils.cs create mode 100644 src/Newtonsoft.Json/Utilities/LateBoundReflectionDelegateFactory.cs create mode 100644 src/Newtonsoft.Json/Utilities/LinqBridge.cs create mode 100644 src/Newtonsoft.Json/Utilities/MathUtils.cs create mode 100644 src/Newtonsoft.Json/Utilities/MethodBinder.cs create mode 100644 src/Newtonsoft.Json/Utilities/MethodCall.cs create mode 100644 src/Newtonsoft.Json/Utilities/MiscellaneousUtils.cs create mode 100644 src/Newtonsoft.Json/Utilities/ReflectionDelegateFactory.cs create mode 100644 src/Newtonsoft.Json/Utilities/ReflectionObject.cs create mode 100644 src/Newtonsoft.Json/Utilities/ReflectionUtils.cs create mode 100644 src/Newtonsoft.Json/Utilities/StringBuffer.cs create mode 100644 src/Newtonsoft.Json/Utilities/StringReference.cs create mode 100644 src/Newtonsoft.Json/Utilities/StringUtils.cs create mode 100644 src/Newtonsoft.Json/Utilities/StructMultiKey.cs create mode 100644 src/Newtonsoft.Json/Utilities/ThreadSafeStore.cs create mode 100644 src/Newtonsoft.Json/Utilities/TypeExtensions.cs create mode 100644 src/Newtonsoft.Json/Utilities/ValidationUtils.cs create mode 100644 src/Newtonsoft.Json/WriteState.cs create mode 100644 src/Options/ModOptionsCheckbox.cs create mode 100644 src/Options/ModOptionsSlider.cs create mode 100644 src/Properties/AssemblyInfo.cs delete mode 100644 src/SMAPI.Installer/Enums/ScriptAction.cs delete mode 100644 src/SMAPI.Installer/Framework/InstallerPaths.cs delete mode 100644 src/SMAPI.Installer/InteractiveInstaller.cs delete mode 100644 src/SMAPI.Installer/Program.cs delete mode 100644 src/SMAPI.Installer/Properties/AssemblyInfo.cs delete mode 100644 src/SMAPI.Installer/README.txt delete mode 100644 src/SMAPI.Installer/StardewModdingAPI.Installer.csproj delete mode 100644 src/SMAPI.Installer/unix-install.sh delete mode 100644 src/SMAPI.Installer/unix-launcher.sh delete mode 100644 src/SMAPI.Installer/windows-exe-config.xml delete mode 100644 src/SMAPI.Installer/windows-install.bat delete mode 100644 src/SMAPI.Internal/SMAPI.Internal.projitems delete mode 100644 src/SMAPI.Internal/StardewModdingAPI.Internal.shproj delete mode 100644 src/SMAPI.ModBuildConfig.Analyzer.Tests/Framework/DiagnosticResult.cs delete mode 100644 src/SMAPI.ModBuildConfig.Analyzer.Tests/Framework/DiagnosticVerifier.Helper.cs delete mode 100644 src/SMAPI.ModBuildConfig.Analyzer.Tests/Framework/DiagnosticVerifier.cs delete mode 100644 src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/Netcode/NetCollection.cs delete mode 100644 src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/Netcode/NetFieldBase.cs delete mode 100644 src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/Netcode/NetInt.cs delete mode 100644 src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/Netcode/NetList.cs delete mode 100644 src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/Netcode/NetObjectList.cs delete mode 100644 src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/Netcode/NetRef.cs delete mode 100644 src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/StardewValley/Farmer.cs delete mode 100644 src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/StardewValley/Item.cs delete mode 100644 src/SMAPI.ModBuildConfig.Analyzer.Tests/Mock/StardewValley/Object.cs delete mode 100644 src/SMAPI.ModBuildConfig.Analyzer.Tests/NetFieldAnalyzerTests.cs delete mode 100644 src/SMAPI.ModBuildConfig.Analyzer.Tests/ObsoleteFieldAnalyzerTests.cs delete mode 100644 src/SMAPI.ModBuildConfig.Analyzer.Tests/SMAPI.ModBuildConfig.Analyzer.Tests.csproj delete mode 100644 src/SMAPI.ModBuildConfig.Analyzer/AnalyzerUtilities.cs delete mode 100644 src/SMAPI.ModBuildConfig.Analyzer/NetFieldAnalyzer.cs delete mode 100644 src/SMAPI.ModBuildConfig.Analyzer/ObsoleteFieldAnalyzer.cs delete mode 100644 src/SMAPI.ModBuildConfig.Analyzer/Properties/AssemblyInfo.cs delete mode 100644 src/SMAPI.ModBuildConfig.Analyzer/StardewModdingAPI.ModBuildConfig.Analyzer.csproj delete mode 100644 src/SMAPI.ModBuildConfig/DeployModTask.cs delete mode 100644 src/SMAPI.ModBuildConfig/Framework/ModFileManager.cs delete mode 100644 src/SMAPI.ModBuildConfig/Framework/UserErrorException.cs delete mode 100644 src/SMAPI.ModBuildConfig/Properties/AssemblyInfo.cs delete mode 100644 src/SMAPI.ModBuildConfig/StardewModdingAPI.ModBuildConfig.csproj delete mode 100644 src/SMAPI.ModBuildConfig/assets/nuget-icon.pdn delete mode 100644 src/SMAPI.ModBuildConfig/assets/nuget-icon.png delete mode 100644 src/SMAPI.ModBuildConfig/build/smapi.targets delete mode 100644 src/SMAPI.ModBuildConfig/package.nuspec delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/ArgumentParser.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/ITrainerCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Other/DebugCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Other/ShowDataFilesCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Other/ShowGameFilesCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/AddCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/ListItemTypesCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/ListItemsCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/SetColorCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/SetHealthCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/SetImmunityCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/SetMaxHealthCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/SetMaxStaminaCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/SetMoneyCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/SetNameCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/SetStaminaCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/Player/SetStyleCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/TrainerCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/World/ClearCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/World/DownMineLevelCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/World/FreezeTimeCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/World/SetDayCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/World/SetMineLevelCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/World/SetSeasonCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/World/SetTimeCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/Commands/World/SetYearCommand.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/ItemData/ItemType.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/ItemData/SearchableItem.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Framework/ItemRepository.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/ModEntry.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/Properties/AssemblyInfo.cs delete mode 100644 src/SMAPI.Mods.ConsoleCommands/StardewModdingAPI.Mods.ConsoleCommands.csproj delete mode 100644 src/SMAPI.Mods.ConsoleCommands/manifest.json delete mode 100644 src/SMAPI.Mods.SaveBackup/ModEntry.cs delete mode 100644 src/SMAPI.Mods.SaveBackup/Properties/AssemblyInfo.cs delete mode 100644 src/SMAPI.Mods.SaveBackup/StardewModdingAPI.Mods.SaveBackup.csproj delete mode 100644 src/SMAPI.Mods.SaveBackup/manifest.json delete mode 100644 src/SMAPI.Tests/Core/ModResolverTests.cs delete mode 100644 src/SMAPI.Tests/Core/TranslationTests.cs delete mode 100644 src/SMAPI.Tests/Properties/AssemblyInfo.cs delete mode 100644 src/SMAPI.Tests/Sample.cs delete mode 100644 src/SMAPI.Tests/StardewModdingAPI.Tests.csproj delete mode 100644 src/SMAPI.Tests/Toolkit/PathUtilitiesTests.cs delete mode 100644 src/SMAPI.Tests/Utilities/SDateTests.cs delete mode 100644 src/SMAPI.Tests/Utilities/SemanticVersionTests.cs delete mode 100644 src/SMAPI.Tests/app.config delete mode 100644 src/SMAPI.Web/Controllers/IndexController.cs delete mode 100644 src/SMAPI.Web/Controllers/LogParserController.cs delete mode 100644 src/SMAPI.Web/Controllers/ModsApiController.cs delete mode 100644 src/SMAPI.Web/Controllers/ModsController.cs delete mode 100644 src/SMAPI.Web/Framework/AllowLargePostsAttribute.cs delete mode 100644 src/SMAPI.Web/Framework/BeanstalkEnvPropsConfigProvider.cs delete mode 100644 src/SMAPI.Web/Framework/Clients/Chucklefish/ChucklefishClient.cs delete mode 100644 src/SMAPI.Web/Framework/Clients/Chucklefish/ChucklefishMod.cs delete mode 100644 src/SMAPI.Web/Framework/Clients/Chucklefish/IChucklefishClient.cs delete mode 100644 src/SMAPI.Web/Framework/Clients/GitHub/GitAsset.cs delete mode 100644 src/SMAPI.Web/Framework/Clients/GitHub/GitHubClient.cs delete mode 100644 src/SMAPI.Web/Framework/Clients/GitHub/GitRelease.cs delete mode 100644 src/SMAPI.Web/Framework/Clients/GitHub/IGitHubClient.cs delete mode 100644 src/SMAPI.Web/Framework/Clients/ModDrop/IModDropClient.cs delete mode 100644 src/SMAPI.Web/Framework/Clients/ModDrop/ModDropClient.cs delete mode 100644 src/SMAPI.Web/Framework/Clients/ModDrop/ModDropMod.cs delete mode 100644 src/SMAPI.Web/Framework/Clients/ModDrop/ResponseModels/FileDataModel.cs delete mode 100644 src/SMAPI.Web/Framework/Clients/ModDrop/ResponseModels/ModDataModel.cs delete mode 100644 src/SMAPI.Web/Framework/Clients/ModDrop/ResponseModels/ModListModel.cs delete mode 100644 src/SMAPI.Web/Framework/Clients/ModDrop/ResponseModels/ModModel.cs delete mode 100644 src/SMAPI.Web/Framework/Clients/Nexus/INexusClient.cs delete mode 100644 src/SMAPI.Web/Framework/Clients/Nexus/NexusMod.cs delete mode 100644 src/SMAPI.Web/Framework/Clients/Nexus/NexusWebScrapeClient.cs delete mode 100644 src/SMAPI.Web/Framework/Clients/Pastebin/IPastebinClient.cs delete mode 100644 src/SMAPI.Web/Framework/Clients/Pastebin/PasteInfo.cs delete mode 100644 src/SMAPI.Web/Framework/Clients/Pastebin/PastebinClient.cs delete mode 100644 src/SMAPI.Web/Framework/Clients/Pastebin/SavePasteResult.cs delete mode 100644 src/SMAPI.Web/Framework/ConfigModels/ApiClientsConfig.cs delete mode 100644 src/SMAPI.Web/Framework/ConfigModels/ModCompatibilityListConfig.cs delete mode 100644 src/SMAPI.Web/Framework/ConfigModels/ModUpdateCheckConfig.cs delete mode 100644 src/SMAPI.Web/Framework/ConfigModels/SiteConfig.cs delete mode 100644 src/SMAPI.Web/Framework/InternalControllerFeatureProvider.cs delete mode 100644 src/SMAPI.Web/Framework/LogParsing/LogParseException.cs delete mode 100644 src/SMAPI.Web/Framework/LogParsing/LogParser.cs delete mode 100644 src/SMAPI.Web/Framework/LogParsing/Models/LogLevel.cs delete mode 100644 src/SMAPI.Web/Framework/LogParsing/Models/LogMessage.cs delete mode 100644 src/SMAPI.Web/Framework/LogParsing/Models/LogModInfo.cs delete mode 100644 src/SMAPI.Web/Framework/LogParsing/Models/LogSection.cs delete mode 100644 src/SMAPI.Web/Framework/LogParsing/Models/ParsedLog.cs delete mode 100644 src/SMAPI.Web/Framework/ModRepositories/BaseRepository.cs delete mode 100644 src/SMAPI.Web/Framework/ModRepositories/ChucklefishRepository.cs delete mode 100644 src/SMAPI.Web/Framework/ModRepositories/GitHubRepository.cs delete mode 100644 src/SMAPI.Web/Framework/ModRepositories/IModRepository.cs delete mode 100644 src/SMAPI.Web/Framework/ModRepositories/ModDropRepository.cs delete mode 100644 src/SMAPI.Web/Framework/ModRepositories/ModInfoModel.cs delete mode 100644 src/SMAPI.Web/Framework/ModRepositories/NexusRepository.cs delete mode 100644 src/SMAPI.Web/Framework/RewriteRules/ConditionalRedirectToHttpsRule.cs delete mode 100644 src/SMAPI.Web/Framework/RewriteRules/ConditionalRewriteSubdomainRule.cs delete mode 100644 src/SMAPI.Web/Framework/RewriteRules/RedirectToUrlRule.cs delete mode 100644 src/SMAPI.Web/Framework/VersionConstraint.cs delete mode 100644 src/SMAPI.Web/Program.cs delete mode 100644 src/SMAPI.Web/Properties/AssemblyInfo.cs delete mode 100644 src/SMAPI.Web/Properties/launchSettings.json delete mode 100644 src/SMAPI.Web/StardewModdingAPI.Web.csproj delete mode 100644 src/SMAPI.Web/Startup.cs delete mode 100644 src/SMAPI.Web/ViewModels/IndexModel.cs delete mode 100644 src/SMAPI.Web/ViewModels/IndexVersionModel.cs delete mode 100644 src/SMAPI.Web/ViewModels/LogParserModel.cs delete mode 100644 src/SMAPI.Web/ViewModels/ModCompatibilityModel.cs delete mode 100644 src/SMAPI.Web/ViewModels/ModLinkModel.cs delete mode 100644 src/SMAPI.Web/ViewModels/ModListModel.cs delete mode 100644 src/SMAPI.Web/ViewModels/ModModel.cs delete mode 100644 src/SMAPI.Web/Views/Index/Index.cshtml delete mode 100644 src/SMAPI.Web/Views/Index/Privacy.cshtml delete mode 100644 src/SMAPI.Web/Views/LogParser/Index.cshtml delete mode 100644 src/SMAPI.Web/Views/Mods/Index.cshtml delete mode 100644 src/SMAPI.Web/Views/Shared/_Layout.cshtml delete mode 100644 src/SMAPI.Web/Views/_ViewStart.cshtml delete mode 100644 src/SMAPI.Web/appsettings.Development.json delete mode 100644 src/SMAPI.Web/appsettings.json delete mode 100644 src/SMAPI.Web/wwwroot/Content/css/index.css delete mode 100644 src/SMAPI.Web/wwwroot/Content/css/log-parser.css delete mode 100644 src/SMAPI.Web/wwwroot/Content/css/main.css delete mode 100644 src/SMAPI.Web/wwwroot/Content/css/mods.css delete mode 100644 src/SMAPI.Web/wwwroot/Content/css/privacy.css delete mode 100644 src/SMAPI.Web/wwwroot/Content/images/direct-download-icon.png delete mode 100644 src/SMAPI.Web/wwwroot/Content/images/external/patreon-header-help.png delete mode 100644 src/SMAPI.Web/wwwroot/Content/images/external/patreon-header-upcoming.png delete mode 100644 src/SMAPI.Web/wwwroot/Content/images/external/patreon-header-what-i-do.png delete mode 100644 src/SMAPI.Web/wwwroot/Content/images/nexus-icon.png delete mode 100644 src/SMAPI.Web/wwwroot/Content/images/pufferchick-cool.png delete mode 100644 src/SMAPI.Web/wwwroot/Content/images/pufferchick.png delete mode 100644 src/SMAPI.Web/wwwroot/Content/images/sidebar-bg.gif delete mode 100644 src/SMAPI.Web/wwwroot/Content/js/index.js delete mode 100644 src/SMAPI.Web/wwwroot/Content/js/log-parser.js delete mode 100644 src/SMAPI.Web/wwwroot/Content/js/mods.js delete mode 100644 src/SMAPI.Web/wwwroot/StardewModdingAPI.metadata.json delete mode 100644 src/SMAPI.Web/wwwroot/favicon.ico delete mode 100644 src/SMAPI.sln delete mode 100644 src/SMAPI.sln.DotSettings delete mode 100644 src/SMAPI/Framework/ModHelpers/MultiplayerHelper.cs delete mode 100644 src/SMAPI/Framework/Networking/SGalaxyNetClient.cs delete mode 100644 src/SMAPI/Framework/Networking/SGalaxyNetServer.cs delete mode 100644 src/SMAPI/Framework/Networking/SLidgrenClient.cs delete mode 100644 src/SMAPI/Framework/Networking/SLidgrenServer.cs delete mode 100644 src/SMAPI/Framework/SMultiplayer.cs delete mode 100644 src/SMAPI/IMultiplayerHelper.cs rename src/{SMAPI.Internal => SMAPI/Internal}/ConsoleWriting/ColorfulConsoleWriter.cs (100%) rename src/{SMAPI.Internal => SMAPI/Internal}/ConsoleWriting/LogLevel.cs (100%) rename src/{SMAPI.Internal => SMAPI/Internal}/ConsoleWriting/MonitorColorScheme.cs (92%) rename src/{SMAPI.Internal => SMAPI/Internal}/EnvironmentUtility.cs (100%) rename src/{SMAPI.Internal => SMAPI/Internal}/Platform.cs (81%) delete mode 100644 src/SMAPI/Properties/AssemblyInfo.cs rename src/{StardewModdingAPI.Toolkit.CoreInterfaces => SMAPI/Toolkit/CoreInterfaces}/IManifest.cs (100%) rename src/{StardewModdingAPI.Toolkit.CoreInterfaces => SMAPI/Toolkit/CoreInterfaces}/IManifestContentPackFor.cs (100%) rename src/{StardewModdingAPI.Toolkit.CoreInterfaces => SMAPI/Toolkit/CoreInterfaces}/IManifestDependency.cs (100%) rename src/{StardewModdingAPI.Toolkit.CoreInterfaces => SMAPI/Toolkit/CoreInterfaces}/ISemanticVersion.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Framework/ModData/MetadataModel.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Framework/ModData/ModDataField.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Framework/ModData/ModDataFieldKey.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Framework/ModData/ModDataModel.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Framework/ModData/ModDataRecord.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Framework/ModData/ModDataRecordVersionedFields.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Framework/ModData/ModDatabase.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Framework/ModData/ModStatus.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Framework/ModData/ModWarning.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Framework/ModScanning/ModFolder.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Framework/ModScanning/ModScanner.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Framework/UpdateData/ModRepositoryKey.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Framework/UpdateData/UpdateKey.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/ModToolkit.cs (90%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/SemanticVersion.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Serialisation/Converters/ManifestContentPackForConverter.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Serialisation/Converters/ManifestDependencyArrayConverter.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Serialisation/Converters/SemanticVersionConverter.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Serialisation/Converters/SimpleReadOnlyConverter.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Serialisation/InternalExtensions.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Serialisation/JsonHelper.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Serialisation/Models/Manifest.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Serialisation/Models/ManifestContentPackFor.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Serialisation/Models/ManifestDependency.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Serialisation/SParseException.cs (100%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Utilities/FileUtilities.cs (90%) rename src/{StardewModdingAPI.Toolkit => SMAPI/Toolkit}/Utilities/PathUtilities.cs (100%) delete mode 100644 src/StardewModdingAPI.Toolkit.CoreInterfaces/Properties/AssemblyInfo.cs delete mode 100644 src/StardewModdingAPI.Toolkit.CoreInterfaces/StardewModdingAPI.Toolkit.CoreInterfaces.csproj delete mode 100644 src/StardewModdingAPI.Toolkit/Framework/Clients/WebApi/ModEntryModel.cs delete mode 100644 src/StardewModdingAPI.Toolkit/Framework/Clients/WebApi/ModEntryVersionModel.cs delete mode 100644 src/StardewModdingAPI.Toolkit/Framework/Clients/WebApi/ModExtendedMetadataModel.cs delete mode 100644 src/StardewModdingAPI.Toolkit/Framework/Clients/WebApi/ModSeachModel.cs delete mode 100644 src/StardewModdingAPI.Toolkit/Framework/Clients/WebApi/ModSearchEntryModel.cs delete mode 100644 src/StardewModdingAPI.Toolkit/Framework/Clients/WebApi/WebApiClient.cs delete mode 100644 src/StardewModdingAPI.Toolkit/Framework/Clients/Wiki/WikiClient.cs delete mode 100644 src/StardewModdingAPI.Toolkit/Framework/Clients/Wiki/WikiCompatibilityInfo.cs delete mode 100644 src/StardewModdingAPI.Toolkit/Framework/Clients/Wiki/WikiCompatibilityStatus.cs delete mode 100644 src/StardewModdingAPI.Toolkit/Framework/Clients/Wiki/WikiModEntry.cs delete mode 100644 src/StardewModdingAPI.Toolkit/Framework/Clients/Wiki/WikiModList.cs delete mode 100644 src/StardewModdingAPI.Toolkit/Framework/Clients/Wiki/WikiSmapi3Status.cs delete mode 100644 src/StardewModdingAPI.Toolkit/Properties/AssemblyInfo.cs delete mode 100644 src/StardewModdingAPI.Toolkit/StardewModdingAPI.Toolkit.csproj diff --git a/SMAPI b/SMAPI deleted file mode 160000 index 9e521091..00000000 --- a/SMAPI +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9e521091fe4b13a9091bcb30c9f73ef210ace2dd diff --git a/src/Harmony/Attributes.cs b/src/Harmony/Attributes.cs new file mode 100644 index 00000000..14e4f513 --- /dev/null +++ b/src/Harmony/Attributes.cs @@ -0,0 +1,325 @@ +using System; +using System.Collections.Generic; + +namespace Harmony +{ + public enum MethodType + { + Normal, + Getter, + Setter, + Constructor, + StaticConstructor + } + + [Obsolete("This enum will be removed in the next major version. To define special methods, use MethodType")] + public enum PropertyMethod + { + Getter, + Setter + } + + public enum ArgumentType + { + Normal, + Ref, + Out, + Pointer + } + + public enum HarmonyPatchType + { + All, + Prefix, + Postfix, + Transpiler + } + + public class HarmonyAttribute : Attribute + { + public HarmonyMethod info = new HarmonyMethod(); + } + + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true)] + public class HarmonyPatch : HarmonyAttribute + { + // no argument (for use with TargetMethod) + + public HarmonyPatch() + { + } + + // starting with 'Type' + + public HarmonyPatch(Type declaringType) + { + info.declaringType = declaringType; + } + + public HarmonyPatch(Type declaringType, Type[] argumentTypes) + { + info.declaringType = declaringType; + info.argumentTypes = argumentTypes; + } + + public HarmonyPatch(Type declaringType, string methodName) + { + info.declaringType = declaringType; + info.methodName = methodName; + } + + public HarmonyPatch(Type declaringType, string methodName, params Type[] argumentTypes) + { + info.declaringType = declaringType; + info.methodName = methodName; + info.argumentTypes = argumentTypes; + } + + public HarmonyPatch(Type declaringType, string methodName, Type[] argumentTypes, ArgumentType[] argumentVariations) + { + info.declaringType = declaringType; + info.methodName = methodName; + ParseSpecialArguments(argumentTypes, argumentVariations); + } + + public HarmonyPatch(Type declaringType, MethodType methodType) + { + info.declaringType = declaringType; + info.methodType = methodType; + } + + public HarmonyPatch(Type declaringType, MethodType methodType, params Type[] argumentTypes) + { + info.declaringType = declaringType; + info.methodType = methodType; + info.argumentTypes = argumentTypes; + } + + public HarmonyPatch(Type declaringType, MethodType methodType, Type[] argumentTypes, ArgumentType[] argumentVariations) + { + info.declaringType = declaringType; + info.methodType = methodType; + ParseSpecialArguments(argumentTypes, argumentVariations); + } + + public HarmonyPatch(Type declaringType, string propertyName, MethodType methodType) + { + info.declaringType = declaringType; + info.methodName = propertyName; + info.methodType = methodType; + } + + // starting with 'string' + + public HarmonyPatch(string methodName) + { + info.methodName = methodName; + } + + public HarmonyPatch(string methodName, params Type[] argumentTypes) + { + info.methodName = methodName; + info.argumentTypes = argumentTypes; + } + + public HarmonyPatch(string methodName, Type[] argumentTypes, ArgumentType[] argumentVariations) + { + info.methodName = methodName; + ParseSpecialArguments(argumentTypes, argumentVariations); + } + + public HarmonyPatch(string propertyName, MethodType methodType) + { + info.methodName = propertyName; + info.methodType = methodType; + } + + // starting with 'MethodType' + + public HarmonyPatch(MethodType methodType) + { + info.methodType = methodType; + } + + public HarmonyPatch(MethodType methodType, params Type[] argumentTypes) + { + info.methodType = methodType; + info.argumentTypes = argumentTypes; + } + + public HarmonyPatch(MethodType methodType, Type[] argumentTypes, ArgumentType[] argumentVariations) + { + info.methodType = methodType; + ParseSpecialArguments(argumentTypes, argumentVariations); + } + + // starting with 'Type[]' + + public HarmonyPatch(Type[] argumentTypes) + { + info.argumentTypes = argumentTypes; + } + + public HarmonyPatch(Type[] argumentTypes, ArgumentType[] argumentVariations) + { + ParseSpecialArguments(argumentTypes, argumentVariations); + } + + // Obsolete attributes + + [Obsolete("This attribute will be removed in the next major version. Use HarmonyPatch together with MethodType.Getter or MethodType.Setter instead")] + public HarmonyPatch(string propertyName, PropertyMethod type) + { + info.methodName = propertyName; + info.methodType = type == PropertyMethod.Getter ? MethodType.Getter : MethodType.Setter; + } + + // + + private void ParseSpecialArguments(Type[] argumentTypes, ArgumentType[] argumentVariations) + { + if (argumentVariations == null || argumentVariations.Length == 0) + { + info.argumentTypes = argumentTypes; + return; + } + + if (argumentTypes.Length < argumentVariations.Length) + throw new ArgumentException("argumentVariations contains more elements than argumentTypes", nameof(argumentVariations)); + + var types = new List(); + for (var i = 0; i < argumentTypes.Length; i++) + { + var type = argumentTypes[i]; + switch (argumentVariations[i]) + { + case ArgumentType.Ref: + case ArgumentType.Out: + type = type.MakeByRefType(); + break; + case ArgumentType.Pointer: + type = type.MakePointerType(); + break; + } + types.Add(type); + } + info.argumentTypes = types.ToArray(); + } + } + + [AttributeUsage(AttributeTargets.Class)] + public class HarmonyPatchAll : HarmonyAttribute + { + public HarmonyPatchAll() + { + } + } + + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] + public class HarmonyPriority : HarmonyAttribute + { + public HarmonyPriority(int prioritiy) + { + info.prioritiy = prioritiy; + } + } + + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] + public class HarmonyBefore : HarmonyAttribute + { + public HarmonyBefore(params string[] before) + { + info.before = before; + } + } + + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] + public class HarmonyAfter : HarmonyAttribute + { + public HarmonyAfter(params string[] after) + { + info.after = after; + } + } + + // If you don't want to use the special method names you can annotate + // using the following attributes: + + [AttributeUsage(AttributeTargets.Method)] + public class HarmonyPrepare : Attribute + { + } + + [AttributeUsage(AttributeTargets.Method)] + public class HarmonyCleanup : Attribute + { + } + + [AttributeUsage(AttributeTargets.Method)] + public class HarmonyTargetMethod : Attribute + { + } + + [AttributeUsage(AttributeTargets.Method)] + public class HarmonyTargetMethods : Attribute + { + } + + [AttributeUsage(AttributeTargets.Method)] + public class HarmonyPrefix : Attribute + { + } + + [AttributeUsage(AttributeTargets.Method)] + public class HarmonyPostfix : Attribute + { + } + + [AttributeUsage(AttributeTargets.Method)] + public class HarmonyTranspiler : Attribute + { + } + + [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = true)] + public class HarmonyArgument : Attribute + { + public string OriginalName { get; private set; } + public int Index { get; private set; } + public string NewName { get; private set; } + + public HarmonyArgument(string originalName) : this(originalName, null) + { + } + + public HarmonyArgument(int index) : this(index, null) + { + } + + public HarmonyArgument(string originalName, string newName) + { + OriginalName = originalName; + Index = -1; + NewName = newName; + } + + public HarmonyArgument(int index, string name) + { + OriginalName = null; + Index = index; + NewName = name; + } + } + + // This attribute is for Harmony patching itself to the latest + // + [AttributeUsage(AttributeTargets.Method | AttributeTargets.Constructor)] + internal class UpgradeToLatestVersion : Attribute + { + public int version; + + public UpgradeToLatestVersion(int version) + { + this.version = version; + } + } +} \ No newline at end of file diff --git a/src/Harmony/CodeInstruction.cs b/src/Harmony/CodeInstruction.cs new file mode 100644 index 00000000..a6d89726 --- /dev/null +++ b/src/Harmony/CodeInstruction.cs @@ -0,0 +1,62 @@ +using Harmony.ILCopying; +using System.Collections.Generic; +using System.Linq; +using System.Reflection.Emit; + +namespace Harmony +{ + public class CodeInstruction + { + public OpCode opcode; + public object operand; + public List