├── 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 |
--------------------------------------------------------------------------------