diff --git a/.editorconfig b/.editorconfig
index cd042c463f..b683dad667 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,11 +1,161 @@
-root = true
+root=true
[*]
-insert_final_newline = true
-indent_style = space
-indent_size = 4
-trim_trailing_whitespace = true
-charset = utf-8-bom
+insert_final_newline=true
+indent_style=space
+indent_size=4
+trim_trailing_whitespace=true
+charset=utf-8-bom
+
+# Microsoft .NET properties
+csharp_indent_braces=false
+csharp_indent_switch_labels=true
+csharp_new_line_before_catch=true
+csharp_new_line_before_else=true
+csharp_new_line_before_finally=true
+csharp_new_line_before_members_in_object_initializers=false
+csharp_new_line_before_open_brace=all
+csharp_new_line_between_query_expression_clauses=true
+csharp_preferred_modifier_order=public, private, protected, internal, new, abstract, virtual, sealed, override, static, readonly, extern, unsafe, volatile, async:suggestion
+csharp_preserve_single_line_blocks=true
+csharp_space_after_cast=true
+csharp_space_after_colon_in_inheritance_clause=true
+csharp_space_after_comma=true
+csharp_space_after_dot=false
+csharp_space_after_keywords_in_control_flow_statements=true
+csharp_space_after_semicolon_in_for_statement=true
+csharp_space_around_binary_operators=before_and_after
+csharp_space_before_colon_in_inheritance_clause=true
+csharp_space_before_comma=false
+csharp_space_before_dot=false
+csharp_space_before_open_square_brackets=false
+csharp_space_before_semicolon_in_for_statement=false
+csharp_space_between_empty_square_brackets=false
+csharp_space_between_method_call_empty_parameter_list_parentheses=false
+csharp_space_between_method_call_name_and_opening_parenthesis=false
+csharp_space_between_method_call_parameter_list_parentheses=false
+csharp_space_between_method_declaration_empty_parameter_list_parentheses=false
+csharp_space_between_method_declaration_name_and_open_parenthesis=false
+csharp_space_between_method_declaration_parameter_list_parentheses=false
+csharp_space_between_parentheses=false
+csharp_space_between_square_brackets=false
+csharp_style_expression_bodied_accessors=true:suggestion
+csharp_style_expression_bodied_constructors=true:suggestion
+csharp_style_expression_bodied_methods=true:suggestion
+csharp_style_expression_bodied_properties=true:suggestion
+csharp_style_var_elsewhere=true:suggestion
+csharp_style_var_for_built_in_types=true:suggestion
+csharp_style_var_when_type_is_apparent=true:suggestion
+csharp_using_directive_placement=outside_namespace:silent
+dotnet_naming_rule.constants_rule.severity=warning
+dotnet_naming_rule.constants_rule.style=upper_camel_case_style
+dotnet_naming_rule.constants_rule.symbols=constants_symbols
+dotnet_naming_rule.event_rule.severity=warning
+dotnet_naming_rule.event_rule.style=upper_camel_case_style
+dotnet_naming_rule.event_rule.symbols=event_symbols
+dotnet_naming_rule.interfaces_rule.severity=warning
+dotnet_naming_rule.interfaces_rule.style=i_upper_camel_case_style
+dotnet_naming_rule.interfaces_rule.symbols=interfaces_symbols
+dotnet_naming_rule.locals_rule.severity=warning
+dotnet_naming_rule.locals_rule.style=lower_camel_case_style_1
+dotnet_naming_rule.locals_rule.symbols=locals_symbols
+dotnet_naming_rule.local_constants_rule.severity=warning
+dotnet_naming_rule.local_constants_rule.style=lower_camel_case_style_1
+dotnet_naming_rule.local_constants_rule.symbols=local_constants_symbols
+dotnet_naming_rule.local_functions_rule.severity=warning
+dotnet_naming_rule.local_functions_rule.style=upper_camel_case_style
+dotnet_naming_rule.local_functions_rule.symbols=local_functions_symbols
+dotnet_naming_rule.method_rule.severity=warning
+dotnet_naming_rule.method_rule.style=upper_camel_case_style
+dotnet_naming_rule.method_rule.symbols=method_symbols
+dotnet_naming_rule.parameters_rule.severity=warning
+dotnet_naming_rule.parameters_rule.style=lower_camel_case_style_1
+dotnet_naming_rule.parameters_rule.symbols=parameters_symbols
+dotnet_naming_rule.private_constants_rule.severity=warning
+dotnet_naming_rule.private_constants_rule.style=upper_camel_case_style
+dotnet_naming_rule.private_constants_rule.symbols=private_constants_symbols
+dotnet_naming_rule.private_instance_fields_rule.severity=warning
+dotnet_naming_rule.private_instance_fields_rule.style=lower_camel_case_style
+dotnet_naming_rule.private_instance_fields_rule.symbols=private_instance_fields_symbols
+dotnet_naming_rule.private_static_fields_rule.severity=warning
+dotnet_naming_rule.private_static_fields_rule.style=lower_camel_case_style
+dotnet_naming_rule.private_static_fields_rule.symbols=private_static_fields_symbols
+dotnet_naming_rule.private_static_readonly_rule.severity=warning
+dotnet_naming_rule.private_static_readonly_rule.style=upper_camel_case_style
+dotnet_naming_rule.private_static_readonly_rule.symbols=private_static_readonly_symbols
+dotnet_naming_rule.property_rule.severity=warning
+dotnet_naming_rule.property_rule.style=upper_camel_case_style
+dotnet_naming_rule.property_rule.symbols=property_symbols
+dotnet_naming_rule.public_fields_rule.severity=warning
+dotnet_naming_rule.public_fields_rule.style=upper_camel_case_style
+dotnet_naming_rule.public_fields_rule.symbols=public_fields_symbols
+dotnet_naming_rule.static_readonly_rule.severity=warning
+dotnet_naming_rule.static_readonly_rule.style=upper_camel_case_style
+dotnet_naming_rule.static_readonly_rule.symbols=static_readonly_symbols
+dotnet_naming_rule.types_and_namespaces_rule.severity=warning
+dotnet_naming_rule.types_and_namespaces_rule.style=upper_camel_case_style
+dotnet_naming_rule.types_and_namespaces_rule.symbols=types_and_namespaces_symbols
+dotnet_naming_rule.type_parameters_rule.severity=warning
+dotnet_naming_rule.type_parameters_rule.style=t_upper_camel_case_style
+dotnet_naming_rule.type_parameters_rule.symbols=type_parameters_symbols
+dotnet_naming_style.i_upper_camel_case_style.capitalization=pascal_case
+dotnet_naming_style.i_upper_camel_case_style.required_prefix=I
+dotnet_naming_style.lower_camel_case_style.capitalization=camel_case
+dotnet_naming_style.lower_camel_case_style.required_prefix=_
+dotnet_naming_style.lower_camel_case_style_1.capitalization=camel_case
+dotnet_naming_style.t_upper_camel_case_style.capitalization=pascal_case
+dotnet_naming_style.t_upper_camel_case_style.required_prefix=T
+dotnet_naming_style.upper_camel_case_style.capitalization=pascal_case
+dotnet_naming_symbols.constants_symbols.applicable_accessibilities=public,internal,protected,protected_internal,private_protected
+dotnet_naming_symbols.constants_symbols.applicable_kinds=field
+dotnet_naming_symbols.constants_symbols.required_modifiers=const
+dotnet_naming_symbols.event_symbols.applicable_accessibilities=*
+dotnet_naming_symbols.event_symbols.applicable_kinds=event
+dotnet_naming_symbols.interfaces_symbols.applicable_accessibilities=*
+dotnet_naming_symbols.interfaces_symbols.applicable_kinds=interface
+dotnet_naming_symbols.locals_symbols.applicable_accessibilities=*
+dotnet_naming_symbols.locals_symbols.applicable_kinds=local
+dotnet_naming_symbols.local_constants_symbols.applicable_accessibilities=*
+dotnet_naming_symbols.local_constants_symbols.applicable_kinds=local
+dotnet_naming_symbols.local_constants_symbols.required_modifiers=const
+dotnet_naming_symbols.local_functions_symbols.applicable_accessibilities=*
+dotnet_naming_symbols.local_functions_symbols.applicable_kinds=local_function
+dotnet_naming_symbols.method_symbols.applicable_accessibilities=*
+dotnet_naming_symbols.method_symbols.applicable_kinds=method
+dotnet_naming_symbols.parameters_symbols.applicable_accessibilities=*
+dotnet_naming_symbols.parameters_symbols.applicable_kinds=parameter
+dotnet_naming_symbols.private_constants_symbols.applicable_accessibilities=private
+dotnet_naming_symbols.private_constants_symbols.applicable_kinds=field
+dotnet_naming_symbols.private_constants_symbols.required_modifiers=const
+dotnet_naming_symbols.private_instance_fields_symbols.applicable_accessibilities=private
+dotnet_naming_symbols.private_instance_fields_symbols.applicable_kinds=field
+dotnet_naming_symbols.private_static_fields_symbols.applicable_accessibilities=private
+dotnet_naming_symbols.private_static_fields_symbols.applicable_kinds=field
+dotnet_naming_symbols.private_static_fields_symbols.required_modifiers=static
+dotnet_naming_symbols.private_static_readonly_symbols.applicable_accessibilities=private
+dotnet_naming_symbols.private_static_readonly_symbols.applicable_kinds=field
+dotnet_naming_symbols.private_static_readonly_symbols.required_modifiers=static,readonly
+dotnet_naming_symbols.property_symbols.applicable_accessibilities=*
+dotnet_naming_symbols.property_symbols.applicable_kinds=property
+dotnet_naming_symbols.public_fields_symbols.applicable_accessibilities=public,internal,protected,protected_internal,private_protected
+dotnet_naming_symbols.public_fields_symbols.applicable_kinds=field
+dotnet_naming_symbols.static_readonly_symbols.applicable_accessibilities=public,internal,protected,protected_internal,private_protected
+dotnet_naming_symbols.static_readonly_symbols.applicable_kinds=field
+dotnet_naming_symbols.static_readonly_symbols.required_modifiers=static,readonly
+dotnet_naming_symbols.types_and_namespaces_symbols.applicable_accessibilities=*
+dotnet_naming_symbols.types_and_namespaces_symbols.applicable_kinds=namespace,class,struct,enum,delegate
+dotnet_naming_symbols.type_parameters_symbols.applicable_accessibilities=*
+dotnet_naming_symbols.type_parameters_symbols.applicable_kinds=type_parameter
+dotnet_style_parentheses_in_arithmetic_binary_operators=never_if_unnecessary:suggestion
+dotnet_style_parentheses_in_other_binary_operators=never_if_unnecessary:suggestion
+dotnet_style_parentheses_in_relational_binary_operators=never_if_unnecessary:suggestion
+dotnet_style_predefined_type_for_locals_parameters_members=true:suggestion
+dotnet_style_predefined_type_for_member_access=true:suggestion
+dotnet_style_qualification_for_event=false:suggestion
+dotnet_style_qualification_for_field=false:suggestion
+dotnet_style_qualification_for_method=false:suggestion
+dotnet_style_qualification_for_property=false:suggestion
+dotnet_style_require_accessibility_modifiers=for_non_interface_members:suggestion
[*.{csproj,xml,yml,dll.config,msbuildproj,targets}]
-indent_size = 2
+indent_size=2
diff --git a/.gitattributes b/.gitattributes
index 1ff0c42304..0630300756 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -10,14 +10,14 @@
# default for csharp files.
# Note: This is only used by command line
###############################################################################
-#*.cs diff=csharp
+*.cs diff=csharp
###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
-# the diff markers are never inserted). Diff markers may cause the following
+# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
@@ -46,9 +46,9 @@
###############################################################################
# diff behavior for common document formats
-#
+#
# Convert binary document formats to text before diffing them. This feature
-# is only available from the command line. Turn it on by uncommenting the
+# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc diff=astextplain
diff --git a/SpaceStation14.sln.DotSettings b/SpaceStation14.sln.DotSettings
index 9b98ddd260..3073bbeecc 100644
--- a/SpaceStation14.sln.DotSettings
+++ b/SpaceStation14.sln.DotSettings
@@ -1,27 +1,51 @@
- GD
- GL
- KHR
- OGL
- OOC
- PCM
- PNG
- RSI
- UI
- UTF
- UV
- <data />
- <data><IncludeFilters /><ExcludeFilters><Filter ModuleMask="*.UnitTesting" ModuleVersionMask="*" ClassMask="*" FunctionMask="*" IsEnabled="True" /></ExcludeFilters></data>
- True
- True
- <data />
- <data><IncludeFilters /><ExcludeFilters><Filter ModuleMask="Lidgren.Network" ModuleVersionMask="*" ClassMask="*" FunctionMask="*" IsEnabled="True" /></ExcludeFilters></data>
- True
- True
- True
- True
- True
- True
- True
- True
- True
+ WARNING
+ WARNING
+ WARNING
+ WARNING
+ WARNING
+ WARNING
+ WARNING
+ WARNING
+ Required
+ Required
+ Required
+ Required
+ RequiredForMultilineStatement
+ Required
+ Required
+ Required
+ NEXT_LINE
+ NEXT_LINE
+ NEXT_LINE
+ NEXT_LINE
+ NEXT_LINE
+ NEXT_LINE
+ NEXT_LINE
+ NEXT_LINE
+ GD
+ GL
+ KHR
+ OGL
+ OOC
+ PCM
+ PNG
+ RSI
+ UI
+ UTF
+ UV
+ <data />
+ <data><IncludeFilters /><ExcludeFilters><Filter ModuleMask="*.UnitTesting" ModuleVersionMask="*" ClassMask="*" FunctionMask="*" IsEnabled="True" /></ExcludeFilters></data>
+ True
+ True
+ <data />
+ <data><IncludeFilters /><ExcludeFilters><Filter ModuleMask="Lidgren.Network" ModuleVersionMask="*" ClassMask="*" FunctionMask="*" IsEnabled="True" /></ExcludeFilters></data>
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True