├── Source ├── .idea │ └── .idea.ShipManifest │ │ └── .idea │ │ ├── .name │ │ ├── encodings.xml │ │ ├── vcs.xml │ │ ├── indexLayout.xml │ │ └── .gitignore ├── ShipManifest │ ├── Textures │ │ ├── IconOff_38.psd │ │ ├── IconOn_38.psd │ │ ├── IconR_Off_24.psd │ │ ├── IconR_Off_38.psd │ │ ├── IconR_On_24.psd │ │ ├── IconR_On_38.psd │ │ ├── IconS_Off_24.psd │ │ ├── IconS_Off_38.psd │ │ ├── IconS_On_24.psd │ │ └── IconS_On_38.psd │ ├── Windows │ │ ├── ToolTip.cs │ │ ├── SliderData.cs │ │ ├── Tabs │ │ │ ├── Settings │ │ │ │ └── TabInstalledMods.cs │ │ │ └── Control │ │ │ │ ├── TabScienceLabs.cs │ │ │ │ ├── TabLight.cs │ │ │ │ ├── TabAntenna.cs │ │ │ │ ├── TabHatch.cs │ │ │ │ ├── TabSolarPanel.cs │ │ │ │ └── TabRadiator.cs │ │ └── Popups │ │ │ ├── PopupSmBtnHover.cs │ │ │ └── PopupCloseTransfer.cs │ ├── InternalObjects │ │ ├── SMSuit.cs │ │ ├── SMPart.cs │ │ ├── Settings │ │ │ ├── OrigSettings.cs │ │ │ └── CurrSettings.cs │ │ └── SMSounds.cs │ ├── Modules │ │ ├── ModLight.cs │ │ ├── ModRadiator.cs │ │ ├── ModSolarPanel.cs │ │ ├── ModHatch.cs │ │ ├── ModDockedVessel.cs │ │ ├── ModKerbal.cs │ │ └── ModAntenna.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── APIClients │ │ ├── CLSClient.cs │ │ └── InstalledMods.cs │ ├── SMInterface.cs │ ├── WeakReference.cs │ └── SMPart.cs ├── packages │ ├── MSTest.TestAdapter.2.2.7 │ │ ├── Icon.png │ │ ├── .signature.p7s │ │ └── MSTest.TestAdapter.2.2.7.nupkg │ └── MSTest.TestFramework.2.2.7 │ │ ├── Icon.png │ │ ├── .signature.p7s │ │ ├── MSTest.TestFramework.2.2.7.nupkg │ │ └── lib │ │ ├── netstandard1.0 │ │ ├── zh-Hans │ │ │ └── Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml │ │ ├── zh-Hant │ │ │ └── Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml │ │ ├── ja │ │ │ └── Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml │ │ ├── ko │ │ │ └── Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml │ │ ├── tr │ │ │ └── Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml │ │ ├── cs │ │ │ └── Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml │ │ ├── pt-BR │ │ │ └── Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml │ │ ├── fr │ │ │ └── Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml │ │ ├── pl │ │ │ └── Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml │ │ ├── ru │ │ │ └── Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml │ │ ├── it │ │ │ └── Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml │ │ ├── es │ │ │ └── Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml │ │ └── de │ │ │ └── Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml │ │ └── uap10.0 │ │ ├── zh-Hans │ │ └── Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml │ │ ├── zh-Hant │ │ └── Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml │ │ ├── ja │ │ └── Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml │ │ └── ko │ │ └── Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml ├── ShipManifestTests │ ├── packages.config │ ├── SMAddonTests.cs │ └── Properties │ │ └── AssemblyInfo.cs ├── user_settings.props.template ├── ShipManifest.sln.DotSettings ├── common_settings.props ├── SMInterface │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Interface.cs │ └── SMInterface.csproj └── ShipManifest.sln ├── Distribution ├── GameData │ └── ShipManifest │ │ ├── Sounds │ │ ├── 14214-1.ogg │ │ ├── 14214-2.ogg │ │ ├── 14214-3.ogg │ │ ├── 59328-1.ogg │ │ ├── 59328-2.ogg │ │ ├── 59328-3.ogg │ │ └── Sounds.txt │ │ ├── Plugins │ │ ├── SMInterface.dll │ │ ├── ShipManifest.dll │ │ └── SM_CLSInterface.dll │ │ ├── Textures │ │ ├── IconOff_24.png │ │ ├── IconOff_38.png │ │ ├── IconOn_128.png │ │ ├── IconOn_24.png │ │ ├── IconOn_38.png │ │ ├── IconOff_128.png │ │ ├── IconR_Off_128.png │ │ ├── IconR_Off_24.png │ │ ├── IconR_Off_38.png │ │ ├── IconR_On_128.png │ │ ├── IconR_On_24.png │ │ ├── IconR_On_38.png │ │ ├── IconS_Off_128.png │ │ ├── IconS_Off_24.png │ │ ├── IconS_Off_38.png │ │ ├── IconS_On_128.png │ │ ├── IconS_On_24.png │ │ ├── IconS_On_38.png │ │ └── resizeSquare.png │ │ └── ShipManifest.version ├── Developer Notes.txt └── Installation Notes.txt ├── .gitignore ├── Scripts ├── deploy.bat ├── release.bat ├── deploy-debug.bat ├── Version.template └── deploy-debug-run.bat ├── .editorconfig ├── CONTRIBUTORS.md └── README.md /Source/.idea/.idea.ShipManifest/.idea/.name: -------------------------------------------------------------------------------- 1 | ShipManifest -------------------------------------------------------------------------------- /Source/ShipManifest/Textures/IconOff_38.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Source/ShipManifest/Textures/IconOff_38.psd -------------------------------------------------------------------------------- /Source/ShipManifest/Textures/IconOn_38.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Source/ShipManifest/Textures/IconOn_38.psd -------------------------------------------------------------------------------- /Source/ShipManifest/Textures/IconR_Off_24.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Source/ShipManifest/Textures/IconR_Off_24.psd -------------------------------------------------------------------------------- /Source/ShipManifest/Textures/IconR_Off_38.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Source/ShipManifest/Textures/IconR_Off_38.psd -------------------------------------------------------------------------------- /Source/ShipManifest/Textures/IconR_On_24.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Source/ShipManifest/Textures/IconR_On_24.psd -------------------------------------------------------------------------------- /Source/ShipManifest/Textures/IconR_On_38.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Source/ShipManifest/Textures/IconR_On_38.psd -------------------------------------------------------------------------------- /Source/ShipManifest/Textures/IconS_Off_24.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Source/ShipManifest/Textures/IconS_Off_24.psd -------------------------------------------------------------------------------- /Source/ShipManifest/Textures/IconS_Off_38.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Source/ShipManifest/Textures/IconS_Off_38.psd -------------------------------------------------------------------------------- /Source/ShipManifest/Textures/IconS_On_24.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Source/ShipManifest/Textures/IconS_On_24.psd -------------------------------------------------------------------------------- /Source/ShipManifest/Textures/IconS_On_38.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Source/ShipManifest/Textures/IconS_On_38.psd -------------------------------------------------------------------------------- /Source/packages/MSTest.TestAdapter.2.2.7/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Source/packages/MSTest.TestAdapter.2.2.7/Icon.png -------------------------------------------------------------------------------- /Source/packages/MSTest.TestFramework.2.2.7/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Source/packages/MSTest.TestFramework.2.2.7/Icon.png -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Sounds/14214-1.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Sounds/14214-1.ogg -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Sounds/14214-2.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Sounds/14214-2.ogg -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Sounds/14214-3.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Sounds/14214-3.ogg -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Sounds/59328-1.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Sounds/59328-1.ogg -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Sounds/59328-2.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Sounds/59328-2.ogg -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Sounds/59328-3.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Sounds/59328-3.ogg -------------------------------------------------------------------------------- /Source/packages/MSTest.TestAdapter.2.2.7/.signature.p7s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Source/packages/MSTest.TestAdapter.2.2.7/.signature.p7s -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Plugins/SMInterface.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Plugins/SMInterface.dll -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Textures/IconOff_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Textures/IconOff_24.png -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Textures/IconOff_38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Textures/IconOff_38.png -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Textures/IconOn_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Textures/IconOn_128.png -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Textures/IconOn_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Textures/IconOn_24.png -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Textures/IconOn_38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Textures/IconOn_38.png -------------------------------------------------------------------------------- /Source/packages/MSTest.TestFramework.2.2.7/.signature.p7s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Source/packages/MSTest.TestFramework.2.2.7/.signature.p7s -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Plugins/ShipManifest.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Plugins/ShipManifest.dll -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Textures/IconOff_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Textures/IconOff_128.png -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Textures/IconR_Off_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Textures/IconR_Off_128.png -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Textures/IconR_Off_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Textures/IconR_Off_24.png -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Textures/IconR_Off_38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Textures/IconR_Off_38.png -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Textures/IconR_On_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Textures/IconR_On_128.png -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Textures/IconR_On_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Textures/IconR_On_24.png -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Textures/IconR_On_38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Textures/IconR_On_38.png -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Textures/IconS_Off_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Textures/IconS_Off_128.png -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Textures/IconS_Off_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Textures/IconS_Off_24.png -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Textures/IconS_Off_38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Textures/IconS_Off_38.png -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Textures/IconS_On_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Textures/IconS_On_128.png -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Textures/IconS_On_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Textures/IconS_On_24.png -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Textures/IconS_On_38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Textures/IconS_On_38.png -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Textures/resizeSquare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Textures/resizeSquare.png -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Plugins/SM_CLSInterface.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Distribution/GameData/ShipManifest/Plugins/SM_CLSInterface.dll -------------------------------------------------------------------------------- /Source/packages/MSTest.TestAdapter.2.2.7/MSTest.TestAdapter.2.2.7.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Source/packages/MSTest.TestAdapter.2.2.7/MSTest.TestAdapter.2.2.7.nupkg -------------------------------------------------------------------------------- /Source/packages/MSTest.TestFramework.2.2.7/MSTest.TestFramework.2.2.7.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PapaJoesSoup/ShipManifest/HEAD/Source/packages/MSTest.TestFramework.2.2.7/MSTest.TestFramework.2.2.7.nupkg -------------------------------------------------------------------------------- /Source/.idea/.idea.ShipManifest/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Source/.idea/.idea.ShipManifest/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Source/ShipManifestTests/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Source/.idea/.idea.ShipManifest/.idea/indexLayout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Source/ShipManifest/Windows/ToolTip.cs: -------------------------------------------------------------------------------- 1 | namespace ShipManifest.Windows 2 | { 3 | internal class ToolTip 4 | { 5 | internal string Desc = ""; 6 | internal bool Active; 7 | internal bool CanShow = true; 8 | internal bool Show = true; 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/Sounds/Sounds.txt: -------------------------------------------------------------------------------- 1 | All sounds are used via licence CC by NA to the respective authors. 2 | 3 | Resources sounds are: 4 | http://www.freesound.org/people/vibe_crc/sounds/59328/ 5 | 6 | Crew sounds are: 7 | http://www.freesound.org/people/adcbicycle/sounds/14214/ 8 | -------------------------------------------------------------------------------- /Source/ShipManifest/InternalObjects/SMSuit.cs: -------------------------------------------------------------------------------- 1 | namespace ShipManifest.Modules 2 | { 3 | internal class SMSuit 4 | { 5 | public string gender; 6 | public string suitType; 7 | public string suitPath; 8 | 9 | public string suitTexture; 10 | public string normalTexture; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Source/user_settings.props.template: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | C:\Program Files (x86)\Steam\steamapps\common\Kerbal Space Program\ 5 | 6 | 7 | -------------------------------------------------------------------------------- /Source/.idea/.idea.ShipManifest/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Rider ignored files 5 | /modules.xml 6 | /.idea.ShipManifest.iml 7 | /contentModel.xml 8 | /projectSettingsUpdater.xml 9 | # Editor-based HTTP Client requests 10 | /httpRequests/ 11 | # Datasource local storage ignored files 12 | /dataSources/ 13 | /dataSources.local.xml 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore Visual Studio files 2 | .vs 3 | *.cache 4 | *.suo 5 | *.user 6 | *.orig 7 | *.dll 8 | *.swp 9 | 10 | # Ignore build artefacts in our repository 11 | Build/ 12 | Release/ 13 | *.User.props 14 | *.local.props 15 | **/obj/ 16 | **/bin/ 17 | 18 | # Specifically allow build artefacts in the Distribution folder 19 | !Distribution/** 20 | /Scripts/KSPDev Setup.bat.lnk 21 | -------------------------------------------------------------------------------- /Source/ShipManifest.sln.DotSettings: -------------------------------------------------------------------------------- 1 | 2 | True -------------------------------------------------------------------------------- /Source/ShipManifest/Windows/SliderData.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace ShipManifest.Windows 4 | { 5 | internal class SliderData 6 | { 7 | internal double setting; 8 | internal double minValue; 9 | internal double maxValue; 10 | internal GUIContent minContent; 11 | internal GUIContent maxContent; 12 | internal float minWidth; 13 | internal float maxWidth; 14 | internal float sliderWidth; 15 | 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Source/ShipManifestTests/SMAddonTests.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.VisualStudio.TestTools.UnitTesting; 2 | using ShipManifest; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | 9 | namespace ShipManifest.Tests 10 | { 11 | [TestClass()] 12 | public class SMAddonTests 13 | { 14 | [TestMethod] 15 | public void SMAddonTest() 16 | { 17 | Assert.Fail(); 18 | } 19 | [TestMethod] 20 | public void SMAddonTest() 21 | { 22 | Assert.Fail(); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Scripts/deploy.bat: -------------------------------------------------------------------------------- 1 | REM Builds and packages the release 2 | REM 3 | SETLOCAL EnableDelayedExpansion 4 | 5 | if not exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" ( 6 | echo "WARNING: You need VS 2017 version 15.2 or later (for vswhere.exe)" 7 | ) 8 | 9 | for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.Component.MSBuild -property installationPath`) do ( 10 | set InstallDir=%%i 11 | ) 12 | 13 | if exist "!InstallDir!\Common7\Tools\VsMSBuildCmd.bat" ( 14 | call "!InstallDir!\Common7\Tools\VsMSBuildCmd.bat" 15 | ) else ( 16 | echo "Could not find "!InstallDir!\Common7\Tools\VsMSBuildCmd.bat" 17 | ) 18 | 19 | rem go to current folder 20 | cd %~dp0 21 | 22 | msbuild Deploy.proj /target:Deploy 23 | pause 24 | -------------------------------------------------------------------------------- /Scripts/release.bat: -------------------------------------------------------------------------------- 1 | REM Builds and packages the release 2 | REM 3 | SETLOCAL EnableDelayedExpansion 4 | 5 | if not exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" ( 6 | echo "WARNING: You need VS 2017 version 15.2 or later (for vswhere.exe)" 7 | ) 8 | 9 | for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.Component.MSBuild -property installationPath`) do ( 10 | set InstallDir=%%i 11 | ) 12 | 13 | if exist "!InstallDir!\Common7\Tools\VsMSBuildCmd.bat" ( 14 | call "!InstallDir!\Common7\Tools\VsMSBuildCmd.bat" 15 | ) else ( 16 | echo "Could not find "!InstallDir!\Common7\Tools\VsMSBuildCmd.bat" 17 | ) 18 | 19 | rem go to current folder 20 | cd %~dp0 21 | 22 | msbuild Deploy.proj /target:Release 23 | pause 24 | -------------------------------------------------------------------------------- /Scripts/deploy-debug.bat: -------------------------------------------------------------------------------- 1 | REM Builds and packages the release 2 | REM 3 | SETLOCAL EnableDelayedExpansion 4 | 5 | if not exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" ( 6 | echo "WARNING: You need VS 2017 version 15.2 or later (for vswhere.exe)" 7 | ) 8 | 9 | for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.Component.MSBuild -property installationPath`) do ( 10 | set InstallDir=%%i 11 | ) 12 | 13 | if exist "!InstallDir!\Common7\Tools\VsMSBuildCmd.bat" ( 14 | call "!InstallDir!\Common7\Tools\VsMSBuildCmd.bat" 15 | ) else ( 16 | echo "Could not find "!InstallDir!\Common7\Tools\VsMSBuildCmd.bat" 17 | ) 18 | 19 | rem go to current folder 20 | cd %~dp0 21 | 22 | msbuild Deploy.proj /target:Deploy-DEBUG 23 | pause 24 | -------------------------------------------------------------------------------- /Distribution/GameData/ShipManifest/ShipManifest.version: -------------------------------------------------------------------------------- 1 | { 2 | "NAME": "Ship Manifest", 3 | "URL": "https://raw.githubusercontent.com/papajoessoup/ShipManifest/master/Distribution/GameData/ShipManifest/ShipManifest.version", 4 | "CHANGE_LOG_URL":"https://raw.githubusercontent.com/papajoessoup/ShipManifest/CHANGELOG.md", 5 | "GITHUB": 6 | { 7 | "USERNAME":"papajoessoup", 8 | "REPOSITORY":"ShipManifest", 9 | "ALLOW_PRE_RELEASE":false 10 | }, 11 | "VERSION": { 12 | "MAJOR": 6, 13 | "MINOR": 0, 14 | "PATCH": 8, 15 | "BUILD": 0 16 | }, 17 | "KSP_VERSION": { 18 | "MAJOR": 1, 19 | "MINOR": 12, 20 | "PATCH": 5 21 | }, 22 | "KSP_VERSION_MIN": { 23 | "MAJOR": 1, 24 | "MINOR": 8, 25 | "PATCH": 0 26 | }, 27 | "KSP_VERSION_MAX": { 28 | "MAJOR": 1, 29 | "MINOR": 12, 30 | "PATCH": 99 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Scripts/Version.template: -------------------------------------------------------------------------------- 1 | { 2 | "NAME": "Ship Manifest", 3 | "URL": "https://raw.githubusercontent.com/papajoessoup/ShipManifest/master/Distribution/GameData/ShipManifest/ShipManifest.version", 4 | "CHANGE_LOG_URL":"https://raw.githubusercontent.com/papajoessoup/ShipManifest/CHANGELOG.md", 5 | "GITHUB": 6 | { 7 | "USERNAME":"papajoessoup", 8 | "REPOSITORY":"ShipManifest", 9 | "ALLOW_PRE_RELEASE":false 10 | }, 11 | "VERSION": { 12 | "MAJOR": {MAJOR}, 13 | "MINOR": {MINOR}, 14 | "PATCH": {PATCH}, 15 | "BUILD": {BUILD} 16 | }, 17 | "KSP_VERSION": { 18 | "MAJOR": {KSP_MAJOR}, 19 | "MINOR": {KSP_MINOR}, 20 | "PATCH": {KSP_PATCH} 21 | }, 22 | "KSP_VERSION_MIN": { 23 | "MAJOR": 1, 24 | "MINOR": 8, 25 | "PATCH": 0 26 | }, 27 | "KSP_VERSION_MAX": { 28 | "MAJOR": 1, 29 | "MINOR": 12, 30 | "PATCH": 99 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | ; EditorConfig file - set up tab sizes and similar configuration options 2 | ; http://editorconfig.org/ 3 | ; For VisualStudio, install the "EditorConfig" extension 4 | 5 | ; Top-most EditorConfig file 6 | root = true 7 | 8 | ; 9 | ; Options for all files 10 | ; 11 | [*] 12 | ; End-of-line style: lf cr lfcr 13 | ;end_of_line = lf 14 | 15 | ; Enforce a blank line at the end of every file 16 | insert_final_newline = true 17 | 18 | ; Strip trailing whitespace 19 | trim_trailing_whitespace = true 20 | 21 | ; Specify characterset to use 22 | charset = utf-8 23 | 24 | ; 2-column space indentation for CLS 25 | [*.cs] 26 | indent_style = space 27 | indent_size = 2 28 | 29 | ; 2-column space indentation for VS project files 30 | [*.{sln,proj,csproj,props}] 31 | indent_style = space 32 | indent_size = 2 33 | 34 | ; 2-column tab indentation 35 | ;[*.{c,cpp,js}] 36 | ;indent_style = tab 37 | ;indent_size = 2 38 | -------------------------------------------------------------------------------- /Scripts/deploy-debug-run.bat: -------------------------------------------------------------------------------- 1 | REM Builds and packages the release 2 | REM 3 | SETLOCAL EnableDelayedExpansion 4 | 5 | if not exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" ( 6 | echo "WARNING: You need VS 2017 version 15.2 or later (for vswhere.exe)" 7 | ) 8 | 9 | for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.Component.MSBuild -property installationPath`) do ( 10 | set InstallDir=%%i 11 | ) 12 | 13 | if exist "!InstallDir!\Common7\Tools\VsMSBuildCmd.bat" ( 14 | call "!InstallDir!\Common7\Tools\VsMSBuildCmd.bat" 15 | ) else ( 16 | echo "Could not find "!InstallDir!\Common7\Tools\VsMSBuildCmd.bat" 17 | ) 18 | 19 | rem go to current folder 20 | cd %~dp0 21 | 22 | msbuild Deploy.proj /target:Deploy-DEBUG 23 | cd "D:\Games\KSP\Kerbal Space Program" 24 | start /B "" "ksp_x64_dbg.exe" -popupWindow 25 | -------------------------------------------------------------------------------- /Source/ShipManifest/InternalObjects/SMPart.cs: -------------------------------------------------------------------------------- 1 | namespace ShipManifest.InternalObjects 2 | { 3 | internal static class SMPart 4 | { 5 | 6 | internal static bool IsSelected(Part part) 7 | { 8 | return SMAddon.SmVessel.SelectedResourcesParts.Contains(part); 9 | } 10 | 11 | internal static bool IsCrew(Part part) 12 | { 13 | return IsSelected(part) && SMAddon.SmVessel.SelectedResources.Contains(SMConditions.ResourceType.Crew.ToString()); 14 | } 15 | 16 | internal static bool IsSource(Part part) 17 | { 18 | return SMAddon.SmVessel.SelectedPartsSource.Contains(part); 19 | } 20 | 21 | internal static bool IsTarget(Part part) 22 | { 23 | return SMAddon.SmVessel.SelectedPartsTarget.Contains(part); 24 | } 25 | 26 | internal static bool IsClsSource(Part part) 27 | { 28 | return SMAddon.SmVessel.ClsPartSource.Part == part; 29 | } 30 | 31 | internal static bool IsClsTarget(Part part) 32 | { 33 | return SMAddon.SmVessel.ClsPartTarget.Part == part; 34 | } 35 | 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /CONTRIBUTORS.md: -------------------------------------------------------------------------------- 1 | ShipManifest - Contributors 2 | ============================= 3 | 4 | *Ship Manifest* was originally written by **Papa_Joe** and was partially based on *Crew Manifest v0.5.6.0* by **xxSovereignxx**. 5 | 6 | The following is an incomplete list of contributors to *Ship Manifest*. 7 | 8 | Please contact the current maintainer if somoene has been left off this list. 9 | 10 | - **arivaldh** 11 | - bug fixes and compatibility with Kopernicus and RemoteTech 12 | - **JPLRepo** 13 | - initial version of SMWrapper.cs 14 | - **Matt Addison** 15 | - ToolbarWrapper integration 16 | - **@Micha** 17 | - maintainer during Papa_joe's absence' 18 | - **@Papa_Joe** aka **@PapaJoesSoup** aka **Joseph Korinek** 19 | - original author 20 | - original design, development, and release 21 | - current maintainer 22 | - **@Sarbian* 23 | - contributions to "Crew Manifest" from which this mod was derived 24 | - **vXSovereignXv** 25 | - author of "Crew Manifest" from which this mod was derived 26 | - **Telanor** 27 | - Improved science handling via IScienceDataContainer 28 | -------------------------------------------------------------------------------- /Source/common_settings.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | D:\Games\KSP\Kerbal Space Program\ 8 | $(MSBuildThisFileDirectory)\.. 9 | ShipManifest 10 | $(MODDIR)\Distribution 11 | 12 | 13 | 14 | 15 | 16 | False 17 | 18 | 19 | False 20 | 21 | 22 | 23 | 24 | $(KSPDIR) 25 | 26 | 27 | $(MODDIR) 28 | 29 | 30 | $(MODNAME) 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /Source/ShipManifest/Modules/ModLight.cs: -------------------------------------------------------------------------------- 1 | namespace ShipManifest.Modules 2 | { 3 | internal class ModLight 4 | { 5 | internal ModLight() 6 | { 7 | } 8 | 9 | internal ModLight(PartModule pModule, Part iPart) 10 | { 11 | LightModule = pModule; 12 | SPart = iPart; 13 | } 14 | 15 | internal PartModule LightModule { get; set; } 16 | 17 | internal Part SPart { get; set; } 18 | 19 | internal string Title 20 | { 21 | get 22 | { 23 | string title; 24 | try 25 | { 26 | title = $"{SPart.partInfo.title}\r\n {SmUtils.SmTags["#smloc_module_001"]} {Module.part.parent.partInfo.title}"; 27 | } 28 | catch 29 | { 30 | title = SPart.partInfo.title; 31 | } 32 | return title; 33 | } 34 | } 35 | 36 | internal bool IsOn 37 | { 38 | get { return Module.isOn; } 39 | } 40 | 41 | internal string Status 42 | { 43 | get 44 | { 45 | if (Module.isOn) 46 | return "ON"; 47 | return "OFF"; 48 | } 49 | } 50 | 51 | private ModuleLight Module 52 | { 53 | get { return (ModuleLight) LightModule; } 54 | } 55 | 56 | internal void TurnOnLight() 57 | { 58 | Module.LightsOn(); 59 | } 60 | 61 | internal void TurnOffLight() 62 | { 63 | Module.LightsOff(); 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /Source/ShipManifestTests/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("ShipManifestTests")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("ShipManifestTests")] 13 | [assembly: AssemblyCopyright("Copyright © 2022")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("0df6e681-c493-4635-bed4-f377ca1f01c7")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Source/SMInterface/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("SMInterface")] 8 | [assembly: AssemblyDescription("Allows access to Ship Manifest's Crew Transfer Process")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("PapaJoe's SOUP")] 11 | [assembly: AssemblyProduct("SMInterface")] 12 | [assembly: AssemblyCopyright("Copyright © 2015-2020")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("74ce8c6b-8b99-440e-93e2-122eadb8cfd9")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Build and Revision Numbers 32 | // by using the '*' as shown below: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("6.0.3.0")] 35 | //[assembly: AssemblyFileVersion("5.0.0.2")] 36 | -------------------------------------------------------------------------------- /Source/ShipManifest/Windows/Tabs/Settings/TabInstalledMods.cs: -------------------------------------------------------------------------------- 1 | using ShipManifest.APIClients; 2 | using UnityEngine; 3 | 4 | namespace ShipManifest.Windows.Tabs.Settings 5 | { 6 | internal static class TabInstalledMods 7 | { 8 | internal static bool ShowAllAssemblies; 9 | 10 | // GUI tooltip and label support 11 | //private static string _toolTip = ""; 12 | //private static Rect _rect; 13 | //private static string _label = ""; 14 | //private static GUIContent _guiLabel; 15 | 16 | internal static string ToolTip = ""; 17 | internal static bool ToolTipActive; 18 | internal static bool ShowToolTips = true; 19 | internal static Rect Position = WindowSettings.Position; 20 | 21 | internal static void Display(Vector2 displayViewerPosition) 22 | { 23 | // Reset Tooltip active flag... 24 | ToolTipActive = false; 25 | 26 | Position = WindowSettings.Position; 27 | //var scrollX = 20; 28 | //var scrollY = 50; 29 | 30 | GUILayout.BeginHorizontal(); 31 | GUILayout.Label("Installed Mods ", SMStyle.LabelTabHeader, GUILayout.Width(180)); 32 | ShowAllAssemblies = GUILayout.Toggle(ShowAllAssemblies, "Show All Assemblies", SMStyle.ToggleStyleHeader); 33 | GUILayout.EndHorizontal(); 34 | GUILayout.Label("____________________________________________________________________________________________", 35 | SMStyle.LabelStyleHardRule, GUILayout.Height(10), GUILayout.Width(350)); 36 | if (ShowAllAssemblies) 37 | InstalledMods.DisplayAssemblyList(); 38 | else 39 | InstalledMods.DisplayModList(); 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Source/ShipManifest/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | 8 | [assembly: AssemblyTitle("ShipManifest")] 9 | [assembly: AssemblyDescription("Ship Manifest manages your vessel")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("PapaJoe's SOUP")] 12 | [assembly: AssemblyProduct("ShipManifest")] 13 | [assembly: AssemblyCopyright("Copyright © 2013-2023")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | 21 | [assembly: ComVisible(false)] 22 | 23 | // The following GUID is for the ID of the typelib if this project is exposed to COM 24 | 25 | [assembly: Guid("beb41dac-da12-440b-a4bc-4ac5eca7bce2")] 26 | 27 | // Version information for an assembly consists of the following four values: 28 | // 29 | // Major Version 30 | // Minor Version 31 | // Build Number 32 | // Revision 33 | // 34 | // You can specify all the values or you can default the Build and Revision Numbers 35 | // by using the '*' as shown below: 36 | // [assembly: AssemblyVersion("1.0.*")] 37 | 38 | // This setting is also used during the deployment of the Mod. 39 | // the zip package, Change log and the Version file are automatically updated with the version data listed below. 40 | // Be sure to build and deploy on Master branch after all merges are complete 41 | // Push to master as the last step. 42 | 43 | [assembly: AssemblyVersion("6.0.8.0")] 44 | //[assembly: AssemblyFileVersion("5.2.1.0")] 45 | -------------------------------------------------------------------------------- /Source/ShipManifest/Modules/ModRadiator.cs: -------------------------------------------------------------------------------- 1 | using ShipManifest.InternalObjects.Settings; 2 | 3 | namespace ShipManifest.Modules 4 | { 5 | internal class ModRadiator 6 | { 7 | internal ModRadiator() 8 | { 9 | } 10 | 11 | internal ModRadiator(PartModule pModule, Part iPart) 12 | { 13 | PanelModule = pModule; 14 | SPart = iPart; 15 | } 16 | 17 | internal PartModule PanelModule { get; set; } 18 | 19 | internal Part SPart { get; set; } 20 | 21 | internal ModuleDeployablePart.DeployState PanelState 22 | { 23 | get { return Module.deployState; } 24 | } 25 | 26 | internal string PanelStatus 27 | { 28 | get { return Module.deployState.ToString(); } 29 | } 30 | 31 | internal bool Retractable 32 | { 33 | get { return Module.retractable; } 34 | } 35 | 36 | internal bool CanBeRetracted 37 | { 38 | get 39 | { 40 | if (CurrSettings.RealControl && !Retractable && 41 | (PanelState == ModuleDeployablePart.DeployState.EXTENDED || 42 | PanelState == ModuleDeployablePart.DeployState.EXTENDING)) 43 | return false; 44 | return true; 45 | } 46 | } 47 | 48 | internal string Title 49 | { 50 | get 51 | { 52 | string title; 53 | try 54 | { 55 | title = $"{SPart.partInfo.title}\r\n {SmUtils.SmTags["#smloc_module_001"]} {SPart.parent.partInfo.title}"; 56 | } 57 | catch 58 | { 59 | title = SPart.partInfo.title; 60 | } 61 | return title; 62 | } 63 | } 64 | 65 | private ModuleDeployableRadiator Module 66 | { 67 | get { return (ModuleDeployableRadiator) PanelModule; } 68 | } 69 | 70 | internal void ExtendPanel() 71 | { 72 | Module.Extend(); 73 | } 74 | 75 | internal void RetractPanel() 76 | { 77 | Module.Retract(); 78 | } 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /Source/ShipManifest/Modules/ModSolarPanel.cs: -------------------------------------------------------------------------------- 1 | using ShipManifest.InternalObjects.Settings; 2 | 3 | namespace ShipManifest.Modules 4 | { 5 | internal class ModSolarPanel 6 | { 7 | internal ModSolarPanel() 8 | { 9 | } 10 | 11 | internal ModSolarPanel(PartModule pModule, Part iPart) 12 | { 13 | PanelModule = pModule; 14 | SPart = iPart; 15 | } 16 | 17 | internal PartModule PanelModule { get; set; } 18 | 19 | internal Part SPart { get; set; } 20 | 21 | internal ModuleDeployablePart.DeployState PanelState 22 | { 23 | get { return Module.deployState; } 24 | } 25 | 26 | internal string PanelStatus 27 | { 28 | get { return Module.deployState.ToString(); } 29 | } 30 | 31 | internal bool Retractable 32 | { 33 | get { return Module.retractable; } 34 | } 35 | 36 | internal bool CanBeRetracted 37 | { 38 | get 39 | { 40 | if (CurrSettings.RealControl && !Retractable && 41 | (PanelState == ModuleDeployablePart.DeployState.EXTENDED || 42 | PanelState == ModuleDeployablePart.DeployState.EXTENDING)) 43 | return false; 44 | return true; 45 | } 46 | } 47 | 48 | internal string Title 49 | { 50 | get 51 | { 52 | string title; 53 | try 54 | { 55 | title = $"{SPart.partInfo.title}\r\n {SmUtils.SmTags["#smloc_module_001"]} {SPart.parent.partInfo.title}"; 56 | } 57 | catch 58 | { 59 | title = SPart.partInfo.title; 60 | } 61 | return title; 62 | } 63 | } 64 | 65 | private ModuleDeployableSolarPanel Module 66 | { 67 | get { return (ModuleDeployableSolarPanel) PanelModule; } 68 | } 69 | 70 | internal void ExtendPanel() 71 | { 72 | Module.Extend(); 73 | } 74 | 75 | internal void RetractPanel() 76 | { 77 | Module.Retract(); 78 | } 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /Source/ShipManifest/APIClients/CLSClient.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using System.Reflection; 4 | 5 | namespace ShipManifest.APIClients 6 | { 7 | internal static class ClsClient 8 | { 9 | private static PropertyInfo _cls; 10 | 11 | static ClsClient() 12 | { 13 | try 14 | { 15 | // Original call. deep dives into all assemblies... 16 | //Type cls_type = AssemblyLoader 17 | // .loadedAssemblies 18 | // .SelectMany(a => a.assembly.GetExportedTypes()) 19 | // .SingleOrDefault(t => t.FullName == "ConnectedLivingSpace.CLSAddon"); 20 | 21 | // this replacement call attempts to filter dynamic assemblies... Dot.Net 2.0 vs Dot.Net 4.0 22 | //Type newType = AssemblyLoader 23 | // .loadedAssemblies.Where(a => a.assembly.ManifestModule is System.Reflection.Emit.ModuleBuilder == false) 24 | // .SelectMany(a => a.assembly.GetExportedTypes()) 25 | // .SingleOrDefault(t => t.FullName == "ConnectedLivingSpace.CLSAddon"); 26 | 27 | // Lighter weight, and should not "dive into" assemblies unnecessarily. 28 | Type clsType = 29 | AssemblyLoader.loadedAssemblies.Where(a => a.name.Contains("ConnectedLivingSpace")) 30 | .SelectMany(a => a.assembly.GetExportedTypes()) 31 | .SingleOrDefault(t => t.FullName == "ConnectedLivingSpace.CLSAddon"); 32 | 33 | if (clsType != null) _cls = clsType.GetProperty("Instance", BindingFlags.Public | BindingFlags.Static); 34 | } 35 | catch (Exception ex) 36 | { 37 | SmUtils.LogMessage($"Cannot load CLS assembly. Error: {ex}", SmUtils.LogType.Error, false); 38 | } 39 | } 40 | 41 | public static bool ClsInstalled() 42 | { 43 | return _cls != null; 44 | } 45 | 46 | public static ConnectedLivingSpace.ICLSAddon GetCls() 47 | { 48 | return (ConnectedLivingSpace.ICLSAddon) _cls?.GetValue(null, null); 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /Source/ShipManifest/Modules/ModHatch.cs: -------------------------------------------------------------------------------- 1 | using ConnectedLivingSpace; 2 | 3 | namespace ShipManifest.Modules 4 | { 5 | internal class ModHatch 6 | { 7 | internal ModHatch() 8 | { 9 | } 10 | 11 | internal ModHatch(PartModule pModule, ICLSPart iPart) 12 | { 13 | HatchModule = pModule; 14 | ClsPart = iPart; 15 | } 16 | 17 | internal PartModule HatchModule { get; set; } 18 | 19 | internal ICLSPart ClsPart { get; set; } 20 | 21 | internal bool HatchOpen 22 | { 23 | get { return Module.HatchOpen; } 24 | set { Module.HatchOpen = value; } 25 | } 26 | 27 | internal string HatchStatus 28 | { 29 | get { return Module.HatchStatus; } 30 | } 31 | 32 | internal bool IsDocked 33 | { 34 | get { return Module.IsDocked; } 35 | } 36 | 37 | internal string Title 38 | { 39 | get 40 | { 41 | string title; 42 | try 43 | { 44 | title = null != ClsPart.Part.parent ? ClsPart.Part.parent.partInfo.title : ClsPart.Part.partInfo.title; 45 | } 46 | catch 47 | { 48 | title = SmUtils.SmTags["#smloc_module_003"]; //"Unknown"; 49 | } 50 | return title; 51 | } 52 | } 53 | 54 | private IModuleDockingHatch Module 55 | { 56 | // ReSharper disable once SuspiciousTypeConversion.Global 57 | get { return (IModuleDockingHatch) HatchModule; } 58 | } 59 | 60 | internal void OpenHatch(bool fireEvent = false) 61 | { 62 | Module.HatchEvents["CloseHatch"].active = true; 63 | Module.HatchEvents["OpenHatch"].active = false; 64 | Module.HatchOpen = true; 65 | if (fireEvent) 66 | SMAddon.FireEventTriggers(); 67 | } 68 | 69 | internal void CloseHatch(bool fireEvent = false) 70 | { 71 | Module.HatchEvents["CloseHatch"].active = false; 72 | Module.HatchEvents["OpenHatch"].active = true; 73 | Module.HatchOpen = false; 74 | if (fireEvent) 75 | SMAddon.FireEventTriggers(); 76 | } 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /Source/SMInterface/Interface.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | using System.Linq; 4 | 5 | namespace ShipManifest 6 | { 7 | public interface ICrewTransfer 8 | { 9 | bool CrewXferActive { get; set; } 10 | bool IsStockXfer { get; } 11 | bool OverrideStockCrewXfer { get; } 12 | double CrewXferDelaySec { get; } 13 | bool IsSeat2SeatXfer { get; } 14 | double Seat2SeatXferDelaySec { get; } 15 | 16 | bool IvaDelayActive { get; } 17 | 18 | // ReSharper disable once InconsistentNaming 19 | Guid XferVesselID { get; } 20 | 21 | Part FromPart { get; } 22 | Part ToPart { get; } 23 | 24 | ProtoCrewMember FromCrewMember { get; } 25 | ProtoCrewMember ToCrewMember { get; } 26 | 27 | InternalSeat FromSeat { get; } 28 | InternalSeat ToSeat { get; } 29 | } 30 | 31 | // ReSharper disable once InconsistentNaming 32 | public static class SMInterface 33 | { 34 | private static bool _smChecked; 35 | private static bool _smInstalled; 36 | 37 | public static bool IsSMInstalled 38 | { 39 | get 40 | { 41 | if (_smChecked) return _smInstalled; 42 | const string assemblyName = "ShipManifest"; 43 | Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); 44 | Assembly assembly = (from a in assemblies 45 | where a.FullName.Contains(assemblyName) 46 | select a).SingleOrDefault(); 47 | _smInstalled = assembly != null; 48 | _smChecked = true; 49 | return _smInstalled; 50 | } 51 | } 52 | 53 | public static ICrewTransfer GetCrewTransfer() 54 | { 55 | Type smAddonType = AssemblyLoader.loadedAssemblies.SelectMany(a => a.assembly.GetExportedTypes()).SingleOrDefault(t => t.FullName == "ShipManifest..Process.TransferCrew"); 56 | if (smAddonType == null) return null; 57 | object crewTransferObj = smAddonType.GetProperty("Instance", BindingFlags.Public | BindingFlags.Static).GetValue(null, null); 58 | return (ICrewTransfer)crewTransferObj; 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /Source/ShipManifest/Modules/ModDockedVessel.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | 4 | namespace ShipManifest.Modules 5 | { 6 | internal class ModDockedVessel 7 | { 8 | private List _vesselParts; 9 | 10 | // used during display in control window for selecting vessels to combine 11 | internal bool Combine = false; 12 | 13 | private Part _rootPart; 14 | private Part _dockingPort; 15 | internal bool IsDocked; 16 | internal bool IsEditing = false; 17 | internal bool IsReTyping = false; 18 | internal string RenameVessel = null; 19 | 20 | internal ModDockedVessel() 21 | { 22 | } 23 | 24 | internal ModDockedVessel(ModuleDockingNode dockingNode) 25 | { 26 | _dockingPort = dockingNode.part; 27 | VesselInfo = dockingNode.vesselInfo; 28 | _vesselParts = SMAddon.SmVessel.GetDockedVesselParts(dockingNode); 29 | } 30 | 31 | internal DockedVesselInfo VesselInfo { get; set; } 32 | 33 | internal Part Rootpart 34 | { 35 | get 36 | { 37 | return _rootPart ?? 38 | (_rootPart = 39 | (from p in SMAddon.SmVessel.Vessel.parts where p.flightID == VesselInfo.rootPartUId select p) 40 | .SingleOrDefault()); 41 | } 42 | set { _rootPart = value; } 43 | } 44 | 45 | internal uint LaunchId 46 | { 47 | get { return Rootpart != null ? Rootpart.launchID : 0; } 48 | } 49 | 50 | internal string VesselName 51 | { 52 | get { return VesselInfo.name; } 53 | set { VesselInfo.name = value; } 54 | } 55 | 56 | internal VesselType TypeVessel 57 | { 58 | get { return VesselInfo.vesselType; } 59 | set 60 | { 61 | if (Rootpart) 62 | { 63 | Rootpart.vesselNaming.vesselType = value; 64 | Rootpart.vesselType = value; 65 | Rootpart.vessel.vesselType = value; 66 | } 67 | VesselInfo.vesselType = value; 68 | } 69 | } 70 | 71 | internal List VesselParts 72 | { 73 | get { return _vesselParts; } 74 | set { _vesselParts = value; } 75 | } 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ShipManifest 2 | ============ 3 | 4 | [![ReleaseShield]][release] [![CKANShield]][CKAN] [![SourceShield]][GitHub] [![LicenseShield]][License] 5 | 6 | *** 7 | 8 | Kerbal Space Program Addon. Manages Crew, Resources, Science, and controls some part actions on a given vessel. 9 | 10 | This work is originally based in part on Crew manifest 0.5.6.0 by xxSovereignxx as modified by Sarbian to work with KSP v0.22. 11 | 12 | ## License 13 | This mod is licensed under the [CC BY-SA 4.0][License] license; effectively it means it's free to use and modify. 14 | 15 | ## Recommends 16 | This mod recommends the following mods: 17 | * [ConnectedLivingSpace][CLS] - this mod enables visualisation of living spaces and whether they are internally reachable. 18 | 19 | ## Installation 20 | Extract the contents of the "GameData" directory in the ZIP into the KSP "GameData" folder. Path should be `[KSP]/GameData/ShipManifest/`. 21 | 22 | ## Resources 23 | * Source Code on [GitHub][GitHub] 24 | * Wiki on [GitHub][GHWiki] 25 | * [Forum Thread][OriginalFT] - information and download links 26 | - Interim ShipManifest support [Forum Thread] by **Micha** - information and download links 27 | * ShipManifest project on [SpaceDock][SpaceDock] 28 | * ShipManifest project on [CurseForge][CurseForge] 29 | 30 | [License]: https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode 31 | [ForumThread]: https://forum.kerbalspaceprogram.com/index.php?showtopic=192129 32 | [OriginalFT]: https://forum.kerbalspaceprogram.com/index.php?showtopic=56643 33 | [GitHub]: https://github.com/papajoessoup/ShipManifest/ 34 | [GHWiki]: https://github.com/PapaJoesSoup/ShipManifest/wiki 35 | [SpaceDock]: https://spacedock.info/mod/189/ShipManifest 36 | [CurseForge]: https://www.curseforge.com/kerbal/ksp-mods/shipmanifest 37 | 38 | [ReleaseShield]: https://img.shields.io/github/v/release/papajoessoup/ShipManifest?include_prereleases 39 | [CKANShield]: https://img.shields.io/badge/CKAN-ShipManifest-brightgreen.svg 40 | [SourceShield]: https://img.shields.io/badge/source%20code-github-yellowgreen 41 | [LicenseShield]: https://img.shields.io/badge/license-CC%20BY--NC--SA%204.0-lightgrey?logo=creativecommons 42 | 43 | [release]: https://github.com/papajoessoup/ShipManifest/releases/latest 44 | [CKAN]: https://github.com/KSP-CKAN/CKAN 45 | [CLS]: https://forum.kerbalspaceprogram.com/index.php?showtopic=192130 46 | -------------------------------------------------------------------------------- /Source/ShipManifest/Modules/ModKerbal.cs: -------------------------------------------------------------------------------- 1 | using ShipManifest.InternalObjects.Settings; 2 | 3 | namespace ShipManifest.Modules 4 | { 5 | public class ModKerbal 6 | { 7 | public bool Badass; 8 | public bool Veteran; 9 | public float Courage; 10 | public ProtoCrewMember.Gender Gender; 11 | public ProtoCrewMember.KerbalSuit Suit; 12 | public string Name; 13 | public float Stupidity; 14 | public string Trait; 15 | 16 | public ModKerbal(ProtoCrewMember kerbal, bool isNew) 17 | { 18 | Kerbal = kerbal; 19 | Name = kerbal.name; 20 | Stupidity = kerbal.stupidity; 21 | Courage = kerbal.courage; 22 | Badass = kerbal.isBadass; 23 | Veteran = kerbal.veteran; 24 | Trait = kerbal.trait; 25 | Gender = kerbal.gender; 26 | Suit = kerbal.suit; 27 | IsNew = isNew; 28 | } 29 | 30 | public ProtoCrewMember Kerbal { get; set; } 31 | public bool IsNew { get; set; } 32 | 33 | public string SubmitChanges() 34 | { 35 | if (NameExists()) 36 | { 37 | return SmUtils.SmTags["#smloc_module_002"]; // "That name is in use!"; 38 | } 39 | 40 | SyncKerbal(); 41 | 42 | if (IsNew) 43 | { 44 | // Add to roster. 45 | Kerbal.rosterStatus = ProtoCrewMember.RosterStatus.Available; 46 | HighLogic.CurrentGame.CrewRoster.AddCrewMember(Kerbal); 47 | } 48 | return string.Empty; 49 | } 50 | 51 | public static ModKerbal CreateKerbal(ProtoCrewMember.KerbalType kerbalType) 52 | { 53 | ProtoCrewMember kerbal = CrewGenerator.RandomCrewMemberPrototype(kerbalType); 54 | return new ModKerbal(kerbal, true); 55 | } 56 | 57 | public void SyncKerbal() 58 | { 59 | if (CurrSettings.EnableKerbalRename) 60 | { 61 | Kerbal.ChangeName(Name); 62 | if (CurrSettings.EnableChangeProfession) 63 | KerbalRoster.SetExperienceTrait(Kerbal, Trait); 64 | } 65 | Kerbal.gender = Gender; 66 | Kerbal.suit = Suit; 67 | Kerbal.stupidity = Stupidity; 68 | Kerbal.courage = Courage; 69 | Kerbal.isBadass = Badass; 70 | Kerbal.veteran = Veteran; 71 | } 72 | 73 | private bool NameExists() 74 | { 75 | if (IsNew || Kerbal.name != Name) 76 | { 77 | return HighLogic.CurrentGame.CrewRoster.Exists(Name); 78 | } 79 | 80 | return false; 81 | } 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /Source/ShipManifest/Windows/Popups/PopupSmBtnHover.cs: -------------------------------------------------------------------------------- 1 | using ShipManifest.InternalObjects.Settings; 2 | using UnityEngine; 3 | 4 | namespace ShipManifest.Windows.Popups 5 | { 6 | internal static class PopupSmBtnHover 7 | { 8 | internal static float TextWidth = 400; 9 | internal static float WindowWidth = 420; 10 | internal static float WindowHeight = 200 * CurrSettings.CurrentUIScale; 11 | internal static Rect Position = new Rect(Screen.width - 462 * CurrSettings.CurrentUIScale, (Screen.height / 2) - 200 * CurrSettings.CurrentUIScale, WindowWidth, WindowHeight); 12 | 13 | internal static bool ShowToolTips = true; 14 | 15 | private static bool _inputLocked; 16 | private static bool _showWindow; 17 | 18 | internal static bool ShowWindow 19 | { 20 | get => _showWindow; 21 | set 22 | { 23 | if (!value) 24 | { 25 | InputLockManager.RemoveControlLock("SM_Window"); 26 | _inputLocked = false; 27 | } 28 | _showWindow = value; 29 | } 30 | } 31 | 32 | // Content strings 33 | internal static string Title = SmUtils.SmTags["#smloc_manifest_001"]; 34 | internal static string descContent = SmUtils.SmTags["#smloc_popup_smbtn_hover_001"]; 35 | internal static string aboutContent = SmUtils.SmTags["#smloc_popup_smbtn_hover_002"]; 36 | 37 | internal static void Display(int windowId) 38 | { 39 | // set input locks when mouseover window... 40 | _inputLocked = GuiUtils.PreventClickthrough(ShowWindow, Position, _inputLocked); 41 | 42 | GUILayout.BeginVertical(); 43 | GUILayout.Label("", SMStyle.SMSkin.label, GUILayout.Height(5 * CurrSettings.CurrentUIScale)); 44 | 45 | GUILayout.Label(descContent, SMStyle.LabelStyleCenter, GUILayout.Width(TextWidth * CurrSettings.CurrentUIScale)); 46 | GUILayout.Label("", SMStyle.SMSkin.label, GUILayout.Height(5 * CurrSettings.CurrentUIScale)); 47 | GUILayout.Label(aboutContent, SMStyle.LabelStyleCenter, GUILayout.Width(TextWidth * CurrSettings.CurrentUIScale)); 48 | 49 | GUILayout.EndVertical(); 50 | //ResetZoomKeys(); 51 | Position.width = WindowWidth; 52 | Position.height = WindowHeight; 53 | GuiUtils.RepositionWindow(ref Position); 54 | } 55 | 56 | internal static void RefreshUIScale() 57 | { 58 | WindowHeight = 200 * CurrSettings.CurrentUIScale; 59 | Position = new Rect(Screen.width - 462 * CurrSettings.CurrentUIScale, (Screen.height / 2) - 200 * CurrSettings.CurrentUIScale, WindowWidth, WindowHeight); 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /Source/ShipManifest.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 12.00 2 | # Visual Studio Version 17 3 | VisualStudioVersion = 17.2.32616.157 4 | MinimumVisualStudioVersion = 10.0.40219.1 5 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ShipManifest", "ShipManifest\ShipManifest.csproj", "{C6304C33-CCE5-496C-B11B-49F454CC2F79}" 6 | EndProject 7 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{62E4CAF8-30DD-47E1-A094-8536B197D5EB}" 8 | ProjectSection(SolutionItems) = preProject 9 | ..\CHANGELOG.md = ..\CHANGELOG.md 10 | ..\CONTRIBUTORS.md = ..\CONTRIBUTORS.md 11 | ..\License.txt = ..\License.txt 12 | ..\README.md = ..\README.md 13 | EndProjectSection 14 | EndProject 15 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SMInterface", "SMInterface\SMInterface.csproj", "{FE8E6894-3A15-472C-B229-E0BE7A827CA1}" 16 | EndProject 17 | Global 18 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 19 | Debug|Any CPU = Debug|Any CPU 20 | Debug|x86 = Debug|x86 21 | Release|Any CPU = Release|Any CPU 22 | Release|x86 = Release|x86 23 | EndGlobalSection 24 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 25 | {C6304C33-CCE5-496C-B11B-49F454CC2F79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 26 | {C6304C33-CCE5-496C-B11B-49F454CC2F79}.Debug|Any CPU.Build.0 = Debug|Any CPU 27 | {C6304C33-CCE5-496C-B11B-49F454CC2F79}.Debug|x86.ActiveCfg = Debug|Any CPU 28 | {C6304C33-CCE5-496C-B11B-49F454CC2F79}.Debug|x86.Build.0 = Debug|Any CPU 29 | {C6304C33-CCE5-496C-B11B-49F454CC2F79}.Release|Any CPU.ActiveCfg = Release|Any CPU 30 | {C6304C33-CCE5-496C-B11B-49F454CC2F79}.Release|Any CPU.Build.0 = Release|Any CPU 31 | {C6304C33-CCE5-496C-B11B-49F454CC2F79}.Release|x86.ActiveCfg = Release|Any CPU 32 | {C6304C33-CCE5-496C-B11B-49F454CC2F79}.Release|x86.Build.0 = Release|Any CPU 33 | {FE8E6894-3A15-472C-B229-E0BE7A827CA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 34 | {FE8E6894-3A15-472C-B229-E0BE7A827CA1}.Debug|Any CPU.Build.0 = Debug|Any CPU 35 | {FE8E6894-3A15-472C-B229-E0BE7A827CA1}.Debug|x86.ActiveCfg = Debug|Any CPU 36 | {FE8E6894-3A15-472C-B229-E0BE7A827CA1}.Debug|x86.Build.0 = Debug|Any CPU 37 | {FE8E6894-3A15-472C-B229-E0BE7A827CA1}.Release|Any CPU.ActiveCfg = Release|Any CPU 38 | {FE8E6894-3A15-472C-B229-E0BE7A827CA1}.Release|Any CPU.Build.0 = Release|Any CPU 39 | {FE8E6894-3A15-472C-B229-E0BE7A827CA1}.Release|x86.ActiveCfg = Release|Any CPU 40 | {FE8E6894-3A15-472C-B229-E0BE7A827CA1}.Release|x86.Build.0 = Release|Any CPU 41 | EndGlobalSection 42 | GlobalSection(SolutionProperties) = preSolution 43 | HideSolutionNode = FALSE 44 | EndGlobalSection 45 | GlobalSection(ExtensibilityGlobals) = postSolution 46 | SolutionGuid = {F4111CF2-F5F8-4231-BFD1-831EFC867CF4} 47 | EndGlobalSection 48 | EndGlobal 49 | -------------------------------------------------------------------------------- /Distribution/Developer Notes.txt: -------------------------------------------------------------------------------- 1 | Ship Manifest Developer Notes 2 | ------------------------------------------------- 3 | KSP Version supported: 1.3 4 | ------------------------------------------------- 5 | 6 | 7 | Important Links: 8 | ------------------------------------------------- 9 | Download: Kerbalstuff - https://kerbalstuff.com/mod/261/Ship%20Manifest 10 | CurseForge - http://kerbal.curseforge.com/ksp-mods/220357-ship-manifest 11 | Github - https://github.com/PapaJoesSoup/ShipManifest/releases 12 | Source: Github - http://github.com/PapaJoesSoup/ShipManifest 13 | WIKI: Github - http://github.com/PapaJoesSoup/ShipManifest/wiki 14 | ------------------------------------------------- 15 | 16 | 17 | License: 18 | ------------------------------------------------- 19 | CC BY-NC-SA 4.0 http://creativecommons.org/licenses/by-nc-sa/4.0/. 20 | Original license on Crew Manifest was do as you want. I felt the original and contributing authors deserve due attribution, 21 | since this is a derivative work. 22 | ------------------------------------------------- 23 | 24 | 25 | ShipManifest API 26 | ------------------------------------------------- 27 | Ship Manifest supports other Mods via exposing certain elements of the mod as public to the outside world. 28 | Developers can use the enclosed SMWrapper.cs class in their projects to easily integrate with SM. 29 | SMWrapper uses reflection to derive the needed objects, properties, & methods for accessing SM's Crew Transfer Features. 30 | 31 | Thanks go out to JPLRepo for writing SMWrapper.cs, and helping with testing and refactoring. 32 | ------------------------------------------------- 33 | 34 | 35 | Using SMWrapper.cs 36 | ------------------------------------------------- 37 | Add SMWrapper.cs to your solution and change the namespace at the top of the file to your own. 38 | 39 | Add calls to obtain an SMAddon instance in the Start or Awake event handlers of your mod. 40 | Use the exposed objects as needed. 41 | 42 | DeepFreeze, by JPLRepo implements SMWrapper, so you may examine his Git Repository for details on advanced implementation. 43 | ------------------------------------------------- 44 | 45 | 46 | Under the hood 47 | ------------------------------------------------- 48 | SM uses an SMAddon Instance for basic API connectivity and instantiation. 49 | It is available at all times and contains a flag to notify you of transfers in progress. 50 | Inside this instance is an instance of the TransferCrew class that encapsulates all info needed for in progress Crew Transfers. 51 | TransferCrew objects are only available in Flight. 52 | 53 | This section will expand as I have time to add. 54 | ---------------------------------------------------------------------------------------------------------------------------------------- 55 | 56 | Thanks for considering integrating with SM! 57 | -------------------------------------------------------------------------------- /Source/ShipManifest/APIClients/InstalledMods.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Reflection; 5 | using ShipManifest.InternalObjects.Settings; 6 | using UnityEngine; 7 | 8 | namespace ShipManifest.APIClients 9 | { 10 | internal class InstalledMods 11 | { 12 | private const float GuiWidth = 190; 13 | // Properties 14 | private static readonly Assembly[] Assemblies = AppDomain.CurrentDomain.GetAssemblies(); 15 | 16 | internal static bool IsDfApiReady => DfWrapper.ApiReady; 17 | 18 | internal static bool IsDfInstalled => IsModInstalled("DeepFreeze"); 19 | 20 | internal static bool IsRtInstalled => IsModInstalled("RemoteTech"); 21 | 22 | internal static bool IsSmInstalled => IsModInstalled("ShipManifest"); 23 | 24 | internal static bool IsKisInstalled => IsModInstalled("KIS"); 25 | 26 | internal static bool IsClsInstalled => IsModInstalled("ConnectedLivingSpace"); 27 | 28 | // Methods 29 | internal static void DisplayAssemblyList() 30 | { 31 | List sortedAssemblies = (from a in Assemblies select a).OrderBy(a => a.FullName).ToList(); 32 | if (sortedAssemblies.Count == 0) return; 33 | List.Enumerator list = sortedAssemblies.GetEnumerator(); 34 | while (list.MoveNext()) 35 | { 36 | if (list.Current == null) continue; 37 | string[] fullName = list.Current.FullName.Split(','); 38 | GUILayout.BeginHorizontal(); 39 | GUILayout.Label(fullName[0], SMStyle.SMSkin.label, GUILayout.Width(GuiWidth * CurrSettings.CurrentUIScale)); 40 | GUILayout.Label(fullName[1]); 41 | GUILayout.EndHorizontal(); 42 | } 43 | list.Dispose(); 44 | } 45 | 46 | internal static void DisplayModList() 47 | { 48 | List sortedAssemblies = (from a in Assemblies select a).OrderBy(a => a.FullName).ToList(); 49 | if (sortedAssemblies.Count == 0) return; 50 | List.Enumerator list = sortedAssemblies.GetEnumerator(); 51 | while (list.MoveNext()) 52 | { 53 | if (list.Current == null) continue; 54 | string[] fullName = list.Current.FullName.Split(','); 55 | GUILayout.BeginHorizontal(); 56 | GUILayout.Label(fullName[0], SMStyle.SMSkin.label,GUILayout.Width(GuiWidth * CurrSettings.CurrentUIScale)); 57 | GUILayout.Label(fullName[1]); 58 | GUILayout.EndHorizontal(); 59 | } 60 | list.Dispose(); 61 | } 62 | 63 | internal static bool IsModInstalled(string assemblyName) 64 | { 65 | try 66 | { 67 | Assembly assembly = (from a in Assemblies 68 | where a.FullName.Split(',')[0] == assemblyName 69 | select a).First(); 70 | return assembly != null; 71 | } 72 | catch 73 | { 74 | return false; 75 | } 76 | } 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /Source/SMInterface/SMInterface.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Debug 9 | AnyCPU 10 | {FE8E6894-3A15-472C-B229-E0BE7A827CA1} 11 | Library 12 | Properties 13 | ShipManifest 14 | SMInterface 15 | v4.8 16 | 512 17 | 18 | 19 | 20 | true 21 | portable 22 | false 23 | bin\Debug\ 24 | DEBUG;TRACE 25 | prompt 26 | 4 27 | false 28 | 29 | 30 | none 31 | true 32 | bin\Release\ 33 | TRACE 34 | prompt 35 | 4 36 | false 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | OnOutputUpdated 51 | if "$(ConfigurationName)"=="Release" ( 52 | echo Copying $(SolutionName) files to distribution folder... 53 | copy /Y "$(TargetPath)" "$(DISTDIR)\GameData\$(SolutionName)\Plugins\" 54 | ) 55 | 56 | 63 | -------------------------------------------------------------------------------- /Distribution/Installation Notes.txt: -------------------------------------------------------------------------------- 1 | ---------------- 2 | Ship Manifest 3 | ---------------- 4 | KSP Version supported: 1.12.x 5 | ---------------- 6 | 7 | KSP Forum OP: https://forum.kerbalspaceprogram.com/index.php?showtopic=56643 8 | 9 | ---------------- 10 | Download: SpaceDock - https://spacedock.info/mod/189/ShipManifest 11 | CurseForge - https://www.curseforge.com/kerbal/ksp-mods/shipmanifest 12 | Github - https://github.com/PapaJoesSoup/ShipManifest/releases 13 | Source: Github - http://github.com/PapaJoesSoup/ShipManifest 14 | WIKI: Github - http://github.com/PapaJoesSoup/ShipManifest/wiki 15 | ---------------- 16 | 17 | ---------------- 18 | License: CC BY-NC-SA 4.0 http://creativecommons.org/licenses/by-nc-sa/4.0/. 19 | Original license on Crew Manifest was do as you want. I felt the original and contributing authors deserve due attribution, 20 | since this is a derivative work. 21 | ---------------- 22 | 23 | ---------------- 24 | What's New: 25 | ---------------- 26 | - See ChangeLog.txt for details. 27 | ---------------- 28 | 29 | 30 | Thanks for downloading Ship Manifest! 31 | 32 | Ship Manifest is a tool to manage your ship's "things". I started with Crew Manifest 33 | as a basis for this work, with great thanks to vXSovereignXv for creating Crew Manifest, and Sarbian for contributions to Crew Manifest. 34 | 35 | I've now re-imagined it into Ship Manifest, using the same easy to navigate visual system that vXSovereignXv used. SM has since been expanded and refactored to the point that it is now a completely original work. 36 | 37 | 38 | NOTE: SM has no dependencies on other mods. If installed, Ship manifest is designed specifically to take advantage of: 39 | - Blizzy's Toolbar. 40 | - Connected Living Space https://forum.kerbalspaceprogram.com/index.php?showtopic=109972. 41 | - Module Manager http://forum.kerbalspaceprogram.com/threads/55219 42 | - DeepFreeze http://forum.kerbalspaceprogram.com/threads/124720 43 | - RemoteTech Antennas https://forum.kerbalspaceprogram.com/index.php?showtopic=139167 44 | - KSP-AVC http://forum.kerbalspaceprogram.com/threads/79745 45 | - CKAN https://forum.kerbalspaceprogram.com/index.php?showtopic=197082 46 | 47 | -------------------- 48 | Installation steps: 49 | -------------------- 50 | 1. Remove any previous installation of ShipManifest from your GameData folder. 51 | 2. Overwrite your GameData folder with the contents of the archive. 52 | 53 | 54 | ------------ 55 | Videos: 56 | ------------ 57 | - Kottabos did a fine review here: www.youtube.com/watch?v=I_TNxjnW234 (Feb 28th 2014). It was very educational for me :). I've long since fixed the bugs and added so much more... :D 58 | 59 | ------------ 60 | Acknowledgments: 61 | ------------ 62 | - This work was originally based on Crew manifest 0.5.6.0 by xxSovereignxx as modified by Sarbian to work with KSP v0.22. (Wow, that was a long time ago - 2013... I've been working on this for 10 years... I'm old... I'm tired... I'm going to bed now... :D)) 63 | -------------------------------------------------------------------------------- /Source/ShipManifest/Windows/Popups/PopupCloseTransfer.cs: -------------------------------------------------------------------------------- 1 | using ShipManifest.InternalObjects; 2 | using ShipManifest.InternalObjects.Settings; 3 | using ShipManifest.Process; 4 | using UnityEngine; 5 | 6 | namespace ShipManifest.Windows.Popups 7 | { 8 | internal static class PopupCloseTransfer 9 | { 10 | internal static float WindowHeight = 185; 11 | internal static float WindowWidth = 420; 12 | internal static float TextWidth = 400; 13 | internal static Rect Position = CurrSettings.DefaultPosition; 14 | private static bool _inputLocked; 15 | private static bool _showWindow; 16 | internal static bool ShowWindow 17 | { 18 | get => _showWindow; 19 | set 20 | { 21 | if (!value) 22 | { 23 | InputLockManager.RemoveControlLock("SM_Window"); 24 | _inputLocked = false; 25 | } 26 | _showWindow = value; 27 | } 28 | } 29 | 30 | // Content strings 31 | internal static string Title = "Confirm Close Transfer Window"; 32 | internal static GUIContent descContent = new GUIContent(SmUtils.SmTags["#smloc_popup_transfer_001"]); 33 | internal static GUIContent closeContent = new GUIContent(SmUtils.SmTags["#smloc_debug_003"]); // = Close 34 | internal static GUIContent cancelContent = new GUIContent(SmUtils.SmTags["#smloc_settings_003"]); // = "Cancel" 35 | 36 | 37 | internal static void Display(int windowId) 38 | { 39 | // set input locks when mouseover window... 40 | _inputLocked = GuiUtils.PreventClickthrough(ShowWindow, Position, _inputLocked); 41 | 42 | GUILayout.BeginVertical(); 43 | GUILayout.Label("", SMStyle.SMSkin.label,GUILayout.Height(20 * CurrSettings.CurrentUIScale)); 44 | GUILayout.Label(descContent, SMStyle.LabelStyleCenter, GUILayout.Width(TextWidth * CurrSettings.CurrentUIScale)); 45 | 46 | GUILayout.Label("", SMStyle.SMSkin.label, GUILayout.Height(30 * CurrSettings.CurrentUIScale)); 47 | GUILayout.BeginHorizontal(); 48 | if (GUILayout.Button(closeContent, SMStyle.SMSkin.button, GUILayout.Height(20 * CurrSettings.CurrentUIScale))) // "Close" 49 | { 50 | // Abort all Transfers and quit 51 | TransferPump.AbortAllPumpsInProcess(0); 52 | TransferPump.Paused = false; 53 | WindowTransfer.BtnCloseWindow(); 54 | return; 55 | } 56 | if (GUILayout.Button(cancelContent, SMStyle.SMSkin.button, GUILayout.Height(20 * CurrSettings.CurrentUIScale))) //"Cancel" 57 | { 58 | TransferPump.Paused = false; 59 | SMSound.SourcePumpRun.Play(); 60 | ShowWindow = false; 61 | } 62 | GUILayout.EndHorizontal(); 63 | GUILayout.EndVertical(); 64 | //ResetZoomKeys(); 65 | GUI.DragWindow(new Rect(0, 0, Screen.width, 30)); 66 | Position.width = WindowWidth; 67 | Position.height = WindowHeight; 68 | GuiUtils.RepositionWindow(ref Position); 69 | } 70 | 71 | internal static void RefreshUIScale() 72 | { 73 | WindowWidth = 420; 74 | TextWidth = 400; 75 | WindowHeight = 185 * CurrSettings.CurrentUIScale; 76 | } 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /Source/ShipManifest/SMInterface.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Reflection; 5 | 6 | namespace ShipManifest 7 | { 8 | public interface ITransferCrew 9 | { 10 | bool CrewXferActive { get; set; } 11 | bool IsStockXfer { get; } 12 | bool OverrideStockCrewXfer { get; } 13 | double CrewXferDelaySec { get; } 14 | bool IsSeat2SeatXfer { get; } 15 | double Seat2SeatXferDelaySec { get; } 16 | 17 | bool IvaDelayActive { get; } 18 | 19 | Guid XferVesselId { get; } 20 | 21 | Part FromPart { get; } 22 | Part ToPart { get; } 23 | 24 | ProtoCrewMember FromCrewMember { get; } 25 | ProtoCrewMember ToCrewMember { get; } 26 | 27 | InternalSeat FromSeat { get; } 28 | InternalSeat ToSeat { get; } 29 | } 30 | 31 | public interface ITransferProcess 32 | { 33 | bool PumpProcessOn { get; } 34 | bool CrewProcessOn { get; } 35 | ITransferCrew CrewTransferProcess { get; } 36 | List PumpsInProgress { get; } 37 | } 38 | 39 | public interface ITransferPump 40 | { 41 | string Resource { get; } 42 | List FromParts { get; } 43 | List ToParts { get; } 44 | bool IsComplete { get; } 45 | bool IsPumpOn { get; } 46 | 47 | double PumpAmount { get; } 48 | double AmtPumped { get; } 49 | double PumpBalance { get; } 50 | 51 | double FlowRate { get; } 52 | double PumpRatio { get; } 53 | 54 | double FromCapacity { get; } 55 | double FromRemaining { get; } 56 | bool FromIsEmpty { get; } 57 | bool FromIsFull { get; } 58 | 59 | double ToCapacity { get; } 60 | double ToCapacityRemaining { get; } 61 | double ToRemaining { get; } 62 | bool ToIsFull { get; } 63 | bool ToIsEmpty { get; } 64 | 65 | string Info { get; } 66 | 67 | void Abort(); 68 | } 69 | 70 | // ReSharper disable once InconsistentNaming 71 | public static class SmInterface 72 | { 73 | private static bool _smChecked; 74 | private static bool _smInstalled; 75 | 76 | public static bool IsSmInstalled 77 | { 78 | get 79 | { 80 | if (_smChecked) return _smInstalled; 81 | const string assemblyName = "ShipManifest"; 82 | var assemblies = AppDomain.CurrentDomain.GetAssemblies(); 83 | var assembly = (from a in assemblies 84 | where a.FullName.Contains(assemblyName) 85 | select a).SingleOrDefault(); 86 | _smInstalled = assembly != null; 87 | _smChecked = true; 88 | return _smInstalled; 89 | } 90 | } 91 | 92 | public static ITransferProcess GetSmProcesses() 93 | { 94 | var smAddonType = 95 | AssemblyLoader.loadedAssemblies.SelectMany(a => a.assembly.GetExportedTypes()) 96 | .SingleOrDefault(t => t.FullName == "ShipManifest.SMAddon"); 97 | if (smAddonType == null) return null; 98 | var transferProcess = smAddonType.GetProperty("Instance", BindingFlags.Public | BindingFlags.Static) 99 | .GetValue(null, null); 100 | return (ITransferProcess) transferProcess; 101 | } 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /Source/ShipManifest/WeakReference.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace ShipManifest 5 | { 6 | /// 7 | /// Strongly-typed weak reference. 8 | /// See: http://blog.somewhatabstract.com/2012/03/24/strongly-typed-weakreference/ 9 | /// 10 | /// The type of object being referenced. 11 | internal class WeakReference : WeakReference where T : class 12 | { 13 | /// 14 | /// Initializes a new instance of the class, referencing 15 | /// the specified object. 16 | /// 17 | /// An object to track. 18 | internal WeakReference(T target) 19 | : base(target) 20 | { 21 | } 22 | 23 | /// 24 | /// Initializes a new instance of the class, referencing 25 | /// the specified object and using the specified resurrection tracking. 26 | /// 27 | /// An object to track. 28 | /// 29 | /// Indicates when to stop tracking the object. If true, the object is tracked 30 | /// after finalization; if false, the object is only tracked until finalization.. 31 | /// 32 | internal WeakReference(T target, bool trackResurrection) 33 | : base(target, trackResurrection) 34 | { 35 | } 36 | 37 | /// 38 | /// Initializes a new instance of the class. 39 | /// 40 | /// 41 | /// An object that holds all the data needed to serialize or deserialize the current 42 | /// object. 43 | /// 44 | /// 45 | /// (Reserved) Describes the source and destination of the serialized stream specified by 46 | /// . 47 | /// 48 | /// 49 | /// is null. 50 | /// 51 | protected WeakReference(SerializationInfo info, StreamingContext context) 52 | : base(info, context) 53 | { 54 | } 55 | 56 | /// 57 | /// Gets or sets the object (the target) referenced by the current object. 58 | /// 59 | /// 60 | /// 61 | /// null if the object referenced by the current object has been garbage 62 | /// collected; otherwise, a reference to the object referenced by the current 63 | /// object. 64 | /// 65 | /// 66 | /// The reference to the target object is invalid. This exception can 67 | /// be thrown while setting this property if the value is a null reference or if the object has been finalized during the 68 | /// set operation. 69 | /// 70 | internal new T Target 71 | { 72 | get { return (T) base.Target; } 73 | 74 | set { base.Target = value; } 75 | } 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /Source/ShipManifest/Modules/ModAntenna.cs: -------------------------------------------------------------------------------- 1 | using ShipManifest.APIClients; 2 | 3 | namespace ShipManifest.Modules 4 | { 5 | internal class ModAntenna 6 | { 7 | internal ModAntenna() 8 | { 9 | } 10 | 11 | internal ModAntenna(PartModule xModule, PartModule pModule, Part iPart) 12 | { 13 | XmitterModule = xModule; 14 | AnimateModule = pModule; 15 | SPart = iPart; 16 | } 17 | 18 | internal PartModule XmitterModule { get; set; } 19 | 20 | internal PartModule AnimateModule { get; set; } 21 | 22 | internal Part SPart { get; set; } 23 | 24 | internal bool IsRtModule 25 | { 26 | get 27 | { 28 | return XmitterModule.moduleName == "ModuleRTAntenna"; 29 | } 30 | } 31 | 32 | internal bool Extended 33 | { 34 | get 35 | { 36 | if (IsRtModule) 37 | return XmitterModule.Events["EventClose"].active; 38 | return Module.deployState == ModuleDeployablePart.DeployState.EXTENDED; 39 | } 40 | } 41 | 42 | internal string AntennaStatus 43 | { 44 | get 45 | { 46 | // RT support: 47 | if (IsRtModule) 48 | return XmitterModule.Events["EventClose"].active ? "Activated" : "Deactivated"; 49 | return Module.deployState == ModuleDeployablePart.DeployState.EXTENDED ? "Extended" : "Retracted"; 50 | } 51 | } 52 | 53 | internal string Title 54 | { 55 | get 56 | { 57 | string title; 58 | try 59 | { 60 | title = $"{SPart.partInfo.title}\r\n {SmUtils.SmTags["#smloc_module_001"]} {SPart.parent.partInfo.title}"; 61 | } 62 | catch 63 | { 64 | title = SPart.partInfo.title; 65 | } 66 | return title; 67 | } 68 | } 69 | 70 | private ModuleDeployableAntenna Module 71 | { 72 | get { return (ModuleDeployableAntenna) AnimateModule; } 73 | } 74 | 75 | internal void ExtendAntenna() 76 | { 77 | // RT support: 78 | if (IsRtModule) 79 | { 80 | if (InstalledMods.IsRtInstalled) 81 | { 82 | //if (RemoteTech.API.API.HasFlightComputer(SmAddon.vessel.id)) 83 | //{ 84 | // ConfigNode configNode = new ConfigNode(); 85 | // configNode.AddValue("GUIDString", SmAddon.vessel.id); 86 | // configNode.AddValue("Executor", "ShipManifest"); 87 | // configNode.AddValue("ReflectionType", "ShipManifest"); 88 | // RemoteTech.API.API.QueueCommandToFlightComputer(configNode); 89 | //} 90 | //else 91 | XmitterModule.Events["EventOpen"].Invoke(); 92 | } 93 | else 94 | XmitterModule.Events["EventOpen"].Invoke(); 95 | } 96 | else if (Module.deployState == ModuleDeployablePart.DeployState.RETRACTED) 97 | Module.Extend(); 98 | } 99 | 100 | internal void RetractAntenna() 101 | { 102 | // RT support: 103 | if (IsRtModule) 104 | XmitterModule.Events["EventClose"].Invoke(); 105 | else if (Module.deployState == ModuleDeployablePart.DeployState.EXTENDED) 106 | Module.Retract(); 107 | } 108 | } 109 | } 110 | -------------------------------------------------------------------------------- /Source/ShipManifest/Windows/Tabs/Control/TabScienceLabs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using ShipManifest.InternalObjects; 4 | using ShipManifest.InternalObjects.Settings; 5 | using UnityEngine; 6 | 7 | namespace ShipManifest.Windows.Tabs.Control 8 | { 9 | internal static class TabScienceLab 10 | { 11 | 12 | static TabScienceLab() 13 | { 14 | RefreshUIScale(); 15 | } 16 | 17 | // UIScale settings 18 | internal static float guiLabelWidth; 19 | internal static float guiLabelHeight; 20 | 21 | // ToolTip vars 22 | internal static string ToolTip = ""; 23 | internal static bool ToolTipActive; 24 | internal static bool ShowToolTips = true; 25 | 26 | //Content vars 27 | internal static GUIContent titleContent = new GUIContent(SmUtils.SmTags["#smloc_control_radiator_000"]); 28 | internal static string opContent = SmUtils.SmTags["#smloc_control_lab_001"]; 29 | internal static string inopContent = SmUtils.SmTags["#smloc_control_lab_002"]; 30 | 31 | 32 | internal static void Display() 33 | { 34 | 35 | //float scrollX = WindowControl.Position.x + 10; 36 | //float scrollY = WindowControl.Position.y + 50 - displayViewerPosition.y; 37 | float scrollX = 10; 38 | float scrollY = WindowControl._displayViewerPosition.y; 39 | 40 | // Reset Tooltip active flag... 41 | ToolTipActive = false; 42 | SMHighlighter.IsMouseOver = false; 43 | 44 | GUILayout.BeginVertical(); 45 | GUI.enabled = true; 46 | GUILayout.Label(titleContent, SMStyle.LabelTabHeader); 47 | GUILayout.Label(WindowControl.TabRule, SMStyle.LabelStyleHardRule, GUILayout.Height(WindowControl.GuiRuleHeight), GUILayout.Width(WindowControl.GuiRuleWidth + WindowControl.WidthScale)); 48 | string step = "start"; 49 | try 50 | { 51 | // Display all Labs 52 | List.Enumerator iLabs = SMAddon.SmVessel.Labs.GetEnumerator(); 53 | while (iLabs.MoveNext()) 54 | { 55 | if (iLabs.Current == null) continue; 56 | 57 | step = "gui enable"; 58 | GUI.enabled = true; 59 | string label = $"{iLabs.Current.name} - ({(iLabs.Current.IsOperational() ? opContent : inopContent)})"; // Operational, InOp 60 | GUILayout.Label(label, SMStyle.SMSkin.label, GUILayout.Width(guiLabelWidth + WindowControl.WidthScale), GUILayout.Height(guiLabelHeight)); 61 | 62 | Rect rect = GUILayoutUtility.GetLastRect(); 63 | if (Event.current.type == EventType.Repaint && rect.Contains(Event.current.mousePosition)) 64 | SMHighlighter.SetMouseOverData(rect, scrollY, scrollX, WindowControl.TabBox.height + WindowControl.HeightScale, iLabs.Current.part, Event.current.mousePosition); 65 | } 66 | iLabs.Dispose(); 67 | 68 | // Display MouseOverHighlighting, if any 69 | SMHighlighter.MouseOverHighlight(); 70 | } 71 | catch (Exception ex) 72 | { 73 | SmUtils.LogMessage( 74 | $" in Science Labs Tab at step {step}. Error: {ex.Message} \r\n\r\n{ex.StackTrace}", 75 | SmUtils.LogType.Error, true); 76 | } 77 | GUILayout.EndVertical(); 78 | } 79 | 80 | internal static void RefreshUIScale() 81 | { 82 | guiLabelWidth = 260 * CurrSettings.CurrentUIScale; 83 | guiLabelHeight = 40 * CurrSettings.CurrentUIScale; 84 | } 85 | 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /Source/ShipManifest/InternalObjects/Settings/OrigSettings.cs: -------------------------------------------------------------------------------- 1 | namespace ShipManifest.InternalObjects.Settings 2 | { 3 | internal static class OrigSettings 4 | { 5 | // Realism Tab Feature Options 6 | internal static int RealismMode = 3; 7 | internal static bool RealXfers; 8 | internal static bool RealCrewXfers; 9 | internal static bool RealControl; 10 | internal static bool EnableXferCost = true; 11 | internal static double FlowRate = 100; 12 | internal static double FlowCost = 0.0015; 13 | internal static double MaxFlowRate = 1000; 14 | internal static double MinFlowRate; 15 | internal static int MaxFlowTimeSec = 100; 16 | internal static bool EnableScience = true; 17 | internal static bool EnableCrew = true; 18 | internal static bool EnableCrewModify = true; 19 | internal static bool EnableKerbalRename = true; 20 | internal static bool EnableChangeProfession = true; 21 | internal static bool EnablePfCrews; 22 | internal static bool EnableStockCrewXfer = true; 23 | internal static bool OverrideStockCrewXfer = true; 24 | internal static bool EnableClsAllowTransfer = true; 25 | internal static bool EnablePfResources = true; 26 | internal static bool EnableCls = true; 27 | internal static bool LockSettings; 28 | 29 | // Sound Tab Options 30 | // All Default sounds licensing is: CC-By-SA 31 | internal static string PumpSoundStart = "ShipManifest/Sounds/59328-1"; 32 | internal static string PumpSoundRun = "ShipManifest/Sounds/59328-2"; 33 | internal static string PumpSoundStop = "ShipManifest/Sounds/59328-3"; 34 | internal static double PumpSoundVol = 1; 35 | 36 | internal static string CrewSoundStart = "ShipManifest/Sounds/14214-1"; 37 | internal static string CrewSoundRun = "ShipManifest/Sounds/14214-2"; 38 | internal static string CrewSoundStop = "ShipManifest/Sounds/14214-3"; 39 | internal static double CrewSoundVol = 1; 40 | 41 | // Tooltip Options 42 | internal static bool ShowToolTips = true; 43 | internal static bool ManifestToolTips = true; 44 | internal static bool TransferToolTips = true; 45 | internal static bool SettingsToolTips = true; 46 | internal static bool RosterToolTips = true; 47 | internal static bool ControlToolTips = true; 48 | internal static bool HatchToolTips = true; 49 | internal static bool PanelToolTips = true; 50 | internal static bool AntennaToolTips = true; 51 | internal static bool LightToolTips = true; 52 | internal static bool RealismToolTips = true; 53 | internal static bool HighlightToolTips = true; 54 | internal static bool SoundsToolTips = true; 55 | internal static bool ToolTipsToolTips = true; 56 | internal static bool ConfigToolTips = true; 57 | internal static bool ModsToolTips = true; 58 | internal static bool DebuggerToolTips = true; 59 | internal static bool AppIconToolTips = true; 60 | 61 | 62 | //Highlighting Tab Options 63 | internal static bool EnableHighlighting = true; 64 | internal static bool OnlySourceTarget; 65 | internal static bool EnableClsHighlighting = true; 66 | internal static bool EnableEdgeHighlighting = true; 67 | 68 | //Config Tab options 69 | internal static bool EnableBlizzyToolbar; 70 | internal static bool EnableSettingsIcon; 71 | internal static bool VerboseLogging; 72 | internal static bool ShowDebugger; 73 | internal static string ErrorLogLength = "1000"; 74 | internal static bool SaveLogOnExit = true; 75 | internal static bool AutoSave; 76 | internal static bool UseUnityStyle = true; 77 | internal static int SaveIntervalSec = 60; 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /Source/ShipManifest/SMPart.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | using ShipManifest.APIClients; 4 | using ShipManifest.InternalObjects; 5 | using ShipManifest.Process; 6 | 7 | namespace ShipManifest 8 | { 9 | // ReSharper disable once InconsistentNaming 10 | internal static class SMPart 11 | { 12 | internal static void FillCrew(Part part) 13 | { 14 | //Utilities.LogMessage(string.Format("Entering Fill Crew with part {0}", part.partInfo.name), Utilities.LogType.Info, true); 15 | if (IsCrewFull(part)) return; 16 | while (part.CrewCapacity > SmUtils.GetPartCrewCount(part)) 17 | { 18 | ProtoCrewMember kerbal = HighLogic.CurrentGame.CrewRoster.GetNextOrNewKerbal(); 19 | part.AddCrewmember(kerbal); 20 | //Utilities.LogMessage(string.Format("Filling crew in part {0}", part.partInfo.name), Utilities.LogType.Info, true); 21 | if (kerbal.seat != null) 22 | kerbal.seat.SpawnCrew(); 23 | } 24 | SMAddon.FireEventTriggers(); 25 | } 26 | 27 | internal static void DumpCrew(Part part) 28 | { 29 | if (!part.vessel.IsRecoverable) return; 30 | while (part.protoModuleCrew.Count > 0) 31 | { 32 | ProtoCrewMember kerbal = part.protoModuleCrew.FirstOrDefault(); 33 | if (kerbal != null) 34 | { 35 | part.RemoveCrewmember(kerbal); 36 | kerbal.rosterStatus = ProtoCrewMember.RosterStatus.Available; 37 | 38 | if (kerbal.seat != null) 39 | kerbal.seat.SpawnCrew(); 40 | } 41 | } 42 | SMAddon.FireEventTriggers(); 43 | } 44 | 45 | internal static bool IsCrewFull(Part part) 46 | { 47 | if (!InstalledMods.IsDfInstalled || !part.Modules.Contains("DeepFreezer")) 48 | return part.protoModuleCrew.Count == part.CrewCapacity; 49 | PartModule deepFreezer = SMConditions.GetFreezerModule(part); 50 | return deepFreezer != null && new DfWrapper.DeepFreezer(deepFreezer).PartFull; 51 | } 52 | 53 | internal static void ToggleDumpResource(Part part, List resourceNames, uint pumpId) 54 | { 55 | // This is fired by the part dump button on the TransferWindow interface. 56 | ToggleDumpResource(new List {part}, resourceNames, pumpId); 57 | } 58 | 59 | internal static void ToggleDumpResource(List partList, List resourceNames, uint pumpId) 60 | { 61 | // This routine is called by the dump part button on the Transfer Window interface. 62 | // This routine is also called by the dump docked vessel button on the Transfer window interface. 63 | List pumpList = 64 | resourceNames.Select( 65 | resource => 66 | new TransferPump(resource, TransferPump.TypeXfer.Dump, TransferPump.TriggerButton.Transfer, 67 | TransferPump.CalcRemainingResource(partList, resource)) 68 | { 69 | FromParts = partList, 70 | PumpId = pumpId, 71 | PumpRatio = 1 72 | }).ToList(); 73 | if (!TransferPump.PumpsInProgress(pumpId).Any()) 74 | ProcessController.DumpResources(pumpList); 75 | else TransferPump.AbortAllPumpsInProcess(pumpId); 76 | } 77 | 78 | internal static void FillResource(Part part, string resourceName) 79 | { 80 | if (part.Resources.Contains(resourceName)) 81 | part.Resources[resourceName].amount = part.Resources[resourceName].maxAmount; 82 | } 83 | 84 | internal static void FillResource(List partList, string resourceName) 85 | { 86 | IEnumerator list = partList.Where(part => part.Resources.Contains(resourceName)).GetEnumerator(); 87 | while (list.MoveNext()) 88 | { 89 | if (list.Current == null) continue; 90 | list.Current.Resources[resourceName].amount = list.Current.Resources[resourceName].maxAmount; 91 | } 92 | list.Dispose(); 93 | } 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /Source/ShipManifest/Windows/Tabs/Control/TabLight.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using ShipManifest.InternalObjects; 4 | using ShipManifest.InternalObjects.Settings; 5 | using ShipManifest.Modules; 6 | using UnityEngine; 7 | 8 | namespace ShipManifest.Windows.Tabs.Control 9 | { 10 | internal static class TabLight 11 | { 12 | 13 | static TabLight() 14 | { 15 | RefreshUIScale(); 16 | } 17 | 18 | // UIScale settings 19 | internal static float guiToggleWidth; 20 | internal static float guiToggleHeight; 21 | 22 | // TooTip vars 23 | internal static string ToolTip = ""; 24 | internal static bool ToolTipActive; 25 | internal static bool ShowToolTips = true; 26 | 27 | //Content vars 28 | internal static GUIContent titleContent = new GUIContent(SmUtils.SmTags["#smloc_control_light_000"]); 29 | 30 | 31 | internal static void Display() 32 | { 33 | 34 | //float scrollX = WindowControl.Position.x + 20; 35 | //float scrollY = WindowControl.Position.y + 50 - displayViewerPosition.y; 36 | float scrollX = 20; 37 | float scrollY = WindowControl._displayViewerPosition.y; 38 | 39 | // Reset Tooltip active flag... 40 | ToolTipActive = false; 41 | SMHighlighter.IsMouseOver = false; 42 | 43 | GUILayout.BeginVertical(); 44 | GUI.enabled = true; 45 | GUILayout.Label(titleContent, SMStyle.LabelTabHeader); 46 | GUILayout.Label(WindowControl.TabRule, SMStyle.LabelStyleHardRule, GUILayout.Height(WindowControl.GuiRuleHeight), GUILayout.Width(WindowControl.GuiRuleWidth + WindowControl.WidthScale)); 47 | string step = "start"; 48 | try 49 | { 50 | // Display all Lights 51 | List.Enumerator iLights = SMAddon.SmVessel.Lights.GetEnumerator(); 52 | while (iLights.MoveNext()) 53 | { 54 | if (iLights.Current == null) continue; 55 | string label = $"{iLights.Current.Status} - {iLights.Current.Title}"; 56 | bool onState = iLights.Current.IsOn; 57 | bool newOnState = GUILayout.Toggle(onState, label, SMStyle.SMSkin.toggle, GUILayout.Width(guiToggleWidth), GUILayout.Height(guiToggleHeight + WindowControl.WidthScale)); 58 | step = "button toggle check"; 59 | if (!onState && newOnState) 60 | iLights.Current.TurnOnLight(); 61 | else if (onState && !newOnState) 62 | iLights.Current.TurnOffLight(); 63 | Rect rect = GUILayoutUtility.GetLastRect(); 64 | if (Event.current.type == EventType.Repaint && rect.Contains(Event.current.mousePosition)) 65 | SMHighlighter.SetMouseOverData(rect, scrollY, scrollX, WindowControl.TabBox.height + WindowControl.HeightScale, iLights.Current.SPart, Event.current.mousePosition); 66 | } 67 | iLights.Dispose(); 68 | 69 | // Display MouseOverHighlighting, if any 70 | SMHighlighter.MouseOverHighlight(); 71 | } 72 | catch (Exception ex) 73 | { 74 | SmUtils.LogMessage( 75 | $" in Light Tab at step {step}. Error: {ex.Message} \r\n\r\n{ex.StackTrace}", SmUtils.LogType.Error, 76 | true); 77 | } 78 | GUILayout.EndVertical(); 79 | } 80 | 81 | internal static void TurnOnAllLights() 82 | { 83 | // iterate thru the hatch parts and open hatches 84 | List.Enumerator iLights = SMAddon.SmVessel.Lights.GetEnumerator(); 85 | while (iLights.MoveNext()) 86 | { 87 | if (iLights.Current == null) continue; 88 | iLights.Current.TurnOnLight(); 89 | } 90 | iLights.Dispose(); 91 | } 92 | 93 | internal static void TurnOffAllLights() 94 | { 95 | // iterate thru the hatch parts and open hatches 96 | List.Enumerator iLights = SMAddon.SmVessel.Lights.GetEnumerator(); 97 | while (iLights.MoveNext()) 98 | { 99 | if (iLights.Current == null) continue; 100 | iLights.Current.TurnOffLight(); 101 | } 102 | iLights.Dispose(); 103 | } 104 | 105 | internal static void RefreshUIScale() 106 | { 107 | guiToggleWidth = 325 * CurrSettings.CurrentUIScale; 108 | guiToggleHeight = 40 * CurrSettings.CurrentUIScale; 109 | } 110 | 111 | } 112 | } 113 | -------------------------------------------------------------------------------- /Source/packages/MSTest.TestFramework.2.2.7/lib/netstandard1.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions 5 | 6 | 7 | 8 | 9 | 用于为预测试部署指定部署项(文件或目录)。 10 | 可在测试类或测试方法上指定。 11 | 可使用多个特性实例来指定多个项。 12 | 项路径可以是绝对路径或相对路径,如果为相对路径,则相对于 RunConfig.RelativePathRoot。 13 | 14 | 15 | [DeploymentItem("file1.xml")] 16 | [DeploymentItem("file2.xml", "DataFiles")] 17 | [DeploymentItem("bin\Debug")] 18 | 19 | 20 | DeploymentItemAttribute is currently not supported in .Net Core. This is just a placehodler for support in the future. 21 | 22 | 23 | 24 | 25 | 初始化 类的新实例。 26 | 27 | 要部署的文件或目录。路径与生成输出目录相关。将项复制到与已部署测试程序集相同的目录。 28 | 29 | 30 | 31 | 初始化 类的新实例 32 | 33 | 要部署的文件或目录的相对路径或绝对路径。该路径相对于生成输出目录。将项复制到与已部署测试程序集相同的目录。 34 | 要将项复制到其中的目录路径。它可以是绝对部署目录或相对部署目录。所有由以下对象标识的文件和目录: 将复制到此目录。 35 | 36 | 37 | 38 | 获取要复制的源文件或文件夹的路径。 39 | 40 | 41 | 42 | 43 | 获取将项复制到其中的目录路径。 44 | 45 | 46 | 47 | 48 | TestContext 类。此类应完全抽象,且不包含任何 49 | 成员。适配器将实现成员。框架中的用户应 50 | 仅通过定义完善的接口对此进行访问。 51 | 52 | 53 | 54 | 55 | 获取测试的测试属性。 56 | 57 | 58 | 59 | 60 | 获取包含当前正在执行的测试方法的类的完全限定名称 61 | 62 | 63 | This property can be useful in attributes derived from ExpectedExceptionBaseAttribute. 64 | Those attributes have access to the test context, and provide messages that are included 65 | in the test results. Users can benefit from messages that include the fully-qualified 66 | class name in addition to the name of the test method currently being executed. 67 | 68 | 69 | 70 | 71 | 获取当前正在执行的测试方法的名称 72 | 73 | 74 | 75 | 76 | 获取当前测试结果。 77 | 78 | 79 | 80 | 81 | Used to write trace messages while the test is running 82 | 83 | formatted message string 84 | 85 | 86 | 87 | Used to write trace messages while the test is running 88 | 89 | format string 90 | the arguments 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /Source/packages/MSTest.TestFramework.2.2.7/lib/netstandard1.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions 5 | 6 | 7 | 8 | 9 | 用來指定每個測試部署的部署項目 (檔案或目錄)。 10 | 可以指定於測試類別或測試方法。 11 | 可以有屬性的多個執行個體來指定多個項目。 12 | 項目路徑可以是相對或絕對路徑,如果是相對路徑,則是 RunConfig.RelativePathRoot 的相對路徑。 13 | 14 | 15 | [DeploymentItem("file1.xml")] 16 | [DeploymentItem("file2.xml", "DataFiles")] 17 | [DeploymentItem("bin\Debug")] 18 | 19 | 20 | DeploymentItemAttribute is currently not supported in .Net Core. This is just a placehodler for support in the future. 21 | 22 | 23 | 24 | 25 | 初始化 類別的新執行個體。 26 | 27 | 要部署的檔案或目錄。路徑是建置輸出目錄的相對路徑。項目將會複製到與已部署的測試組件相同的目錄。 28 | 29 | 30 | 31 | 初始化 類別的新執行個體 32 | 33 | 要部署之檔案或目錄的相對或絕對路徑。路徑是建置輸出目錄的相對路徑。項目將會複製到與已部署的測試組件相同的目錄。 34 | 要將項目複製到其中之目錄的路徑。它可以是部署目錄的絕對或相對路徑。下者所識別的所有檔案和目錄: 將會複製到這個目錄中。 35 | 36 | 37 | 38 | 取得要複製之來源檔案或資料夾的路徑。 39 | 40 | 41 | 42 | 43 | 取得要將項目複製到其中之目錄的路徑。 44 | 45 | 46 | 47 | 48 | TestContext 類別。這個類別應該是完全抽象的,而且未包含任何 49 | 成員。配接器將會實作成員。架構中的使用者只 50 | 應透過妥善定義的介面來存取這個項目。 51 | 52 | 53 | 54 | 55 | 取得測試的測試屬性。 56 | 57 | 58 | 59 | 60 | 取得包含目前正在執行之測試方法的類別完整名稱 61 | 62 | 63 | This property can be useful in attributes derived from ExpectedExceptionBaseAttribute. 64 | Those attributes have access to the test context, and provide messages that are included 65 | in the test results. Users can benefit from messages that include the fully-qualified 66 | class name in addition to the name of the test method currently being executed. 67 | 68 | 69 | 70 | 71 | 取得目前正在執行的測試方法名稱 72 | 73 | 74 | 75 | 76 | 取得目前測試結果。 77 | 78 | 79 | 80 | 81 | Used to write trace messages while the test is running 82 | 83 | formatted message string 84 | 85 | 86 | 87 | Used to write trace messages while the test is running 88 | 89 | format string 90 | the arguments 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /Source/ShipManifest/Windows/Tabs/Control/TabAntenna.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using KSP.UI.Screens.Settings; 4 | using ShipManifest.APIClients; 5 | using ShipManifest.InternalObjects; 6 | using ShipManifest.InternalObjects.Settings; 7 | using ShipManifest.Modules; 8 | using UnityEngine; 9 | 10 | namespace ShipManifest.Windows.Tabs.Control 11 | { 12 | internal static class TabAntenna 13 | { 14 | 15 | static TabAntenna() 16 | { 17 | RefreshUIScale(); 18 | } 19 | 20 | // UIScale settings 21 | internal static float guiToggleWidth; 22 | internal static float guiToggleHeight; 23 | 24 | internal static string ToolTip = ""; 25 | internal static bool ToolTipActive; 26 | internal static bool ShowToolTips = true; 27 | internal static bool IsRtAntennas; 28 | 29 | //Content vars 30 | internal static GUIContent titleContent = new GUIContent(SmUtils.SmTags["#smloc_control_antenna_000"]); 31 | internal static GUIContent titleRmContent = new GUIContent(SmUtils.SmTags["#smloc_control_antenna_001"]); 32 | 33 | 34 | internal static void Display() 35 | { 36 | //float scrollX = WindowControl.Position.x; 37 | //float scrollY = WindowControl.Position.y + 50 - displayViewerPosition.y; 38 | float scrollX = 0; 39 | float scrollY = WindowControl._displayViewerPosition.y; 40 | 41 | // Reset Tooltip active flag... 42 | ToolTipActive = false; 43 | SMHighlighter.IsMouseOver = false; 44 | 45 | GUILayout.BeginVertical(); 46 | GUI.enabled = true; 47 | GUILayout.Label( 48 | InstalledMods.IsRtInstalled ? titleRmContent : titleContent, SMStyle.LabelTabHeader); 49 | GUILayout.Label(WindowControl.TabRule, SMStyle.LabelStyleHardRule, GUILayout.Height(WindowControl.GuiRuleHeight), GUILayout.Width(WindowControl.GuiRuleWidth + WindowControl.WidthScale)); 50 | string step = "start"; 51 | try 52 | { 53 | // Display all antennas 54 | List.Enumerator iAntennas = SMAddon.SmVessel.Antennas.GetEnumerator(); 55 | while (iAntennas.MoveNext()) 56 | { 57 | if (iAntennas.Current == null) continue; 58 | if (!IsRtAntennas && iAntennas.Current.IsRtModule) IsRtAntennas = true; 59 | step = "get Antenna label"; 60 | string label = $"{iAntennas.Current.AntennaStatus} - {iAntennas.Current.Title}"; 61 | bool open = iAntennas.Current.Extended; 62 | bool newOpen = GUILayout.Toggle(open, label, GUILayout.Width(guiToggleWidth + WindowControl.WidthScale), GUILayout.Height(guiToggleHeight)); 63 | step = "button toggle check"; 64 | if (!open && newOpen) 65 | iAntennas.Current.ExtendAntenna(); 66 | else if (open && !newOpen) 67 | iAntennas.Current.RetractAntenna(); 68 | 69 | Rect rect = GUILayoutUtility.GetLastRect(); 70 | if (Event.current.type == EventType.Repaint && rect.Contains(Event.current.mousePosition)) 71 | SMHighlighter.SetMouseOverData(rect, scrollY, scrollX, WindowControl.TabBox.height + WindowControl.HeightScale, iAntennas.Current.SPart, Event.current.mousePosition); 72 | } 73 | iAntennas.Dispose(); 74 | 75 | // Display MouseOverHighlighting, if any 76 | SMHighlighter.MouseOverHighlight(); 77 | } 78 | catch (Exception ex) 79 | { 80 | SmUtils.LogMessage( 81 | $" in Antenna Tab at step {step}. Error: {ex.Message} \r\n\r\n{ex.StackTrace}", 82 | SmUtils.LogType.Error, true); 83 | } 84 | GUILayout.EndVertical(); 85 | } 86 | 87 | internal static void ExtendAllAntennas() 88 | { 89 | // TODO: for realism, add a closing/opening sound 90 | List.Enumerator iAntennas = SMAddon.SmVessel.Antennas.GetEnumerator(); 91 | while (iAntennas.MoveNext()) 92 | { 93 | if (iAntennas.Current == null) continue; 94 | iAntennas.Current.ExtendAntenna(); 95 | } 96 | iAntennas.Dispose(); 97 | } 98 | 99 | internal static void RetractAllAntennas() 100 | { 101 | // TODO: for realism, add a closing/opening sound 102 | List.Enumerator iAntennas = SMAddon.SmVessel.Antennas.GetEnumerator(); 103 | while (iAntennas.MoveNext()) 104 | { 105 | if (iAntennas.Current == null) continue; 106 | iAntennas.Current.RetractAntenna(); 107 | } 108 | iAntennas.Dispose(); 109 | } 110 | 111 | internal static void RefreshUIScale() 112 | { 113 | guiToggleWidth = 325 * CurrSettings.CurrentUIScale; 114 | guiToggleHeight = 40 * CurrSettings.CurrentUIScale; ; 115 | } 116 | } 117 | } 118 | -------------------------------------------------------------------------------- /Source/packages/MSTest.TestFramework.2.2.7/lib/netstandard1.0/ja/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions 5 | 6 | 7 | 8 | 9 | テスト配置ごとに配置項目 (ファイルまたはディレクトリ) を指定するために使用されます。 10 | テスト クラスまたはテスト メソッドで指定できます。 11 | 属性に複数のインスタンスを指定して、2 つ以上の項目を指定することができます。 12 | 項目のパスには絶対パスまたは相対パスを指定できます。相対パスの場合は、RunConfig.RelativePathRoot からの相対パスです。 13 | 14 | 15 | [DeploymentItem("file1.xml")] 16 | [DeploymentItem("file2.xml", "DataFiles")] 17 | [DeploymentItem("bin\Debug")] 18 | 19 | 20 | DeploymentItemAttribute is currently not supported in .Net Core. This is just a placehodler for support in the future. 21 | 22 | 23 | 24 | 25 | クラスの新しいインスタンスを初期化します。 26 | 27 | 配置するファイルまたはディレクトリ。パスはビルドの出力ディレクトリの相対パスです。項目は配置されたテスト アセンブリと同じディレクトリにコピーされます。 28 | 29 | 30 | 31 | クラスの新しいインスタンスを初期化する 32 | 33 | 配置するファイルまたはディレクトリへの相対パスまたは絶対パス。パスはビルドの出力ディレクトリの相対パスです。項目は配置されたテスト アセンブリと同じディレクトリにコピーされます。 34 | アイテムのコピー先のディレクトリのパス。配置ディレクトリへの絶対パスまたは相対パスのいずれかを指定できます。次で識別されるすべてのファイルとディレクトリは このディレクトリにコピーされます。 35 | 36 | 37 | 38 | コピーするソース ファイルまたはフォルダーのパスを取得します。 39 | 40 | 41 | 42 | 43 | 項目のコピー先のディレクトリのパスを取得します。 44 | 45 | 46 | 47 | 48 | TestContext クラス。このクラスは完全に抽象的でなければならず、かつメンバー 49 | を含んでいてはなりません。アダプターはメンバーを実装します。フレームワーク内のユーザーは 50 | 正しく定義されたインターフェイスを介してのみこのクラスにアクセスする必要があります。 51 | 52 | 53 | 54 | 55 | テストのテスト プロパティを取得します。 56 | 57 | 58 | 59 | 60 | 現在実行中のテスト メソッドを含むクラスの完全修飾名を取得する 61 | 62 | 63 | This property can be useful in attributes derived from ExpectedExceptionBaseAttribute. 64 | Those attributes have access to the test context, and provide messages that are included 65 | in the test results. Users can benefit from messages that include the fully-qualified 66 | class name in addition to the name of the test method currently being executed. 67 | 68 | 69 | 70 | 71 | 現在実行中のテスト メソッドの名前を取得する 72 | 73 | 74 | 75 | 76 | 現在のテスト成果を取得します。 77 | 78 | 79 | 80 | 81 | Used to write trace messages while the test is running 82 | 83 | formatted message string 84 | 85 | 86 | 87 | Used to write trace messages while the test is running 88 | 89 | format string 90 | the arguments 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /Source/packages/MSTest.TestFramework.2.2.7/lib/netstandard1.0/ko/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions 5 | 6 | 7 | 8 | 9 | 테스트 배포별 배포 항목(파일 또는 디렉터리)을 지정하는 데 사용됩니다. 10 | 테스트 클래스 또는 테스트 메서드에서 지정할 수 있습니다. 11 | 둘 이상의 항목을 지정하기 위한 여러 특성 인스턴스를 가질 수 있습니다. 12 | 항목 경로는 절대 또는 상대 경로일 수 있으며, 상대 경로인 경우 RunConfig.RelativePathRoot가 기준입니다. 13 | 14 | 15 | [DeploymentItem("file1.xml")] 16 | [DeploymentItem("file2.xml", "DataFiles")] 17 | [DeploymentItem("bin\Debug")] 18 | 19 | 20 | DeploymentItemAttribute is currently not supported in .Net Core. This is just a placehodler for support in the future. 21 | 22 | 23 | 24 | 25 | 클래스의 새 인스턴스를 초기화합니다. 26 | 27 | 배포할 파일 또는 디렉터리. 경로는 빌드 출력 디렉터리에 대해 상대적입니다. 배포된 테스트 어셈블리와 동일한 디렉터리에 항목이 복사됩니다. 28 | 29 | 30 | 31 | 클래스의 새 인스턴스를 초기화합니다. 32 | 33 | 배포할 파일 또는 디렉터리에 대한 상대 또는 절대 경로. 경로는 빌드 출력 디렉터리에 대해 상대적입니다. 배포된 테스트 어셈블리와 동일한 디렉터리에 항목이 복사됩니다. 34 | 항목을 복사할 디렉터리의 경로. 배포 디렉터리에 대한 절대 경로 또는 상대 경로일 수 있습니다.에 의해 식별되는 모든 파일 및 디렉터리는 이 디렉터리에 복사됩니다. 35 | 36 | 37 | 38 | 복사할 소스 파일 또는 폴더의 경로를 가져옵니다. 39 | 40 | 41 | 42 | 43 | 항목을 복사할 디렉터리의 경로를 가져옵니다. 44 | 45 | 46 | 47 | 48 | TestContext 클래스. 이 클래스는 완전히 추상 클래스여야 하며 멤버를 포함할 49 | 수 없습니다. 어댑터는 멤버를 구현합니다. 프레임워크의 사용자는 50 | 잘 정의된 인터페이스를 통해서만 여기에 액세스할 수 있습니다. 51 | 52 | 53 | 54 | 55 | 테스트에 대한 테스트 속성을 가져옵니다. 56 | 57 | 58 | 59 | 60 | 현재 실행 중인 테스트 메서드를 포함하는 클래스의 정규화된 이름을 가져옵니다 61 | 62 | 63 | This property can be useful in attributes derived from ExpectedExceptionBaseAttribute. 64 | Those attributes have access to the test context, and provide messages that are included 65 | in the test results. Users can benefit from messages that include the fully-qualified 66 | class name in addition to the name of the test method currently being executed. 67 | 68 | 69 | 70 | 71 | 현재 실행 중인 테스트 메서드의 이름을 가져옵니다. 72 | 73 | 74 | 75 | 76 | 현재 테스트 결과를 가져옵니다. 77 | 78 | 79 | 80 | 81 | Used to write trace messages while the test is running 82 | 83 | formatted message string 84 | 85 | 86 | 87 | Used to write trace messages while the test is running 88 | 89 | format string 90 | the arguments 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /Source/ShipManifest/InternalObjects/Settings/CurrSettings.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace ShipManifest.InternalObjects.Settings 4 | { 5 | internal static class CurrSettings 6 | { 7 | // UI Managed Settings 8 | // Realism Tab Feature Options 9 | internal static int RealismMode = 2; 10 | internal static bool RealXfers = true; 11 | internal static bool RealCrewXfers = true; 12 | internal static bool RealControl = true; 13 | internal static bool EnableCrew = true; 14 | internal static bool EnableCrewModify = true; 15 | internal static bool EnableKerbalRename = true; 16 | internal static bool EnableChangeProfession = true; 17 | internal static bool EnableStockCrewXfer = true; 18 | internal static bool OverrideStockCrewXfer = true; 19 | internal static bool EnableClsAllowTransfer = true; 20 | internal static bool EnableCls = true; 21 | internal static bool EnableScience = true; 22 | internal static bool EnableResources = true; 23 | internal static bool EnablePfCrews; 24 | internal static bool EnablePfResources = true; 25 | internal static bool EnableXferCost = true; 26 | internal static double FlowCost = 0.0015; 27 | internal static double FlowRate = 100; 28 | internal static double MinFlowRate; 29 | internal static double MaxFlowRate = 1000; 30 | internal static double Tolerance = 0.000001; 31 | internal static int MaxFlowTimeSec = 180; 32 | internal static bool LockSettings; 33 | 34 | //Highlighting Tab Options 35 | internal static bool EnableHighlighting = true; 36 | internal static bool OnlySourceTarget; 37 | internal static bool EnableClsHighlighting = true; 38 | internal static bool EnableEdgeHighlighting = true; 39 | 40 | // Tooltip Options 41 | internal static bool ShowToolTips = true; 42 | // Tooltip Options 43 | // These options are managed, but assign their values directly to the window property. 44 | // Shown here for clarity 45 | // ManifestToolTips = WindowManifest.ShowToolTips; 46 | // TransferToolTips = WindowTransfer.ShowToolTips; 47 | // SettingsToolTips = WindowSettings.ShowToolTips; 48 | // RosterToolTips = WindowRoster.ShowToolTips; 49 | // ControlToolTips = WindowControl.ShowToolTips; 50 | // HatchToolTips = TabHatch.ShowToolTips; 51 | // PanelToolTips = TabSolarPanel.ShowToolTips; 52 | // AntennaToolTips = TabAntenna.ShowToolTips; 53 | // LightToolTips = TabLight.ShowToolTips; 54 | // RealismToolTips = TabRealism.ShowToolTips; 55 | // ToolTipsToolTips = TabToolTips.ShowToolTips; 56 | // SoundsToolTips = TabSounds.ShowToolTips; 57 | // HighlightToolTips = TabHighlight.ShowToolTips; 58 | // ConfigToolTips = TabConfig.ShowToolTips; 59 | // ModToolTips = TabInstalledMods.ShowToolTips; 60 | // DebuggerToolTips = WindowDebugger.ShowToolTips; 61 | // AppIconToolTips = PopupSmBtnHover.ShowToolTips; 62 | 63 | // Sound Tab Options 64 | // All Default sounds licensing is: CC-By-SA 65 | // Pump motor sound 66 | // http://www.freesound.org/people/vibe_crc/sounds/59328/ 67 | 68 | // Bumping and scraping sounds... 69 | // http://www.freesound.org/people/adcbicycle/sounds/14214/ 70 | 71 | // Minion like kerbal sounds... 72 | // http://www.freesound.org/people/yummie/sounds/ 73 | 74 | internal static string PumpSoundStart = "ShipManifest/Sounds/59328-1"; 75 | internal static string PumpSoundRun = "ShipManifest/Sounds/59328-2"; 76 | internal static string PumpSoundStop = "ShipManifest/Sounds/59328-3"; 77 | internal static double PumpSoundVol = 1; // Range = 0...1 78 | 79 | internal static string CrewSoundStart = "ShipManifest/Sounds/14214-1"; 80 | internal static string CrewSoundRun = "ShipManifest/Sounds/14214-2"; 81 | internal static string CrewSoundStop = "ShipManifest/Sounds/14214-3"; 82 | internal static double CrewSoundVol = 1; // Range = 0...1 83 | 84 | //Config Tab options 85 | internal static bool EnableBlizzyToolbar; 86 | internal static bool EnableSettingsIcon; 87 | internal static bool VerboseLogging; 88 | internal static bool AutoDebug; 89 | internal static bool SaveLogOnExit; 90 | internal static string ErrorLogLength = "1000"; 91 | internal static bool AutoSave; 92 | internal static int SaveIntervalSec = 60; 93 | internal static bool UseUnityStyle = true; 94 | internal static Rect DefaultPosition = new Rect(40,40,0,0); 95 | 96 | 97 | // Options unmanaged by UI. 98 | internal static string ResourcePartColor = "yellow"; 99 | internal static string SourcePartColor = "red"; 100 | internal static string TargetPartColor = "green"; 101 | internal static string TargetPartCrewColor = "blue"; 102 | internal static string ClsSpaceColor = "green"; 103 | internal static string MouseOverColor = "burntorange"; 104 | internal static double CrewXferDelaySec = 7; 105 | internal static int IvaUpdateFrameDelay = 10; 106 | // this is set to 0 to ensure it causes the setuistyles to execute in the first ongui event 107 | internal static float CurrentUIScale = 0; 108 | 109 | 110 | } 111 | } 112 | -------------------------------------------------------------------------------- /Source/ShipManifest/Windows/Tabs/Control/TabHatch.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using ConnectedLivingSpace; 5 | using ShipManifest.InternalObjects; 6 | using ShipManifest.InternalObjects.Settings; 7 | using ShipManifest.Modules; 8 | using UnityEngine; 9 | 10 | namespace ShipManifest.Windows.Tabs.Control 11 | { 12 | internal static class TabHatch 13 | { 14 | 15 | static TabHatch() 16 | { 17 | RefreshUIScale(); 18 | } 19 | 20 | // UIScale settings 21 | internal static float guiToggleWidth; 22 | 23 | //Tooltip vars 24 | internal static string ToolTip = ""; 25 | internal static bool ToolTipActive; 26 | internal static bool ShowToolTips = true; 27 | 28 | //Content vars 29 | internal static GUIContent titleContent = new GUIContent(SmUtils.SmTags["#smloc_control_hatch_000"]); 30 | 31 | 32 | internal static void Display() 33 | { 34 | //float scrollX = WindowControl.Position.x + 20; 35 | //float scrollY = WindowControl.Position.y + 50 - tabBox.y; 36 | float scrollX = 20; 37 | float scrollY = WindowControl._displayViewerPosition.y; 38 | 39 | // Reset Tooltip active flag... 40 | ToolTipActive = false; 41 | SMHighlighter.IsMouseOver = false; 42 | 43 | GUILayout.BeginVertical(); 44 | GUI.enabled = true; 45 | //GUILayout.Label("Hatch Control Center ", SMStyle.LabelTabHeader); 46 | GUILayout.Label(titleContent, SMStyle.LabelTabHeader); 47 | GUILayout.Label(WindowControl.TabRule, SMStyle.LabelStyleHardRule, GUILayout.Height(WindowControl.GuiRuleHeight), GUILayout.Width(WindowControl.GuiRuleWidth + WindowControl.WidthScale)); 48 | string step = "start"; 49 | try 50 | { 51 | // Display all hatches 52 | // ReSharper disable once ForCanBeConvertedToForeach 53 | for (int x = 0; x < SMAddon.SmVessel.Hatches.Count; x++) 54 | { 55 | ModHatch iHatch = SMAddon.SmVessel.Hatches[x]; 56 | bool isEnabled = true; 57 | bool open = false; 58 | 59 | // get hatch state 60 | if (!iHatch.IsDocked) 61 | isEnabled = false; 62 | if (iHatch.HatchOpen) 63 | open = true; 64 | 65 | step = "gui enable"; 66 | GUI.enabled = isEnabled; 67 | bool newOpen = GUILayout.Toggle(open, $"{iHatch.HatchStatus} - {iHatch.Title}", SMStyle.SMSkin.toggle, GUILayout.Width(guiToggleWidth + WindowControl.WidthScale)); 68 | step = "button toggle check"; 69 | if (!open && newOpen) 70 | { 71 | iHatch.OpenHatch(true); 72 | } 73 | else if (open && !newOpen) 74 | { 75 | iHatch.CloseHatch(true); 76 | } 77 | Rect rect = GUILayoutUtility.GetLastRect(); 78 | if (Event.current.type == EventType.Repaint && rect.Contains(Event.current.mousePosition)) 79 | SMHighlighter.SetMouseOverData(rect, scrollY, scrollX, WindowControl.TabBox.height + WindowControl.HeightScale, iHatch.ClsPart.Part, Event.current.mousePosition); 80 | } 81 | // Display MouseOverHighlighting, if any 82 | SMHighlighter.MouseOverHighlight(); 83 | } 84 | catch (Exception ex) 85 | { 86 | SmUtils.LogMessage( 87 | $" in Hatches Tab at step {step}. Error: {ex.Message} \r\n\r\n{ex.StackTrace}", 88 | SmUtils.LogType.Error, true); 89 | } 90 | GUI.enabled = true; 91 | GUILayout.EndVertical(); 92 | } 93 | 94 | internal static void OpenAllHatches() 95 | { 96 | // TODO: for realism, add a closing/opening sound 97 | // ReSharper disable once SuspiciousTypeConversion.Global 98 | List.Enumerator iModules = SMAddon.SmVessel.Hatches.Select(iHatch => (IModuleDockingHatch) iHatch.HatchModule) 99 | .Where(iModule => iModule.IsDocked).ToList().GetEnumerator(); 100 | while (iModules.MoveNext()) 101 | { 102 | if (iModules.Current == null) continue; 103 | iModules.Current.HatchEvents["CloseHatch"].active = true; 104 | iModules.Current.HatchEvents["OpenHatch"].active = false; 105 | iModules.Current.HatchOpen = true; 106 | } 107 | iModules.Dispose(); 108 | SMAddon.FireEventTriggers(); 109 | } 110 | 111 | internal static void CloseAllHatches() 112 | { 113 | // TODO: for realism, add a closing/opening sound 114 | // ReSharper disable once SuspiciousTypeConversion.Global 115 | List.Enumerator iModules = SMAddon.SmVessel.Hatches.Select(iHatch => (IModuleDockingHatch)iHatch.HatchModule) 116 | .Where(iModule => iModule.IsDocked).ToList().GetEnumerator(); 117 | while (iModules.MoveNext()) 118 | { 119 | if (iModules.Current == null) continue; 120 | iModules.Current.HatchEvents["CloseHatch"].active = false; 121 | iModules.Current.HatchEvents["OpenHatch"].active = true; 122 | iModules.Current.HatchOpen = false; 123 | } 124 | iModules.Dispose(); 125 | SMAddon.FireEventTriggers(); 126 | } 127 | 128 | internal static void RefreshUIScale() 129 | { 130 | guiToggleWidth = 325 * CurrSettings.CurrentUIScale; 131 | } 132 | 133 | } 134 | } 135 | -------------------------------------------------------------------------------- /Source/packages/MSTest.TestFramework.2.2.7/lib/netstandard1.0/tr/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions 5 | 6 | 7 | 8 | 9 | Test başına dağıtım için dağıtım öğesi (dosya veya dizin) belirtmek üzere kullanılır. 10 | Test sınıfında veya test metodunda belirtilebilir. 11 | Birden fazla öğe belirtmek için özniteliğin birden fazla örneğini içerebilir. 12 | Öğe yolu mutlak veya göreli olabilir; göreli ise RunConfig.RelativePathRoot ile görelidir. 13 | 14 | 15 | [DeploymentItem("file1.xml")] 16 | [DeploymentItem("file2.xml", "DataFiles")] 17 | [DeploymentItem("bin\Debug")] 18 | 19 | 20 | DeploymentItemAttribute is currently not supported in .Net Core. This is just a placehodler for support in the future. 21 | 22 | 23 | 24 | 25 | sınıfının yeni bir örneğini başlatır. 26 | 27 | Dağıtılacak dosya veya dizin. Yol, derleme çıktı dizinine göredir. Öğe, dağıtılan test bütünleştirilmiş kodlarıyla aynı dizine kopyalanır. 28 | 29 | 30 | 31 | sınıfının yeni bir örneğini başlatır 32 | 33 | Dağıtılacak dosya veya dizinin göreli ya da mutlak yolu. Yol, derleme çıktı dizinine göredir. Öğe, dağıtılan test bütünleştirilmiş kodlarıyla aynı dizine kopyalanır. 34 | Öğelerin kopyalanacağı dizinin yolu. Dağıtım dizinine göre mutlak veya göreli olabilir. Tüm dosyalar ve dizinler şuna göre tanımlanır: bu dizine kopyalanacak. 35 | 36 | 37 | 38 | Kopyalanacak kaynak dosya veya klasörün yolunu alır. 39 | 40 | 41 | 42 | 43 | Öğenin kopyalandığı dizinin yolunu alır. 44 | 45 | 46 | 47 | 48 | TestContext sınıfı. Bu sınıf tamamen soyut olmalı ve herhangi bir üye 49 | içermemelidir. Üyeler bağdaştırıcı tarafından uygulanır. Çerçevedeki kullanıcılar 50 | buna yalnızca iyi tanımlanmış bir arabirim üzerinden erişmelidir. 51 | 52 | 53 | 54 | 55 | Bir testin test özelliklerini alır. 56 | 57 | 58 | 59 | 60 | O anda yürütülen test metodunu içeren sınıfın tam adını alır 61 | 62 | 63 | This property can be useful in attributes derived from ExpectedExceptionBaseAttribute. 64 | Those attributes have access to the test context, and provide messages that are included 65 | in the test results. Users can benefit from messages that include the fully-qualified 66 | class name in addition to the name of the test method currently being executed. 67 | 68 | 69 | 70 | 71 | Yürütülmekte olan test metodunun Adını alır 72 | 73 | 74 | 75 | 76 | Geçerli test sonucunu alır. 77 | 78 | 79 | 80 | 81 | Used to write trace messages while the test is running 82 | 83 | formatted message string 84 | 85 | 86 | 87 | Used to write trace messages while the test is running 88 | 89 | format string 90 | the arguments 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /Source/ShipManifest/InternalObjects/SMSounds.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using ShipManifest.InternalObjects.Settings; 3 | using UnityEngine; 4 | 5 | namespace ShipManifest.InternalObjects 6 | { 7 | // ReSharper disable once InconsistentNaming 8 | internal class SMSound 9 | { 10 | #region Static vars... 11 | // Default sound license: CC-By-SA 12 | // http://www.freesound.org/people/adcbicycle/sounds/14214/ 13 | internal static string AudioSourceCrewPathStart = CurrSettings.CrewSoundStart ?? "ShipManifest/Sounds/14214-1"; 14 | internal static string AudioSourceCrewPathRun = CurrSettings.CrewSoundRun ?? "ShipManifest/Sounds/14214-2"; 15 | internal static string AudioSourceCrewPathStop = CurrSettings.CrewSoundStop ?? "ShipManifest/Sounds/14214-3"; 16 | 17 | // Default sound license: CC-By-SA 18 | // http://www.freesound.org/people/vibe_crc/sounds/59328/ 19 | internal static string SourcePumpPathStart = CurrSettings.PumpSoundStart ?? "ShipManifest/Sounds/59328-1"; 20 | internal static string SourcePumpPathRun = CurrSettings.PumpSoundRun ?? "ShipManifest/Sounds/59328-2"; 21 | internal static string SourcePumpPathStop = CurrSettings.PumpSoundStop ?? "ShipManifest/Sounds/59328-3"; 22 | 23 | // Resource transfer vars 24 | internal static AudioSource SourcePumpStart; 25 | internal static AudioSource SourcePumpRun; 26 | internal static AudioSource SourcePumpStop; 27 | 28 | internal static AudioClip ClipPumpStart; 29 | internal static AudioClip ClipPumpRun; 30 | internal static AudioClip ClipPumpStop; 31 | 32 | // Crew transfer vars 33 | internal static AudioSource SourceCrewStart; 34 | internal static AudioSource SourceCrewRun; 35 | internal static AudioSource SourceCrewStop; 36 | 37 | internal static AudioClip ClipCrewStart; 38 | internal static AudioClip ClipCrewRun; 39 | internal static AudioClip ClipCrewStop; 40 | #endregion Static vars... 41 | 42 | internal static void LoadSounds() 43 | { 44 | try 45 | { 46 | GameObject go = new GameObject("Audio"); 47 | SourceCrewStart = go.AddComponent(); 48 | SourceCrewRun = go.AddComponent(); 49 | SourceCrewStop = go.AddComponent(); 50 | 51 | if (GameDatabase.Instance.ExistsAudioClip(AudioSourceCrewPathStart) && 52 | GameDatabase.Instance.ExistsAudioClip(AudioSourceCrewPathRun) && 53 | GameDatabase.Instance.ExistsAudioClip(AudioSourceCrewPathStop)) 54 | { 55 | ClipCrewStart = GameDatabase.Instance.GetAudioClip(AudioSourceCrewPathStart); 56 | ClipCrewRun = GameDatabase.Instance.GetAudioClip(AudioSourceCrewPathRun); 57 | ClipCrewStop = GameDatabase.Instance.GetAudioClip(AudioSourceCrewPathStop); 58 | 59 | // configure sources 60 | SourceCrewStart.clip = ClipCrewStart; // Start sound 61 | SourceCrewStart.volume = (float)CurrSettings.CrewSoundVol; 62 | SourceCrewStart.pitch = 1f; 63 | 64 | SourceCrewRun.clip = ClipCrewRun; // Run sound 65 | SourceCrewRun.loop = true; 66 | SourceCrewRun.volume = (float)CurrSettings.CrewSoundVol; 67 | SourceCrewRun.pitch = 1f; 68 | 69 | SourceCrewStop.clip = ClipCrewStop; // Stop Sound 70 | SourceCrewStop.volume = (float)CurrSettings.CrewSoundVol; 71 | SourceCrewStop.pitch = 1f; 72 | } 73 | 74 | // Now do Pump sounds 75 | SourcePumpStart = go.AddComponent(); 76 | SourcePumpRun = go.AddComponent(); 77 | SourcePumpStop = go.AddComponent(); 78 | 79 | if (GameDatabase.Instance.ExistsAudioClip(SourcePumpPathStart) && 80 | GameDatabase.Instance.ExistsAudioClip(SourcePumpPathRun) && 81 | GameDatabase.Instance.ExistsAudioClip(SourcePumpPathStop)) 82 | { 83 | ClipPumpStart = GameDatabase.Instance.GetAudioClip(SourcePumpPathStart); 84 | ClipPumpRun = GameDatabase.Instance.GetAudioClip(SourcePumpPathRun); 85 | ClipPumpStop = GameDatabase.Instance.GetAudioClip(SourcePumpPathStop); 86 | 87 | // configure sources 88 | SourcePumpStart.clip = ClipPumpStart; // Start sound 89 | SourcePumpStart.volume = (float)CurrSettings.PumpSoundVol; 90 | SourcePumpStart.pitch = 1f; 91 | 92 | SourcePumpRun.clip = ClipPumpRun; // Run sound 93 | SourcePumpRun.loop = true; 94 | SourcePumpRun.volume = (float)CurrSettings.PumpSoundVol; 95 | SourcePumpRun.pitch = 1f; 96 | 97 | SourcePumpStop.clip = ClipPumpStop; // Stop Sound 98 | SourcePumpStop.volume = (float)CurrSettings.PumpSoundVol; 99 | SourcePumpStop.pitch = 1f; 100 | } 101 | } 102 | catch (Exception ex) 103 | { 104 | SmUtils.LogMessage( 105 | $" in SMAddon.LoadSounds. Error: {ex.Message} \r\n\r\n{ex.StackTrace}", SmUtils.LogType.Error, true); 106 | // ReSharper disable once PossibleIntendedRethrow 107 | throw ex; 108 | } 109 | } 110 | 111 | internal static bool SoundSettingsChanged() 112 | { 113 | return CurrSettings.PumpSoundRun != OrigSettings.PumpSoundRun 114 | || CurrSettings.PumpSoundStart != OrigSettings.PumpSoundStart 115 | || CurrSettings.PumpSoundStop != OrigSettings.PumpSoundStop 116 | || CurrSettings.CrewSoundStart != OrigSettings.CrewSoundStart 117 | || CurrSettings.CrewSoundRun != OrigSettings.CrewSoundRun 118 | || CurrSettings.CrewSoundStop != OrigSettings.CrewSoundStop; 119 | } 120 | } 121 | } 122 | -------------------------------------------------------------------------------- /Source/ShipManifest/Windows/Tabs/Control/TabSolarPanel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using ShipManifest.InternalObjects; 4 | using ShipManifest.InternalObjects.Settings; 5 | using ShipManifest.Modules; 6 | using UnityEngine; 7 | 8 | namespace ShipManifest.Windows.Tabs.Control 9 | { 10 | internal static class TabSolarPanel 11 | { 12 | 13 | static TabSolarPanel() 14 | { 15 | RefreshUIScale(); 16 | } 17 | 18 | // UIScale settings 19 | internal static float guiToggleWidth = 325 * CurrSettings.CurrentUIScale; 20 | internal static float guiToggleHeight = 40 * CurrSettings.CurrentUIScale; 21 | 22 | // TooTip vars 23 | internal static string ToolTip = ""; 24 | internal static bool ToolTipActive; 25 | internal static bool ShowToolTips = true; 26 | 27 | 28 | //Content vars 29 | internal static GUIContent titleContent = new GUIContent(SmUtils.SmTags["#smloc_control_panel_000"]); 30 | internal static GUIContent brokenContent = new GUIContent(SmUtils.SmTags["#smloc_module_004"]); 31 | internal static GUIContent lockedContent = new GUIContent(SmUtils.SmTags["#smloc_module_005"]); 32 | 33 | 34 | internal static void Display() 35 | { 36 | 37 | float scrollX = 10; 38 | float scrollY = WindowControl._displayViewerPosition.y; 39 | 40 | // Reset Tooltip active flag... 41 | ToolTipActive = false; 42 | SMHighlighter.IsMouseOver = false; 43 | 44 | GUILayout.BeginVertical(); 45 | GUI.enabled = true; 46 | GUILayout.Label(titleContent, SMStyle.LabelTabHeader); 47 | GUILayout.Label(WindowControl.TabRule, SMStyle.LabelStyleHardRule, GUILayout.Height(WindowControl.GuiRuleHeight), GUILayout.Width(WindowControl.GuiRuleWidth + WindowControl.WidthScale)); 48 | string step = "start"; 49 | try 50 | { 51 | // Display all hatches 52 | List.Enumerator iPanels = SMAddon.SmVessel.SolarPanels.GetEnumerator(); 53 | while (iPanels.MoveNext()) 54 | { 55 | if (iPanels.Current == null) continue; 56 | bool isEnabled = true; 57 | string label = $"{iPanels.Current.PanelStatus} - {iPanels.Current.Title}"; 58 | if (iPanels.Current.PanelState == ModuleDeployablePart.DeployState.BROKEN) 59 | { 60 | isEnabled = false; 61 | label = $"{iPanels.Current.PanelStatus} - ({brokenContent}) - {iPanels.Current.Title}"; // "Broken" 62 | } 63 | bool open = 64 | !(iPanels.Current.PanelState == ModuleDeployablePart.DeployState.RETRACTED || 65 | iPanels.Current.PanelState == ModuleDeployablePart.DeployState.RETRACTING || 66 | iPanels.Current.PanelState == ModuleDeployablePart.DeployState.BROKEN); 67 | 68 | step = "gui enable"; 69 | GUI.enabled = isEnabled; 70 | if (!iPanels.Current.CanBeRetracted) 71 | { 72 | label = $"{iPanels.Current.PanelStatus} - ({lockedContent}) - {iPanels.Current.Title}"; // "Locked" 73 | } 74 | bool newOpen = GUILayout.Toggle(open, label, SMStyle.SMSkin.toggle, GUILayout.Width(guiToggleWidth + WindowControl.WidthScale), GUILayout.Height(guiToggleHeight)); 75 | Rect rect = GUILayoutUtility.GetLastRect(); 76 | if (Event.current.type == EventType.Repaint && rect.Contains(Event.current.mousePosition)) 77 | SMHighlighter.SetMouseOverData(rect, scrollY, scrollX, WindowControl.TabBox.height + WindowControl.HeightScale, iPanels.Current.SPart, Event.current.mousePosition); 78 | step = "button toggle check"; 79 | if (!open && newOpen) 80 | iPanels.Current.ExtendPanel(); 81 | else if (open && !newOpen) 82 | iPanels.Current.RetractPanel(); 83 | 84 | } 85 | iPanels.Dispose(); 86 | 87 | // Display MouseOverHighlighting, if any 88 | SMHighlighter.MouseOverHighlight(); 89 | } 90 | catch (Exception ex) 91 | { 92 | SmUtils.LogMessage( 93 | $" in Solar Panel Tab at step {step}. Error: {ex.Message} \r\n\r\n{ex.StackTrace}", 94 | SmUtils.LogType.Error, true); 95 | } 96 | GUILayout.EndVertical(); 97 | } 98 | 99 | internal static void ExtendAllPanels() 100 | { 101 | // TODO: for realism, add a closing/opening sound 102 | List.Enumerator iPanels = SMAddon.SmVessel.SolarPanels.GetEnumerator(); 103 | while (iPanels.MoveNext()) 104 | { 105 | if (iPanels.Current == null) continue; 106 | if (((ModuleDeployableSolarPanel)iPanels.Current.PanelModule).deployState != ModuleDeployablePart.DeployState.RETRACTED) continue; 107 | ((ModuleDeployableSolarPanel)iPanels.Current.PanelModule).Extend(); 108 | } 109 | iPanels.Dispose(); 110 | } 111 | 112 | internal static void RetractAllPanels() 113 | { 114 | // TODO: for realism, add a closing/opening sound 115 | List.Enumerator iPanels = SMAddon.SmVessel.SolarPanels.GetEnumerator(); 116 | while (iPanels.MoveNext()) 117 | { 118 | if (iPanels.Current == null) continue; 119 | if (((ModuleDeployableSolarPanel)iPanels.Current.PanelModule).deployState != ModuleDeployablePart.DeployState.EXTENDED) continue; 120 | ((ModuleDeployableSolarPanel)iPanels.Current.PanelModule).Retract(); 121 | } 122 | iPanels.Dispose(); 123 | } 124 | 125 | internal static void RefreshUIScale() 126 | { 127 | guiToggleWidth = 325 * CurrSettings.CurrentUIScale; 128 | guiToggleHeight = 40 * CurrSettings.CurrentUIScale; 129 | } 130 | 131 | } 132 | } 133 | -------------------------------------------------------------------------------- /Source/packages/MSTest.TestFramework.2.2.7/lib/netstandard1.0/cs/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions 5 | 6 | 7 | 8 | 9 | Používá se pro určení položky nasazení (souboru nebo adresáře) za účelem nasazení podle testu. 10 | Lze zadat na testovací třídě nebo testovací metodě. 11 | Může mít více instancí atributu pro zadání více než jedné položky. 12 | Cesta k položce může být absolutní nebo relativní. Pokud je relativní, je relativní ve vztahu k RunConfig.RelativePathRoot. 13 | 14 | 15 | [DeploymentItem("file1.xml")] 16 | [DeploymentItem("file2.xml", "DataFiles")] 17 | [DeploymentItem("bin\Debug")] 18 | 19 | 20 | DeploymentItemAttribute is currently not supported in .Net Core. This is just a placehodler for support in the future. 21 | 22 | 23 | 24 | 25 | Inicializuje novou instanci třídy . 26 | 27 | Soubor nebo adresář, který se má nasadit. Cesta je relativní ve vztahu k adresáři výstupu sestavení. Položka bude zkopírována do adresáře, ve kterém jsou nasazená testovací sestavení. 28 | 29 | 30 | 31 | Inicializuje novou instanci třídy . 32 | 33 | Relativní nebo absolutní cesta k souboru nebo adresáři, který se má nasadit. Cesta je relativní ve vztahu k adresáři výstupu sestavení. Položka bude zkopírována do stejného adresáře jako nasazená testovací sestavení. 34 | Cesta k adresáři, do kterého se mají položky kopírovat. Může být absolutní nebo relativní ve vztahu k adresáři nasazení. Všechny soubory a adresáře určené cestou budou zkopírovány do tohoto adresáře. 35 | 36 | 37 | 38 | Získá cestu ke zdrojovému souboru nebo složce, které se mají kopírovat. 39 | 40 | 41 | 42 | 43 | Získá cestu adresáře, do kterého se položka zkopíruje. 44 | 45 | 46 | 47 | 48 | Třída TestContext. Tato třída by měla být zcela abstraktní a neměla by obsahovat žádné 49 | členy. Členy implementuje adaptér. Uživatelé rozhraní by měli 50 | k této funkci přistupovat jenom prostřednictvím dobře definovaného rozhraní. 51 | 52 | 53 | 54 | 55 | Získá vlastnosti testu. 56 | 57 | 58 | 59 | 60 | Získá plně kvalifikovaný název třídy obsahující aktuálně prováděnou testovací metodu. 61 | 62 | 63 | This property can be useful in attributes derived from ExpectedExceptionBaseAttribute. 64 | Those attributes have access to the test context, and provide messages that are included 65 | in the test results. Users can benefit from messages that include the fully-qualified 66 | class name in addition to the name of the test method currently being executed. 67 | 68 | 69 | 70 | 71 | Získá název aktuálně prováděné testovací metody. 72 | 73 | 74 | 75 | 76 | Získá aktuální výsledek testu. 77 | 78 | 79 | 80 | 81 | Used to write trace messages while the test is running 82 | 83 | formatted message string 84 | 85 | 86 | 87 | Used to write trace messages while the test is running 88 | 89 | format string 90 | the arguments 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /Source/packages/MSTest.TestFramework.2.2.7/lib/netstandard1.0/pt-BR/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions 5 | 6 | 7 | 8 | 9 | Usado para especificar o item de implantação (arquivo ou diretório) para implantação por teste. 10 | Pode ser especificado em classe de teste ou em método de teste. 11 | Pode ter várias instâncias do atributo para especificar mais de um item. 12 | O caminho do item pode ser absoluto ou relativo. Se relativo, é relativo a RunConfig.RelativePathRoot. 13 | 14 | 15 | [DeploymentItem("file1.xml")] 16 | [DeploymentItem("file2.xml", "DataFiles")] 17 | [DeploymentItem("bin\Debug")] 18 | 19 | 20 | DeploymentItemAttribute is currently not supported in .Net Core. This is just a placehodler for support in the future. 21 | 22 | 23 | 24 | 25 | Inicializa uma nova instância da classe . 26 | 27 | O arquivo ou o diretório a ser implantado. O caminho é relativo ao diretório de saída do build. O item será copiado para o mesmo diretório que o dos assemblies de teste implantados. 28 | 29 | 30 | 31 | Inicializa uma nova instância da classe 32 | 33 | O caminho relativo ou absoluto ao arquivo ou ao diretório a ser implantado. O caminho é relativo ao diretório de saída do build. O item será copiado para o mesmo diretório que o dos assemblies de teste implantados. 34 | O caminho do diretório para o qual os itens deverão ser copiados. Ele pode ser absoluto ou relativo ao diretório de implantação. Todos os arquivos e diretórios identificados por serão copiados para esse diretório. 35 | 36 | 37 | 38 | Obtém o caminho da pasta ou do arquivo de origem a ser copiado. 39 | 40 | 41 | 42 | 43 | Obtém o caminho do diretório para o qual o item é copiado. 44 | 45 | 46 | 47 | 48 | Classe TestContext. Essa classe deve ser totalmente abstrata e não conter nenhum 49 | membro. O adaptador implementará os membros. Os usuários na estrutura devem 50 | acessá-la somente por meio de uma interface bem definida. 51 | 52 | 53 | 54 | 55 | Obtém as propriedades de teste para um teste. 56 | 57 | 58 | 59 | 60 | Obtém o Nome totalmente qualificado da classe contendo o método de teste executado no momento 61 | 62 | 63 | This property can be useful in attributes derived from ExpectedExceptionBaseAttribute. 64 | Those attributes have access to the test context, and provide messages that are included 65 | in the test results. Users can benefit from messages that include the fully-qualified 66 | class name in addition to the name of the test method currently being executed. 67 | 68 | 69 | 70 | 71 | Obtém o Nome do método de teste executado no momento 72 | 73 | 74 | 75 | 76 | Obtém o resultado do teste atual. 77 | 78 | 79 | 80 | 81 | Used to write trace messages while the test is running 82 | 83 | formatted message string 84 | 85 | 86 | 87 | Used to write trace messages while the test is running 88 | 89 | format string 90 | the arguments 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /Source/ShipManifest/Windows/Tabs/Control/TabRadiator.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using ShipManifest.InternalObjects; 4 | using ShipManifest.InternalObjects.Settings; 5 | using ShipManifest.Modules; 6 | using UnityEngine; 7 | 8 | namespace ShipManifest.Windows.Tabs.Control 9 | { 10 | internal static class TabRadiator 11 | { 12 | 13 | static TabRadiator() 14 | { 15 | RefreshUIScale(); 16 | } 17 | 18 | // UIScale settings 19 | internal static float guiToggleWidth; 20 | internal static float guiToggleHeight; 21 | 22 | //ToolTip vars 23 | internal static string ToolTip = ""; 24 | internal static bool ToolTipActive; 25 | internal static bool ShowToolTips = true; 26 | 27 | //Content vars 28 | internal static GUIContent titleContent = new GUIContent(SmUtils.SmTags["#smloc_control_radiator_000"]); 29 | internal static GUIContent brokenContent = new GUIContent(SmUtils.SmTags["#smloc_module_004"]); 30 | internal static GUIContent lockedContent = new GUIContent(SmUtils.SmTags["#smloc_module_005"]); 31 | 32 | 33 | internal static void Display() 34 | { 35 | 36 | float scrollX = 10; 37 | float scrollY = WindowControl._displayViewerPosition.y; 38 | 39 | // Reset Tooltip active flag... 40 | ToolTipActive = false; 41 | SMHighlighter.IsMouseOver = false; 42 | 43 | GUILayout.BeginVertical(); 44 | GUI.enabled = true; 45 | //GUILayout.Label("Deployable Radiator Control Center ", SMStyle.LabelTabHeader); 46 | GUILayout.Label(titleContent, SMStyle.LabelTabHeader); 47 | GUILayout.Label(WindowControl.TabRule, SMStyle.LabelStyleHardRule, GUILayout.Height(WindowControl.GuiRuleHeight), GUILayout.Width(WindowControl.GuiRuleWidth + WindowControl.WidthScale)); 48 | string step = "start"; 49 | try 50 | { 51 | // Display all Radiators 52 | List.Enumerator iRadiators = SMAddon.SmVessel.Radiators.GetEnumerator(); 53 | while (iRadiators.MoveNext()) 54 | { 55 | if (iRadiators.Current == null) continue; 56 | bool isEnabled = true; 57 | string label = $"{iRadiators.Current.PanelStatus} - {iRadiators.Current.Title}"; 58 | if (iRadiators.Current.PanelState == ModuleDeployablePart.DeployState.BROKEN) 59 | { 60 | isEnabled = false; 61 | label = $"{iRadiators.Current.PanelStatus} - ({brokenContent}) - {iRadiators.Current.Title}"; // "Broken" 62 | } 63 | bool open = 64 | !(iRadiators.Current.PanelState == ModuleDeployablePart.DeployState.RETRACTED || 65 | iRadiators.Current.PanelState == ModuleDeployablePart.DeployState.RETRACTING || 66 | iRadiators.Current.PanelState == ModuleDeployablePart.DeployState.BROKEN); 67 | 68 | step = "gui enable"; 69 | GUI.enabled = isEnabled; 70 | if (!iRadiators.Current.CanBeRetracted) 71 | { 72 | label = $"{iRadiators.Current.PanelStatus} - ({lockedContent}) - {iRadiators.Current.Title}"; // "Locked" 73 | } 74 | bool newOpen = GUILayout.Toggle(open, label, SMStyle.SMSkin.toggle, GUILayout.Width(guiToggleWidth + WindowControl.WidthScale), GUILayout.Height(guiToggleHeight)); 75 | step = "button toggle check"; 76 | if (!open && newOpen) 77 | iRadiators.Current.ExtendPanel(); 78 | else if (open && !newOpen) 79 | iRadiators.Current.RetractPanel(); 80 | 81 | Rect rect = GUILayoutUtility.GetLastRect(); 82 | if (Event.current.type == EventType.Repaint && rect.Contains(Event.current.mousePosition)) 83 | SMHighlighter.SetMouseOverData(rect, scrollY, scrollX, WindowControl.TabBox.height + WindowControl.HeightScale, iRadiators.Current.SPart, Event.current.mousePosition); 84 | } 85 | iRadiators.Dispose(); 86 | 87 | // Display MouseOverHighlighting, if any 88 | SMHighlighter.MouseOverHighlight(); 89 | } 90 | catch (Exception ex) 91 | { 92 | SmUtils.LogMessage( 93 | $" in Radiators Tab at step {step}. Error: {ex.Message} \r\n\r\n{ex.StackTrace}", 94 | SmUtils.LogType.Error, true); 95 | } 96 | GUILayout.EndVertical(); 97 | } 98 | 99 | internal static void ExtendAllRadiators() 100 | { 101 | // TODO: for realism, add a closing/opening sound 102 | List.Enumerator iRadiators = SMAddon.SmVessel.Radiators.GetEnumerator(); 103 | while (iRadiators.MoveNext()) 104 | { 105 | if (iRadiators.Current == null) continue; 106 | if (((ModuleDeployableRadiator)iRadiators.Current.PanelModule).deployState != ModuleDeployablePart.DeployState.RETRACTED) continue; 107 | ((ModuleDeployableRadiator)iRadiators.Current.PanelModule).Extend(); 108 | } 109 | iRadiators.Dispose(); 110 | } 111 | 112 | internal static void RetractAllRadiators() 113 | { 114 | // TODO: for realism, add a closing/opening sound 115 | List.Enumerator iRadiators = SMAddon.SmVessel.Radiators.GetEnumerator(); 116 | while (iRadiators.MoveNext()) 117 | { 118 | if (iRadiators.Current == null) continue; 119 | if (((ModuleDeployableRadiator)iRadiators.Current.PanelModule).deployState != ModuleDeployablePart.DeployState.EXTENDED) continue; 120 | ((ModuleDeployableRadiator)iRadiators.Current.PanelModule).Retract(); 121 | } 122 | iRadiators.Dispose(); 123 | } 124 | 125 | internal static void RefreshUIScale() 126 | { 127 | guiToggleWidth = 325 * CurrSettings.CurrentUIScale; 128 | guiToggleHeight = 40 * CurrSettings.CurrentUIScale; 129 | } 130 | 131 | } 132 | } 133 | -------------------------------------------------------------------------------- /Source/packages/MSTest.TestFramework.2.2.7/lib/netstandard1.0/fr/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions 5 | 6 | 7 | 8 | 9 | Permet de spécifier l'élément de déploiement (fichier ou répertoire) pour un déploiement par test. 10 | Peut être spécifié sur une classe de test ou une méthode de test. 11 | Peut avoir plusieurs instances de l'attribut pour spécifier plusieurs éléments. 12 | Le chemin de l'élément peut être absolu ou relatif. S'il est relatif, il l'est par rapport à RunConfig.RelativePathRoot. 13 | 14 | 15 | [DeploymentItem("file1.xml")] 16 | [DeploymentItem("file2.xml", "DataFiles")] 17 | [DeploymentItem("bin\Debug")] 18 | 19 | 20 | DeploymentItemAttribute is currently not supported in .Net Core. This is just a placehodler for support in the future. 21 | 22 | 23 | 24 | 25 | Initialise une nouvelle instance de la classe . 26 | 27 | Fichier ou répertoire à déployer. Le chemin est relatif au répertoire de sortie de build. L'élément est copié dans le même répertoire que les assemblys de tests déployés. 28 | 29 | 30 | 31 | Initialise une nouvelle instance de la classe 32 | 33 | Chemin relatif ou absolu du fichier ou du répertoire à déployer. Le chemin est relatif au répertoire de sortie de build. L'élément est copié dans le même répertoire que les assemblys de tests déployés. 34 | Chemin du répertoire dans lequel les éléments doivent être copiés. Il peut être absolu ou relatif au répertoire de déploiement. Tous les fichiers et répertoires identifiés par vont être copiés dans ce répertoire. 35 | 36 | 37 | 38 | Obtient le chemin du fichier ou dossier source à copier. 39 | 40 | 41 | 42 | 43 | Obtient le chemin du répertoire dans lequel l'élément est copié. 44 | 45 | 46 | 47 | 48 | Classe TestContext. Cette classe doit être complètement abstraite, et ne doit contenir aucun 49 | membre. L'adaptateur va implémenter les membres. Les utilisateurs du framework ne doivent 50 | y accéder que via une interface bien définie. 51 | 52 | 53 | 54 | 55 | Obtient les propriétés de test d'un test. 56 | 57 | 58 | 59 | 60 | Obtient le nom complet de la classe contenant la méthode de test en cours d'exécution 61 | 62 | 63 | This property can be useful in attributes derived from ExpectedExceptionBaseAttribute. 64 | Those attributes have access to the test context, and provide messages that are included 65 | in the test results. Users can benefit from messages that include the fully-qualified 66 | class name in addition to the name of the test method currently being executed. 67 | 68 | 69 | 70 | 71 | Obtient le nom de la méthode de test en cours d'exécution 72 | 73 | 74 | 75 | 76 | Obtient le résultat de test actuel. 77 | 78 | 79 | 80 | 81 | Used to write trace messages while the test is running 82 | 83 | formatted message string 84 | 85 | 86 | 87 | Used to write trace messages while the test is running 88 | 89 | format string 90 | the arguments 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /Source/packages/MSTest.TestFramework.2.2.7/lib/netstandard1.0/pl/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions 5 | 6 | 7 | 8 | 9 | Służy do określenia elementu wdrożenia (pliku lub katalogu) dla wdrożenia testowego. 10 | Może być określony w klasie testowej lub metodzie testowej. 11 | Może mieć wiele wystąpień atrybutu w celu określenia więcej niż jednego elementu. 12 | Ścieżka elementu może być bezwzględna lub względna. Jeśli jest względna, jest określana względem elementu RunConfig.RelativePathRoot. 13 | 14 | 15 | [DeploymentItem("file1.xml")] 16 | [DeploymentItem("file2.xml", "DataFiles")] 17 | [DeploymentItem("bin\Debug")] 18 | 19 | 20 | DeploymentItemAttribute is currently not supported in .Net Core. This is just a placehodler for support in the future. 21 | 22 | 23 | 24 | 25 | Inicjuje nowe wystąpienie klasy . 26 | 27 | Plik lub katalog do wdrożenia. Ścieżka jest określana względem katalogu wyjściowego kompilacji. Element zostanie skopiowany do tego samego katalogu co wdrożone zestawy testowe. 28 | 29 | 30 | 31 | Inicjuje nowe wystąpienie klasy 32 | 33 | Względna lub bezwzględna ścieżka do pliku lub katalogu do wdrożenia. Ścieżka jest określana względem katalogu wyjściowego kompilacji. Element zostanie skopiowany do tego samego katalogu co wdrożone zestawy testowe. 34 | Ścieżka katalogu, do którego mają być kopiowane elementy. Może być bezwzględna lub określana względem katalogu wdrażania. Wszystkie pliki i katalogi określone przez zostaną skopiowane do tego katalogu. 35 | 36 | 37 | 38 | Pobiera ścieżkę źródłowego pliku lub folderu do skopiowania. 39 | 40 | 41 | 42 | 43 | Pobiera ścieżkę katalogu, do którego element jest kopiowany. 44 | 45 | 46 | 47 | 48 | Klasa TestContext. Ta klasa powinna być w pełni abstrakcyjna i nie może zawierać żadnych 49 | elementów członkowskich. Adapter zaimplementuje elementy członkowskie. Użytkownicy platformy powinni 50 | uzyskiwać dostęp do tego elementu tylko za pośrednictwem prawidłowo zdefiniowanego interfejsu. 51 | 52 | 53 | 54 | 55 | Pobiera właściwości testu. 56 | 57 | 58 | 59 | 60 | Pobiera w pełni kwalifikowaną nazwę klasy zawierającej aktualnie wykonywaną metodę testową 61 | 62 | 63 | This property can be useful in attributes derived from ExpectedExceptionBaseAttribute. 64 | Those attributes have access to the test context, and provide messages that are included 65 | in the test results. Users can benefit from messages that include the fully-qualified 66 | class name in addition to the name of the test method currently being executed. 67 | 68 | 69 | 70 | 71 | Pobiera nazwę aktualnie wykonywanej metody testowej 72 | 73 | 74 | 75 | 76 | Pobiera wynik bieżącego testu. 77 | 78 | 79 | 80 | 81 | Used to write trace messages while the test is running 82 | 83 | formatted message string 84 | 85 | 86 | 87 | Used to write trace messages while the test is running 88 | 89 | format string 90 | the arguments 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /Source/packages/MSTest.TestFramework.2.2.7/lib/netstandard1.0/ru/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions 5 | 6 | 7 | 8 | 9 | Используется для указания элемента развертывания (файл или каталог) для развертывания каждого теста. 10 | Может указываться для тестового класса или метода теста. 11 | Чтобы указать несколько элементов, можно использовать несколько экземпляров атрибута. 12 | Путь к элементу может быть абсолютным или относительным, в последнем случае он указывается по отношению к RunConfig.RelativePathRoot. 13 | 14 | 15 | [DeploymentItem("file1.xml")] 16 | [DeploymentItem("file2.xml", "DataFiles")] 17 | [DeploymentItem("bin\Debug")] 18 | 19 | 20 | DeploymentItemAttribute is currently not supported in .Net Core. This is just a placehodler for support in the future. 21 | 22 | 23 | 24 | 25 | Инициализирует новый экземпляр класса . 26 | 27 | Файл или каталог для развертывания. Этот путь задается относительно выходного каталога сборки. Элемент будет скопирован в тот же каталог, что и развернутые сборки теста. 28 | 29 | 30 | 31 | Инициализирует новый экземпляр класса 32 | 33 | Относительный или абсолютный путь к файлу или каталогу для развертывания. Этот путь задается относительно выходного каталога сборки. Элемент будет скопирован в тот же каталог, что и развернутые сборки теста. 34 | Путь к каталогу, в который должны быть скопированы элементы. Он может быть абсолютным или относительным (по отношению к каталогу развертывания). Все файлы и каталоги, обозначенные при помощи будет скопировано в этот каталог. 35 | 36 | 37 | 38 | Получает путь к копируемым исходному файлу или папке. 39 | 40 | 41 | 42 | 43 | Получает путь к каталогу, в который копируется элемент. 44 | 45 | 46 | 47 | 48 | Класс TestContext. Этот класс должен быть полностью абстрактным и не должен содержать ни одного элемента. 49 | Элементы будут реализованы в адаптере. Пользователи платформы должны обращаться к этому классу 50 | только при помощи четко определенного интерфейса. 51 | 52 | 53 | 54 | 55 | Получает свойства теста. 56 | 57 | 58 | 59 | 60 | Получает полное имя класса, содержащего метод теста, который выполняется в данный момент 61 | 62 | 63 | This property can be useful in attributes derived from ExpectedExceptionBaseAttribute. 64 | Those attributes have access to the test context, and provide messages that are included 65 | in the test results. Users can benefit from messages that include the fully-qualified 66 | class name in addition to the name of the test method currently being executed. 67 | 68 | 69 | 70 | 71 | Получает имя метода теста, выполняемого в данный момент 72 | 73 | 74 | 75 | 76 | Получает текущий результат теста. 77 | 78 | 79 | 80 | 81 | Used to write trace messages while the test is running 82 | 83 | formatted message string 84 | 85 | 86 | 87 | Used to write trace messages while the test is running 88 | 89 | format string 90 | the arguments 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /Source/packages/MSTest.TestFramework.2.2.7/lib/uap10.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions 5 | 6 | 7 | 8 | 9 | 用于为预测试部署指定部署项(文件或目录)。 10 | 可在测试类或测试方法上指定。 11 | 可使用多个特性实例来指定多个项。 12 | 项路径可以是绝对路径或相对路径,如果为相对路径,则相对于 RunConfig.RelativePathRoot。 13 | 14 | 15 | [DeploymentItem("file1.xml")] 16 | [DeploymentItem("file2.xml", "DataFiles")] 17 | [DeploymentItem("bin\Debug")] 18 | 19 | 20 | Putting this in here so that UWP discovery works. We still do not want users to be using DeploymentItem in the UWP world - Hence making it internal. 21 | We should separate out DeploymentItem logic in the adapter via a Framework extensiblity point. 22 | Filed https://github.com/Microsoft/testfx/issues/100 to track this. 23 | 24 | 25 | 26 | 27 | 初始化 类的新实例。 28 | 29 | 要部署的文件或目录。路径与生成输出目录相关。将项复制到与已部署测试程序集相同的目录。 30 | 31 | 32 | 33 | 初始化 类的新实例 34 | 35 | 要部署的文件或目录的相对路径或绝对路径。该路径相对于生成输出目录。将项复制到与已部署测试程序集相同的目录。 36 | 要将项复制到其中的目录路径。它可以是绝对部署目录或相对部署目录。所有由以下对象标识的文件和目录: 将复制到此目录。 37 | 38 | 39 | 40 | 获取要复制的源文件或文件夹的路径。 41 | 42 | 43 | 44 | 45 | 获取将项复制到其中的目录路径。 46 | 47 | 48 | 49 | 50 | 在 Windows 应用商店应用的 UI 线程中执行测试代码。 51 | 52 | 53 | 54 | 55 | 在 UI 线程上执行测试方法。 56 | 57 | 58 | 测试方法。 59 | 60 | 61 | 一系列实例。 62 | 63 | Throws when run on an async test method. 64 | 65 | 66 | 67 | 68 | TestContext 类。此类应完全抽象,且不包含任何 69 | 成员。适配器将实现成员。框架中的用户应 70 | 仅通过定义完善的接口对此进行访问。 71 | 72 | 73 | 74 | 75 | 获取测试的测试属性。 76 | 77 | 78 | 79 | 80 | 获取包含当前正在执行的测试方法的类的完全限定名称 81 | 82 | 83 | This property can be useful in attributes derived from ExpectedExceptionBaseAttribute. 84 | Those attributes have access to the test context, and provide messages that are included 85 | in the test results. Users can benefit from messages that include the fully-qualified 86 | class name in addition to the name of the test method currently being executed. 87 | 88 | 89 | 90 | 91 | 获取当前正在执行的测试方法的名称 92 | 93 | 94 | 95 | 96 | 获取当前测试结果。 97 | 98 | 99 | 100 | 101 | Used to write trace messages while the test is running 102 | 103 | formatted message string 104 | 105 | 106 | 107 | Used to write trace messages while the test is running 108 | 109 | format string 110 | the arguments 111 | 112 | 113 | 114 | -------------------------------------------------------------------------------- /Source/packages/MSTest.TestFramework.2.2.7/lib/netstandard1.0/it/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions 5 | 6 | 7 | 8 | 9 | Usato per specificare l'elemento di distribuzione (file o directory) per la distribuzione per singolo test. 10 | Può essere specificato in classi o metodi di test. 11 | Può contenere più istanze dell'attributo per specificare più di un elemento. 12 | Il percorso dell'elemento può essere assoluto o relativo; se è relativo, è relativo rispetto a RunConfig.RelativePathRoot. 13 | 14 | 15 | [DeploymentItem("file1.xml")] 16 | [DeploymentItem("file2.xml", "DataFiles")] 17 | [DeploymentItem("bin\Debug")] 18 | 19 | 20 | DeploymentItemAttribute is currently not supported in .Net Core. This is just a placehodler for support in the future. 21 | 22 | 23 | 24 | 25 | Inizializza una nuova istanza della classe . 26 | 27 | File o directory per la distribuzione. Il percorso è relativo alla directory di output della compilazione. L'elemento verrà copiato nella stessa directory degli assembly di test distribuiti. 28 | 29 | 30 | 31 | Inizializza una nuova istanza della classe 32 | 33 | Percorso relativo o assoluto del file o della directory per la distribuzione. Il percorso è relativo alla directory di output della compilazione. L'elemento verrà copiato nella stessa directory degli assembly di test distribuiti. 34 | Percorso della directory in cui vengono copiati gli elementi. Può essere assoluto o relativo rispetto alla directory di distribuzione. Tutte le directory e tutti i file identificati da verranno copiati in questa directory. 35 | 36 | 37 | 38 | Ottiene il percorso della cartella o del file di origine da copiare. 39 | 40 | 41 | 42 | 43 | Ottiene il percorso della directory in cui viene copiato l'elemento. 44 | 45 | 46 | 47 | 48 | Classe TestContext. Questa classe deve essere completamente astratta e non deve 49 | contenere membri. I membri verranno implementati dall'adattatore. Gli utenti del framework devono 50 | accedere a questa classe solo tramite un'interfaccia correttamente definita. 51 | 52 | 53 | 54 | 55 | Ottiene le proprietà di un test. 56 | 57 | 58 | 59 | 60 | Ottiene il nome completo della classe contenente il metodo di test attualmente in esecuzione 61 | 62 | 63 | This property can be useful in attributes derived from ExpectedExceptionBaseAttribute. 64 | Those attributes have access to the test context, and provide messages that are included 65 | in the test results. Users can benefit from messages that include the fully-qualified 66 | class name in addition to the name of the test method currently being executed. 67 | 68 | 69 | 70 | 71 | Ottiene il nome del metodo di test attualmente in esecuzione 72 | 73 | 74 | 75 | 76 | Ottiene il risultato del test corrente. 77 | 78 | 79 | 80 | 81 | Used to write trace messages while the test is running 82 | 83 | formatted message string 84 | 85 | 86 | 87 | Used to write trace messages while the test is running 88 | 89 | format string 90 | the arguments 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /Source/packages/MSTest.TestFramework.2.2.7/lib/netstandard1.0/es/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions 5 | 6 | 7 | 8 | 9 | Se usa para especificar el elemento (archivo o directorio) para la implementación por prueba. 10 | Puede especificarse en la clase de prueba o en el método de prueba. 11 | Puede tener varias instancias del atributo para especificar más de un elemento. 12 | La ruta de acceso del elemento puede ser absoluta o relativa. Si es relativa, lo es respecto a RunConfig.RelativePathRoot. 13 | 14 | 15 | [DeploymentItem("file1.xml")] 16 | [DeploymentItem("file2.xml", "DataFiles")] 17 | [DeploymentItem("bin\Debug")] 18 | 19 | 20 | DeploymentItemAttribute is currently not supported in .Net Core. This is just a placehodler for support in the future. 21 | 22 | 23 | 24 | 25 | Inicializa una nueva instancia de la clase . 26 | 27 | Archivo o directorio para implementar. La ruta de acceso es relativa al directorio de salida de compilación. El elemento se copiará en el mismo directorio que los ensamblados de prueba implementados. 28 | 29 | 30 | 31 | Inicializa una nueva instancia de la clase . 32 | 33 | Ruta de acceso relativa o absoluta al archivo o directorio para implementar. La ruta de acceso es relativa al directorio de salida de compilación. El elemento se copiará en el mismo directorio que los ensamblados de prueba implementados. 34 | Ruta de acceso del directorio en el que se van a copiar los elementos. Puede ser absoluta o relativa respecto al directorio de implementación. Todos los archivos y directorios que identifica se copiarán en este directorio. 35 | 36 | 37 | 38 | Obtiene la ruta de acceso al archivo o carpeta de origen que se debe copiar. 39 | 40 | 41 | 42 | 43 | Obtiene la ruta de acceso al directorio donde se copia el elemento. 44 | 45 | 46 | 47 | 48 | Clase TestContext. Esta clase debe ser totalmente abstracta y no contener ningún 49 | miembro. El adaptador implementará los miembros. Los usuarios del marco solo deben 50 | tener acceso a esta clase a través de una interfaz bien definida. 51 | 52 | 53 | 54 | 55 | Obtiene las propiedades de una prueba. 56 | 57 | 58 | 59 | 60 | Obtiene el nombre completo de la clase que contiene el método de prueba que se está ejecutando. 61 | 62 | 63 | This property can be useful in attributes derived from ExpectedExceptionBaseAttribute. 64 | Those attributes have access to the test context, and provide messages that are included 65 | in the test results. Users can benefit from messages that include the fully-qualified 66 | class name in addition to the name of the test method currently being executed. 67 | 68 | 69 | 70 | 71 | Obtiene el nombre del método de prueba que se está ejecutando. 72 | 73 | 74 | 75 | 76 | Obtiene el resultado de la prueba actual. 77 | 78 | 79 | 80 | 81 | Used to write trace messages while the test is running 82 | 83 | formatted message string 84 | 85 | 86 | 87 | Used to write trace messages while the test is running 88 | 89 | format string 90 | the arguments 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /Source/packages/MSTest.TestFramework.2.2.7/lib/netstandard1.0/de/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions 5 | 6 | 7 | 8 | 9 | Wird zum Angeben des Bereitstellungselements (Datei oder Verzeichnis) für eine Bereitstellung pro Test verwendet. 10 | Kann für eine Testklasse oder Testmethode angegeben werden. 11 | Kann mehrere Instanzen des Attributs besitzen, um mehrere Elemente anzugeben. 12 | Der Elementpfad kann absolut oder relativ sein. Wenn er relativ ist, dann relativ zu "RunConfig.RelativePathRoot". 13 | 14 | 15 | [DeploymentItem("file1.xml")] 16 | [DeploymentItem("file2.xml", "DataFiles")] 17 | [DeploymentItem("bin\Debug")] 18 | 19 | 20 | DeploymentItemAttribute is currently not supported in .Net Core. This is just a placehodler for support in the future. 21 | 22 | 23 | 24 | 25 | Initialisiert eine neue Instanz der -Klasse. 26 | 27 | Die bereitzustellende Datei oder das Verzeichnis. Der Pfad ist relativ zum Buildausgabeverzeichnis. Das Element wird in das gleiche Verzeichnis wie die bereitgestellten Testassemblys kopiert. 28 | 29 | 30 | 31 | Initialisiert eine neue Instanz der -Klasse. 32 | 33 | Der relative oder absolute Pfad zur bereitzustellenden Datei oder zum Verzeichnis. Der Pfad ist relativ zum Buildausgabeverzeichnis. Das Element wird in das gleiche Verzeichnis wie die bereitgestellten Testassemblys kopiert. 34 | Der Pfad des Verzeichnisses, in das die Elemente kopiert werden sollen. Er kann absolut oder relativ zum Bereitstellungsverzeichnis sein. Alle Dateien und Verzeichnisse, die identifiziert werden durch werden in dieses Verzeichnis kopiert. 35 | 36 | 37 | 38 | Ruft den Pfad der Quelldatei oder des -ordners ab, die bzw. der kopiert werden soll. 39 | 40 | 41 | 42 | 43 | Ruft den Pfad des Verzeichnisses ab, in das das Element kopiert werden soll. 44 | 45 | 46 | 47 | 48 | Die TestContext-Klasse. Diese Klasse muss vollständig abstrakt sein und keine 49 | Member enthalten. Der Adapter implementiert die Member. Benutzer im Framework sollten 50 | darauf nur über eine klar definierte Schnittstelle zugreifen. 51 | 52 | 53 | 54 | 55 | Ruft Testeigenschaften für einen Test ab. 56 | 57 | 58 | 59 | 60 | Ruft den vollqualifizierten Namen der Klasse ab, die die Testmethode enthält, die zurzeit ausgeführt wird. 61 | 62 | 63 | This property can be useful in attributes derived from ExpectedExceptionBaseAttribute. 64 | Those attributes have access to the test context, and provide messages that are included 65 | in the test results. Users can benefit from messages that include the fully-qualified 66 | class name in addition to the name of the test method currently being executed. 67 | 68 | 69 | 70 | 71 | Ruft den Namen der zurzeit ausgeführten Testmethode ab. 72 | 73 | 74 | 75 | 76 | Ruft das aktuelle Testergebnis ab. 77 | 78 | 79 | 80 | 81 | Used to write trace messages while the test is running 82 | 83 | formatted message string 84 | 85 | 86 | 87 | Used to write trace messages while the test is running 88 | 89 | format string 90 | the arguments 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /Source/packages/MSTest.TestFramework.2.2.7/lib/uap10.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions 5 | 6 | 7 | 8 | 9 | 用來指定每個測試部署的部署項目 (檔案或目錄)。 10 | 可以指定於測試類別或測試方法。 11 | 可以有屬性的多個執行個體來指定多個項目。 12 | 項目路徑可以是相對或絕對路徑,如果是相對路徑,則是 RunConfig.RelativePathRoot 的相對路徑。 13 | 14 | 15 | [DeploymentItem("file1.xml")] 16 | [DeploymentItem("file2.xml", "DataFiles")] 17 | [DeploymentItem("bin\Debug")] 18 | 19 | 20 | Putting this in here so that UWP discovery works. We still do not want users to be using DeploymentItem in the UWP world - Hence making it internal. 21 | We should separate out DeploymentItem logic in the adapter via a Framework extensiblity point. 22 | Filed https://github.com/Microsoft/testfx/issues/100 to track this. 23 | 24 | 25 | 26 | 27 | 初始化 類別的新執行個體。 28 | 29 | 要部署的檔案或目錄。路徑是建置輸出目錄的相對路徑。項目將會複製到與已部署的測試組件相同的目錄。 30 | 31 | 32 | 33 | 初始化 類別的新執行個體 34 | 35 | 要部署之檔案或目錄的相對或絕對路徑。路徑是建置輸出目錄的相對路徑。項目將會複製到與已部署的測試組件相同的目錄。 36 | 要將項目複製到其中之目錄的路徑。它可以是部署目錄的絕對或相對路徑。下者所識別的所有檔案和目錄: 將會複製到這個目錄中。 37 | 38 | 39 | 40 | 取得要複製之來源檔案或資料夾的路徑。 41 | 42 | 43 | 44 | 45 | 取得要將項目複製到其中之目錄的路徑。 46 | 47 | 48 | 49 | 50 | 在 Windows 市集應用程式的 UI 執行緒執行測試程式碼。 51 | 52 | 53 | 54 | 55 | 在 UI 執行緒執行測試方法。 56 | 57 | 58 | 測試方法。 59 | 60 | 61 | 下列項目的陣列: 執行個體。 62 | 63 | Throws when run on an async test method. 64 | 65 | 66 | 67 | 68 | TestContext 類別。這個類別應該是完全抽象的,而且未包含任何 69 | 成員。配接器將會實作成員。架構中的使用者只 70 | 應透過妥善定義的介面來存取這個項目。 71 | 72 | 73 | 74 | 75 | 取得測試的測試屬性。 76 | 77 | 78 | 79 | 80 | 取得包含目前正在執行之測試方法的類別完整名稱 81 | 82 | 83 | This property can be useful in attributes derived from ExpectedExceptionBaseAttribute. 84 | Those attributes have access to the test context, and provide messages that are included 85 | in the test results. Users can benefit from messages that include the fully-qualified 86 | class name in addition to the name of the test method currently being executed. 87 | 88 | 89 | 90 | 91 | 取得目前正在執行的測試方法名稱 92 | 93 | 94 | 95 | 96 | 取得目前測試結果。 97 | 98 | 99 | 100 | 101 | Used to write trace messages while the test is running 102 | 103 | formatted message string 104 | 105 | 106 | 107 | Used to write trace messages while the test is running 108 | 109 | format string 110 | the arguments 111 | 112 | 113 | 114 | -------------------------------------------------------------------------------- /Source/packages/MSTest.TestFramework.2.2.7/lib/uap10.0/ja/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions 5 | 6 | 7 | 8 | 9 | テスト配置ごとに配置項目 (ファイルまたはディレクトリ) を指定するために使用されます。 10 | テスト クラスまたはテスト メソッドで指定できます。 11 | 属性に複数のインスタンスを指定して、2 つ以上の項目を指定することができます。 12 | 項目のパスには絶対パスまたは相対パスを指定できます。相対パスの場合は、RunConfig.RelativePathRoot からの相対パスです。 13 | 14 | 15 | [DeploymentItem("file1.xml")] 16 | [DeploymentItem("file2.xml", "DataFiles")] 17 | [DeploymentItem("bin\Debug")] 18 | 19 | 20 | Putting this in here so that UWP discovery works. We still do not want users to be using DeploymentItem in the UWP world - Hence making it internal. 21 | We should separate out DeploymentItem logic in the adapter via a Framework extensiblity point. 22 | Filed https://github.com/Microsoft/testfx/issues/100 to track this. 23 | 24 | 25 | 26 | 27 | クラスの新しいインスタンスを初期化します。 28 | 29 | 配置するファイルまたはディレクトリ。パスはビルドの出力ディレクトリの相対パスです。項目は配置されたテスト アセンブリと同じディレクトリにコピーされます。 30 | 31 | 32 | 33 | クラスの新しいインスタンスを初期化する 34 | 35 | 配置するファイルまたはディレクトリへの相対パスまたは絶対パス。パスはビルドの出力ディレクトリの相対パスです。項目は配置されたテスト アセンブリと同じディレクトリにコピーされます。 36 | アイテムのコピー先のディレクトリのパス。配置ディレクトリへの絶対パスまたは相対パスのいずれかを指定できます。次で識別されるすべてのファイルとディレクトリは このディレクトリにコピーされます。 37 | 38 | 39 | 40 | コピーするソース ファイルまたはフォルダーのパスを取得します。 41 | 42 | 43 | 44 | 45 | 項目のコピー先のディレクトリのパスを取得します。 46 | 47 | 48 | 49 | 50 | Windows ストア アプリの UI スレッドでテスト コードを実行します。 51 | 52 | 53 | 54 | 55 | UI スレッドで対象テスト メソッドを実行します。 56 | 57 | 58 | テスト メソッド。 59 | 60 | 61 | 次の配列 インスタンス。 62 | 63 | Throws when run on an async test method. 64 | 65 | 66 | 67 | 68 | TestContext クラス。このクラスは完全に抽象的でなければならず、かつメンバー 69 | を含んでいてはなりません。アダプターはメンバーを実装します。フレームワーク内のユーザーは 70 | 正しく定義されたインターフェイスを介してのみこのクラスにアクセスする必要があります。 71 | 72 | 73 | 74 | 75 | テストのテスト プロパティを取得します。 76 | 77 | 78 | 79 | 80 | 現在実行中のテスト メソッドを含むクラスの完全修飾名を取得する 81 | 82 | 83 | This property can be useful in attributes derived from ExpectedExceptionBaseAttribute. 84 | Those attributes have access to the test context, and provide messages that are included 85 | in the test results. Users can benefit from messages that include the fully-qualified 86 | class name in addition to the name of the test method currently being executed. 87 | 88 | 89 | 90 | 91 | 現在実行中のテスト メソッドの名前を取得する 92 | 93 | 94 | 95 | 96 | 現在のテスト成果を取得します。 97 | 98 | 99 | 100 | 101 | Used to write trace messages while the test is running 102 | 103 | formatted message string 104 | 105 | 106 | 107 | Used to write trace messages while the test is running 108 | 109 | format string 110 | the arguments 111 | 112 | 113 | 114 | -------------------------------------------------------------------------------- /Source/packages/MSTest.TestFramework.2.2.7/lib/uap10.0/ko/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions 5 | 6 | 7 | 8 | 9 | 테스트 배포별 배포 항목(파일 또는 디렉터리)을 지정하는 데 사용됩니다. 10 | 테스트 클래스 또는 테스트 메서드에서 지정할 수 있습니다. 11 | 둘 이상의 항목을 지정하기 위한 여러 특성 인스턴스를 가질 수 있습니다. 12 | 항목 경로는 절대 또는 상대 경로일 수 있으며, 상대 경로인 경우 RunConfig.RelativePathRoot가 기준입니다. 13 | 14 | 15 | [DeploymentItem("file1.xml")] 16 | [DeploymentItem("file2.xml", "DataFiles")] 17 | [DeploymentItem("bin\Debug")] 18 | 19 | 20 | Putting this in here so that UWP discovery works. We still do not want users to be using DeploymentItem in the UWP world - Hence making it internal. 21 | We should separate out DeploymentItem logic in the adapter via a Framework extensiblity point. 22 | Filed https://github.com/Microsoft/testfx/issues/100 to track this. 23 | 24 | 25 | 26 | 27 | 클래스의 새 인스턴스를 초기화합니다. 28 | 29 | 배포할 파일 또는 디렉터리. 경로는 빌드 출력 디렉터리에 대해 상대적입니다. 배포된 테스트 어셈블리와 동일한 디렉터리에 항목이 복사됩니다. 30 | 31 | 32 | 33 | 클래스의 새 인스턴스를 초기화합니다. 34 | 35 | 배포할 파일 또는 디렉터리에 대한 상대 또는 절대 경로. 경로는 빌드 출력 디렉터리에 대해 상대적입니다. 배포된 테스트 어셈블리와 동일한 디렉터리에 항목이 복사됩니다. 36 | 항목을 복사할 디렉터리의 경로. 배포 디렉터리에 대한 절대 경로 또는 상대 경로일 수 있습니다.에 의해 식별되는 모든 파일 및 디렉터리는 이 디렉터리에 복사됩니다. 37 | 38 | 39 | 40 | 복사할 소스 파일 또는 폴더의 경로를 가져옵니다. 41 | 42 | 43 | 44 | 45 | 항목을 복사할 디렉터리의 경로를 가져옵니다. 46 | 47 | 48 | 49 | 50 | Windows 스토어 앱에 대한 UI 스레드에서 테스트 코드를 실행합니다. 51 | 52 | 53 | 54 | 55 | UI 스레드에서 테스트 메서드를 실행합니다. 56 | 57 | 58 | 테스트 메서드입니다. 59 | 60 | 61 | 배열 인스턴스. 62 | 63 | Throws when run on an async test method. 64 | 65 | 66 | 67 | 68 | TestContext 클래스. 이 클래스는 완전히 추상 클래스여야 하며 멤버를 포함할 69 | 수 없습니다. 어댑터는 멤버를 구현합니다. 프레임워크의 사용자는 70 | 잘 정의된 인터페이스를 통해서만 여기에 액세스할 수 있습니다. 71 | 72 | 73 | 74 | 75 | 테스트에 대한 테스트 속성을 가져옵니다. 76 | 77 | 78 | 79 | 80 | 현재 실행 중인 테스트 메서드를 포함하는 클래스의 정규화된 이름을 가져옵니다 81 | 82 | 83 | This property can be useful in attributes derived from ExpectedExceptionBaseAttribute. 84 | Those attributes have access to the test context, and provide messages that are included 85 | in the test results. Users can benefit from messages that include the fully-qualified 86 | class name in addition to the name of the test method currently being executed. 87 | 88 | 89 | 90 | 91 | 현재 실행 중인 테스트 메서드의 이름을 가져옵니다. 92 | 93 | 94 | 95 | 96 | 현재 테스트 결과를 가져옵니다. 97 | 98 | 99 | 100 | 101 | Used to write trace messages while the test is running 102 | 103 | formatted message string 104 | 105 | 106 | 107 | Used to write trace messages while the test is running 108 | 109 | format string 110 | the arguments 111 | 112 | 113 | 114 | --------------------------------------------------------------------------------