From 37cfd04b41d5e2b733731840c3afb3abd2b9da7b Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 30 Jun 2022 00:15:05 -0500 Subject: [PATCH 01/84] Update FieldTrainingLabModule.cs --- source/FieldTrainingLabModule.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/FieldTrainingLabModule.cs b/source/FieldTrainingLabModule.cs index 872c837..60158bd 100644 --- a/source/FieldTrainingLabModule.cs +++ b/source/FieldTrainingLabModule.cs @@ -66,7 +66,7 @@ public class FieldTrainingLab : PartModule [KSPField] public float TimeFactor = 426 * 6 * 60 * 60; // 1Year = 426day, 1day = 6hour, 1hour = 60minutes, 1min = 60sec - [KSPField(isPersistant = true, guiActive = true, guiName = "Training Lab Status", groupName = "TrainingLab", groupDisplayName = "Training Lab v" + Version.Text, groupStartCollapsed = true)] + [KSPField(isPersistant = true, guiActive = true, guiName = "Training Lab Status", groupName = "TrainingLab", groupDisplayName = "Training Lab v" + Version.SText, groupStartCollapsed = true)] public bool TrainingStatus = false; [KSPField(guiActive = false, guiName = "Science Point", groupName = "TrainingLab", groupDisplayName = "Field Training Lab", groupStartCollapsed = true)] From 886e8a7abac69f2b357128ae750dbf61fc79f369 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 20:05:40 -0600 Subject: [PATCH 02/84] Update FieldTrainingLab.version --- FieldTrainingLab.version | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FieldTrainingLab.version b/FieldTrainingLab.version index f741336..0079ba7 100644 --- a/FieldTrainingLab.version +++ b/FieldTrainingLab.version @@ -13,14 +13,14 @@ { "MAJOR" : 1, "MINOR" : 2, - "PATCH" : 1, + "PATCH" : 2, "BUILD" : 0 }, "KSP_VERSION" : { "MAJOR" : 1, "MINOR" : 12, - "PATCH" : 3 + "PATCH" : 4 }, "KSP_VERSION_MIN" : { From e0997dba498c30181e474e775095daa310b07860 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 20:05:45 -0600 Subject: [PATCH 03/84] Update code.json --- json/code.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/code.json b/json/code.json index dc2068d..a120af9 100644 --- a/json/code.json +++ b/json/code.json @@ -2,7 +2,7 @@ "schemaVersion": 1, "label": "Code", "labelColor": "66ccff", - "message": "|none|", + "message": "<.NET 4.7.2> ", "color": "darkblue", "style": "plastic" } From 762b2cd18cf0f057ea79bb1c7e9de2e93b555c2e Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 20:05:47 -0600 Subject: [PATCH 04/84] Update ksp.json --- json/ksp.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/ksp.json b/json/ksp.json index bfb79be..1f17473 100644 --- a/json/ksp.json +++ b/json/ksp.json @@ -2,7 +2,7 @@ "schemaVersion": 1, "label": "KSP", "labelColor": "black", - "message": "1.12.3", + "message": "1.12.4", "color": "66ccff", "style": "plastic" } From bc4914c2ef775fbba9014608459284eca7beac41 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 20:05:48 -0600 Subject: [PATCH 05/84] Update mod.json --- json/mod.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/mod.json b/json/mod.json index 93279a0..6d7d6b5 100644 --- a/json/mod.json +++ b/json/mod.json @@ -2,7 +2,7 @@ "schemaVersion": 1, "label": "Field Training Lab", "labelColor": "BADA55", - "message": "1.2.1.0", + "message": "1.2.2.0", "color": "darkgreen", "style": "plastic" } From 64d2b753e3a230213d3c9d275bd1e3984b3a4c4b Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:32 -0600 Subject: [PATCH 06/84] Update changelog.md --- changelog.md | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/changelog.md b/changelog.md index 6135b12..d7a0ddb 100644 --- a/changelog.md +++ b/changelog.md @@ -2,7 +2,7 @@ | modName | Field Training Lab (FTL) | | ---------- | ----------------------------------------------------------------- | -| license | GPLv3 | +| license | GPL-3.0 | | author | Efour and zer0Kerbal | | forum | (https://forum.kerbalspaceprogram.com/index.php?/topic/188841-*/) | | github | (https://github.com/zer0Kerbal/zer0Kerbal/FieldTrainingLab) | @@ -10,6 +10,55 @@ | spacedock | (https://spacedock.info/mod/971) | | ckan | FieldTrainingLab | +## Version 1.2.2.0-release `` edition + +* Released + * 11 Jan 2023 + * Release for Kerbal Space Program 1.12.4 + * by [zer0Kerbal](https://github.com/zer0Kerbal) + +### Summary 1.2.3.0 + +* Recompiled for 1.12.4 with .NET 4.7.2 using C# 7.0 + +### Changes 1.2.3.0 + +#### Code 1.2.3.0 + +* Recompile for + * KSP 1.12.2 + * .Net 4.7.2 + * C# 7.0 + * v1.2.1.14 --> 1.2.2.15 + +#### Localization 1.2.3.0 + +* Code is localized. + * 1.0.2.0 + * v1.0.1.0 + * add tags + +#### Compatability 1.2.3.0 + +* Add + * v1.0.0.0 + * v1.0.0.0 + * v1.0.0.0 +* Update + * v1.3.0.0 +* courtesy of [Gordon Dry](https://forum.kerbalspaceprogram.com/index.php?/profile/163177*/) + +#### Config 1.2.3.0 + +* lint and update patches +* add tags to parts + +#### Status 1.2.3.0 + +* Issues + +--- + ## Version 1.2.1.0-release - `` edition * 28 Jun 2022 From b19493811bc9258048b183791b5c8734e26816cb Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:33 -0600 Subject: [PATCH 07/84] Create FieldTraining-flag.png --- FieldTraining-flag.png | Bin 0 -> 13114 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 FieldTraining-flag.png diff --git a/FieldTraining-flag.png b/FieldTraining-flag.png new file mode 100644 index 0000000000000000000000000000000000000000..55d74b08b3e6574fb6ea6ea7513696696bdf2e7b GIT binary patch literal 13114 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 EUp(zuPyhe` literal 0 HcmV?d00001 From b151bc0642ac7ab01b4cd17d70317dc1a2769a41 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:34 -0600 Subject: [PATCH 08/84] Delete 1.2.1.0.htm --- GameData/FieldTrainingLab/1.2.1.0.htm | 212 -------------------------- 1 file changed, 212 deletions(-) delete mode 100644 GameData/FieldTrainingLab/1.2.1.0.htm diff --git a/GameData/FieldTrainingLab/1.2.1.0.htm b/GameData/FieldTrainingLab/1.2.1.0.htm deleted file mode 100644 index 519ea3d..0000000 --- a/GameData/FieldTrainingLab/1.2.1.0.htm +++ /dev/null @@ -1,212 +0,0 @@ - - -

Field Training Lab Version
-KSP version
- Pages

-

Version -1.2.1.0-release - <Clean Blackboards> edition

-
    -
  • 28 Jun 2022
  • -
  • Release for Kerbal Space Program [KSP 1.12.x]
  • -
-

-DO A CLEAN INSTALL:
DELETE EXISTING INSTALLATION THEN RE-INSTALL

Download from CurseForge

- -

Changes

-

License

-
    -
  • Update to GPLv3 -
      -
    • was Expat/MIT
    • -
  • -
  • closes #32 - Update License to GPLv3
  • -
-

docs/

-
    -
  • Add -
      -
    • [Attribution.md] v1.0.6.0
    • -
    • [ManualInstallation.md] v1.1.7.0
    • -
    • [404-petunia.md]
    • -
    • [LegalMumboJumbo.md] v1.0.5.0
    • -
    • [Localizations.md] v1.1.3.1
    • -
    • [Notices.md] v1.0.0.0
    • -
    • [Why-not.md]
    • -
    • [_config.yml]
    • -
  • -
  • closes #2 - Needs a wiki
  • -
  • closes #35 - add docs/
  • -
-

Convert Changelog

-
    -
  • Convert from .cfg to md
  • -
  • Add missing information for earlier releases
  • -
  • closes #33 - Convert Changelog
  • -
-

Code

-
    -
  • Recompile for KSP 1.12.3
  • -
  • Using .NET 4.6.1 -
      -
    • remove -
        -
      • [InstallChecker.cs]
      • -
      • [AssemblyVersion.tt]
      • -
      • [Log.cs]
      • -
    • -
    • update [Version.tt]]
    • -
  • -
-

Compatibility

-
    -
  • Rename -
      -
    • Patches to Compatibility
    • -
  • -
  • Update -
      -
    • licenses
    • -
    • [Kerbalism.cfg] v1.0.1.0 -
        -
      • fixes #34 - [Bug 🐞]: Kerbalism.cfg
      • -
    • -
  • -
-

Add

-
    -
  • Agent
  • -
  • Flag -
      -
    • 512x320
    • -
    • 64x40 truecolor_scaled
    • -
  • -
-

Localization

-
    -
  • Add -
      -
    • [readme.md] v2.1.2.0
    • -
    • [quickstart.md] v1.0.1.1
    • -
  • -
  • updates #14 - English <us-en.cfg>
  • -
  • updates #13 - Localization - Master
  • -
  • updates #31 - Code Localization
  • -
  • updates #22 - Simplified Chinese (简体中文) <zh-cn.cfg>
  • -
-

Status

-
    -
  • Issues -
      -
    • closes #9 - Field Training Lab (FTL) 1.2.1.0-release -<EDITION>
    • -
    • closes #10 - 1.2.1.0 Verify Legal Mumbo Jumbo
    • -
    • closes #11 - 1.2.1.0 Update Documentation
    • -
    • closes #12 - 1.2.1.0 Update Social Media
    • -
  • -
  • Closes Duplicate Issues -
      -
    • #1 - Localization
    • -
    • #4 - -Localization
    • -
    • #5 - Localization - en-us.cfg (English)
    • -
    • #6 - Localization - pt-br.cfg Brazil
    • -
    • #7 - Localization - zh-cn.cfg - Simplified Chinese
    • -
    • #8 - Update Field Training Laboratory (FTL)
    • -
  • -
-
-

See More

-
    -
  • Changelog Summary for more details of changes : See ChangeLog
  • -
  • Discussions and news on this mod : See Discussions or KSP Forums
  • -
  • Known Issues for more details of feature requests and known issues : -See Known Issues
  • -
  • GitHub Pages : See Pages
  • -
-

Localization

-
-
    -
  • English English
  • -
  • your translation here
  • -
-

HELP WANTED - See the README in the Localization folder or the -Quickstart Guide for instructions for adding or -improving translations. GitHub push is the best way to contribute. -Additions and corrections welcome!

-
-
-

red box below is a link to forum post on how to get support

- -

How to get support

-

Be Kind: Lithobrake, not jakebrake! Keep your Module Manager up to date

-
- -
-

How to -support this and other great mods by zer0Kerbal

-

Support Patreon Github Sponsor Buy zer0Kerbal a snack

- - - - - - - - - From 23f4997122ea5df70aa4469eca881eb475de4f01 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:35 -0600 Subject: [PATCH 09/84] Update Agents.cfg --- GameData/FieldTrainingLab/Agencies/Agents.cfg | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/GameData/FieldTrainingLab/Agencies/Agents.cfg b/GameData/FieldTrainingLab/Agencies/Agents.cfg index abb67e2..63ffd52 100644 --- a/GameData/FieldTrainingLab/Agencies/Agents.cfg +++ b/GameData/FieldTrainingLab/Agencies/Agents.cfg @@ -1,12 +1,21 @@ +// Agents.cfg v1.1.0.0 +// Field Training Lab (FTL) +// created: 28 Jun 2022 +// updated: 10 Jan 2023 + +// this file: GPL-3.0 by zer0Kerbal + AGENT { - name = FieldTrainingLab + name = FieldTrainingLab title = #FTL-Agency-titl description = #FTL-Agency-desc - - logoURL = FieldTrainingLab/Flags/FieldTraining-flag - logoScaledURL = FieldTrainingLab/Agencies/FieldTraining-flag_scaled - - mentality = Pioneer - mentality = Commercial + + logoURL = FieldTrainingLab/Flags/FieldTraining-flag + logoScaledURL = FieldTrainingLab/Agencies/FieldTraining-flag_scaled + + mentality = Patient 0.3 + mentality = Pioneer 0.25 + mentality = Scientific 0.25 + Standings = FieldTrainingFacility, 0.25 } \ No newline at end of file From b862e639b998100464561b8a1a52e2f9f956145c Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:36 -0600 Subject: [PATCH 10/84] Update FieldTraining-flag_scaled.truecolor --- .../FieldTraining-flag_scaled.truecolor | Bin 1036 -> 1880 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/GameData/FieldTrainingLab/Agencies/FieldTraining-flag_scaled.truecolor b/GameData/FieldTrainingLab/Agencies/FieldTraining-flag_scaled.truecolor index 58e3c4e28aa11a041ef40b14181fbe88d33ab57e..08b36bac6ee5e4eb3c8c5d1ed052ac1adad977da 100644 GIT binary patch literal 1880 zcmeH{F=!M)6oy}N9@&cowmA~JA-EC)3MZUkH!uG0`Rv zQ^|EHR=6TY(;2kTuqjfCO_o&AC6LDA6oj=9PT!lk#lUKjN{b9E-@X66nfGSy&6G+v z*+T&6Gy7o#$?=0MKo6piexG14j6H*2$+ZiAnr4_hB~u=ODjml;SqH~`2u z!=m4TaZC;5ui1{vTPm(8YBaQgOW`kBmKYCzs2}Sej$rT#)D#H;}b*GUk)3 z0rs2Pk8r#gpqOu3ekUql#XK?uu$^j+89~Qg2OvK@+9^j^Pw-iY=m@~t6hi6!S&QnD z8&v`Cn2~=igrxYBE=b_53YwFw60s eS{9naNXoOYta&gTF@I=#e|w*euya3gB>V-i2%Zc8 literal 1036 zcmV+n1oQieP)_x9Ke6~Wh!e-tY!D=y>oYKZ_dqo*EZYQurW<$t=4F(uv?OqVk}TG*2px1IVp`v zqCz=DLqw&(`eN;a5te2$W^RIFfx$iuMzZ(j?!OPu&C~6id%frLo(B%+p8xazo##2f z^Ss>4bpXOFE>327(E_vpEkFy<0<-`vKnu_Uv;ZwY3y3LMUVAs1n*y00dyIb}%zwZh zv&0Jyn-7`jSu6#tt%1(%_8NJ!8Q$Ayk7<1s-U-`dcC|wIS$oVUZBQMuA>gH_p)zQ% zk+n}kRjEB@Wd+n#*<&h0(6~DJe3w)8E8J*9Kt&1oJkYWx$$8{}P$A@HL1|%UTYAYby52Z!P3t0a=crxO@PuTvRXM zzwIwCfD||QJDtZ7>s2@kj)|I2FYYe1MGg zB68jOhzuYIj|!!vwMq~X?r6v)7@bnl`qyOX3idr zWu~qorG>FMF^gbJJ-A(JevFQ*SaE*hMdqn$b)LQp6O-z5dGY;Ma)8Mx_;jb`xHAHshv9`*xOM}weXzPRej|?+ z!O$?Y?}ZKRaO*Y{J{teaM|!G~dV3Jw{t&iys0A=sptdZl63mDE0NnTk!rNizei;4> z%1h$+t7#SZz0f-V4Vz%!5f~YRnsRfl0J1y}xpWGtuQ7&4>RjZ+-uOehX%%we1hS&o zh%J5?`S!4y>sHK`*O2eKkzBtKE6GKEIF7vDWX+>oV3EZd;9H2K&9lB)me)GI#Dh2;)^*v7?Zv^=vHQl|E+o@qug?#r zBi@IMYX|zDA^mGm3(x|z04+cZ&;qmoEkFy<0 Date: Wed, 11 Jan 2023 21:03:37 -0600 Subject: [PATCH 11/84] Delete Attributions.htm --- GameData/FieldTrainingLab/Attributions.htm | 68 ---------------------- 1 file changed, 68 deletions(-) delete mode 100644 GameData/FieldTrainingLab/Attributions.htm diff --git a/GameData/FieldTrainingLab/Attributions.htm b/GameData/FieldTrainingLab/Attributions.htm deleted file mode 100644 index 2217c3d..0000000 --- a/GameData/FieldTrainingLab/Attributions.htm +++ /dev/null @@ -1,68 +0,0 @@ - - - - -

-

Field Training Lab (FTL)

-

Home

-

Attribution

-

Credits

- - -

Flag(s)

- - -

Agency

- - -

Special Thanks

- - -

Translations

-
    -
  • English English
  • -
  • 中文 Simplified Chinese (中文)
  • thank you [@JFYoung01](https://github.com/JFYoung01) -
  • Additions and corrections welcome!
  • -
- -

Art Asset(s)

- -
-

Testing and Support

- - - - - - - From 7ecd77a49c609080ce69a0bf84322fc92c05a516 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:38 -0600 Subject: [PATCH 12/84] Delete changelog.md --- GameData/FieldTrainingLab/changelog.md | 283 ------------------------- 1 file changed, 283 deletions(-) delete mode 100644 GameData/FieldTrainingLab/changelog.md diff --git a/GameData/FieldTrainingLab/changelog.md b/GameData/FieldTrainingLab/changelog.md deleted file mode 100644 index 307a9fe..0000000 --- a/GameData/FieldTrainingLab/changelog.md +++ /dev/null @@ -1,283 +0,0 @@ -# Changelog - -| modName | Field Training Lab (FTL) | -| ---------- | ----------------------------------------------------------------- | -| license | GPLv3 | -| author | Efour and zer0Kerbal | -| forum | (https://forum.kerbalspaceprogram.com/index.php?/topic/188841-*/) | -| github | (https://github.com/zer0Kerbal/zer0Kerbal/FieldTrainingLab) | -| curseforge | (https://www.curseforge.com/kerbal/ksp-mods/FieldTrainingLab) | -| spacedock | (https://spacedock.info/mod/971) | -| ckan | FieldTrainingLab | - -## Version 1.2.1.0-release - `` edition - -* 28 Jun 2022 -* For Kerbal Space Program [1.12.x] - -### License - -* Update to GPLv3 - * was Expat/MIT -* closes #32 - Update License to GPLv3 - -### docs/ - -* Add - * [Attribution.md] v1.0.6.0 - * [ManualInstallation.md] v1.1.7.0 - * [404-petunia.md] - * [LegalMumboJumbo.md] v1.0.5.0 - * [Localizations.md] v1.1.3.1 - * [Notices.md] v1.0.0.0 - * [Why-not.md] - * [_config.yml] -* closes #2 - Needs a wiki -* closes #35 - add docs/ - -### Convert Changelog - -* Convert from .cfg to md -* Add missing information for earlier releases -* closes #33 - Convert Changelog - -### Code - -* Recompile for KSP 1.12.3 -* Using .NET 4.6.1 - * remove - * [InstallChecker.cs] - * [AssemblyVersion.tt] - * [Log.cs] - * update [Version.tt]] - -### Compatibility - -* Rename - * Patches to Compatibility -* Update - * licenses - * [Kerbalism.cfg] v1.0.1.0 - * fixes #34 - [Bug 🐞]: Kerbalism.cfg - -### Add - -* Agent -* Flag - * 512x320 - * 64x40 truecolor_scaled - -### Localization - -* Add - * [readme.md] v2.1.2.0 - * [quickstart.md] v1.0.1.1 -* updates #14 - English -* updates #13 - Localization - Master -* updates #31 - Code Localization -* updates #22 - Simplified Chinese (简体中文) - -### Status - -* Issues - * closes #9 - Field Training Lab (FTL) 1.2.1.0-release `` - * closes #10 - 1.2.1.0 Verify Legal Mumbo Jumbo - * closes #11 - 1.2.1.0 Update Documentation - * closes #12 - 1.2.1.0 Update Social Media -* Closes Duplicate Issues - * #1 - Localization - * #4 - :sparkles: **Localization** :sparkles: - * #5 - Localization - en-us.cfg (English) - * #6 - Localization - pt-br.cfg Brazil - * #7 - Localization - zh-cn.cfg - Simplified Chinese - * #8 - Update Field Training Laboratory (FTL) - ---- - -## Version 1.2.0.0 - `` - -* 05 Apr 2020 -* KSP 1.9.1 -* .NET 4.8 - -### Code - -* update - * Editor GetInfo() to be more informative - * include assembly version in PAW -* Add - * game settings page - * ***disabled for now*** - * game settings page - * global setting to enable/disable PAW color - * option to globally enable/disable - * option: use science and ratio - * option: use reputation and ratio - * option: use funds and ratio - ---- - -## Version = 1.1.0.0 - `` - -* KSP 1.8.1 with .NET 4.8 - -* isn't that enough? :D -* started adding in JoyntMail :D - ---- - -## Version = 1.0.3.5 - ` Plugins/Textures/ - -### Deployment and Backend - -* Update - * [Changelog.cfg] - * to include new Kerbal Changelog features - * [_deploy] - * [_buildRelease] - * [.gitattributes] - * [].gitignore] - * [*Readme.md] - * automated Readme.md -> Readme.htm - * Readme.htm now included in release - * Releases.layout.md -* [CONTRIBUTING.md] now included in repository -* [FieldTrainingLab.version] to be avc compliant -* Added - * avc github checker and badge -* Added - * json's - ---- - -## Verison 1.0.3.4.1 - `` edition - -* released Oct 1, 2019 -* for KSP 1.7.x -* removed SimpleLogistics.dll that stowed away. - ---- - -## Version 1.0.3.4 - -### Adoption by zer0Kerbal - -### Code - -* Added - * PAW grouping (really needed for these mods) - * a blurb in the editor getInfo{} - * [InstallChecker.cs] - -### Compatibility - -* Updated - * [FieldTrainingLab.cfg] - * now patches all parts with moduleScienceLab - * changed the [TrainingLab] to be [FieldTrainingLab] - * patches reflect this -* Removed - * other patch - ---- - -## Version 1.0.3.3 - -=--- original ---= - -* for Kerbal Space Program 1.6.1 -* Released on 2018-12-21 - -* EFour's last release -* Recompiled 1.6.0 - ---- - -## Version 1.0.3.2 - -* for Kerbal Space Program 1.5.1 -* Released on 2018-10-30 - -* Recompiled for 1.5.1 - ---- - -## Version 1.0.3.1 - -* for Kerbal Space Program 1.3.1 -* Released on 2017-11-27 - -* Recompiled KSP 1.3.1 - ---- - -## Version 1.0.3 - -* for Kerbal Space Program 1.2.2 -* Released on 2016-11-03 - -* Recompiled to 1.2.1 - ---- - -## Version 1.0.2.1 - -* for Kerbal Space Program 1.2 -* Released on 2016-10-22 - -* KPBS support - ---- - -## Version 1.0.2 - -* for Kerbal Space Program 1.2 -* Released on 2016-10-16 - -* Calculating Dead and respawned kerbalnaut - ---- - -## Version 1.0.1.0 - -* for Kerbal Space Program 1.2 -* Released on 2016-10-12 - -* Co-Work with Field Training Facility Mod - ---- - -## Version 1.0.0.0 - -* for Kerbal Space Program 1.2 -* Released on 2016-10-08 - -* No changelog provided - ---- - -## Version 1.0.0.0 - -* for Kerbal Space Program 1.1.3 -* Released on 2016-10-07 - -* No changelog provided - ---- From d921489495279c026dfd82d4ad74178f9484e29f Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:40 -0600 Subject: [PATCH 13/84] Create Bluedog.cfg --- .../Compatibility/Bluedog.cfg | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 GameData/FieldTrainingLab/Compatibility/Bluedog.cfg diff --git a/GameData/FieldTrainingLab/Compatibility/Bluedog.cfg b/GameData/FieldTrainingLab/Compatibility/Bluedog.cfg new file mode 100644 index 0000000..5e83a75 --- /dev/null +++ b/GameData/FieldTrainingLab/Compatibility/Bluedog.cfg @@ -0,0 +1,59 @@ +// Bluedog.cfg v1.0.0.0 +// Field Training Lab (FTL) +// created: 10 Jan 2023 +// updated: + +// This file: GPL-3.0 by zer0Kerbal + +// courtesy of [Gordon Dry](https://forum.kerbalspaceprogram.com/index.php?/profile/163177*/) +// add parts' compatibility + +// Bluedog DB MOL Orbital Habitation Segment +@PART[bluedog_MOL_Hab]:HAS[!MODULE[TrainingLabModule]]:NEEDS[Bluedog_DB,FieldTrainingLab]:AFTER[FieldTrainingLab] +{ + tmp00 = \n<#6495ED> + tmp01 = #FTL-Agency-titl + tmp02 = + tmp03 = #FTL-tags + @description = #$description$$tmp00$$tmp01$$tmp02$ + // @description ^= :(.)$:$0\n<#6495ED>Field Training Lab. : + @tags = #$tags$ $tmp03$ + !tmp01 = DELETE + !tmp02 = DELETE + !tmp03 = DELETE + !tmp04 = DELETE + + MODULE + { + name = TrainingLabModule + TimeFactor = 9201600 + TrainFactor = 20 + inSpace = 0.5 + Landed = 0.25 + } +} + +// Bluedog DB Skylab +@PART[bluedog_Skylab_OWS]:HAS[!MODULE[TrainingLabModule]]:NEEDS[Bluedog_DB,FieldTrainingLab]:AFTER[FieldTrainingLab] +{ + tmp00 = \n<#6495ED> + tmp01 = #FTL-Agency-titl + tmp02 = + tmp03 = #FTL-tags + @description = #$description$$tmp00$$tmp01$$tmp02$ + // @description ^= :(.)$:$0\n<#6495ED>Field Training Lab. : + @tags = #$tags$ $tmp03$ + !tmp01 = DELETE + !tmp02 = DELETE + !tmp03 = DELETE + !tmp04 = DELETE + + MODULE + { + name = TrainingLabModule + TimeFactor = 9201600 + TrainFactor = 20 + inSpace = 0.5 + Landed = 0.25 + } +} \ No newline at end of file From 96b7befe3663b3d53cf31a716981b06244f10ed3 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:41 -0600 Subject: [PATCH 14/84] Update FieldTrainingLab.cfg --- .../Compatibility/FieldTrainingLab.cfg | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/GameData/FieldTrainingLab/Compatibility/FieldTrainingLab.cfg b/GameData/FieldTrainingLab/Compatibility/FieldTrainingLab.cfg index 9aacae4..91e4b00 100644 --- a/GameData/FieldTrainingLab/Compatibility/FieldTrainingLab.cfg +++ b/GameData/FieldTrainingLab/Compatibility/FieldTrainingLab.cfg @@ -1,15 +1,25 @@ -// FieldTrainingLab.cfg v1.0.0.0 -// Field Training Lab -// created: 21 Sep 19 -// updated: +// FieldTrainingLab.cfg v1.1.3.0 +// Field Training Lab (FTL) +// created: 21 Sep 2019 +// updated: 10 Jan 2023 -// This file: GPLv3 by zer0Kerbal +// This file: GPL-3.0 by zer0Kerbal -@PART[*]:HAS[@MODULE[ModuleScienceLab]]:NEEDS[FieldTrainingLab]:FOR[FieldTrainingLab] +@PART[*]:HAS[@MODULE[ModuleScienceLab]]:NEEDS[FieldFieldTrainingLab]:FOR[FieldFieldTrainingLab] { - @description ^= :(.)$:$0\n<#6495ED>Field Training Lab. : + tmp00 = \n<#6495ED> + tmp01 = #FTL-Agency-titl + tmp02 = + tmp03 = #FTL-tags + @description = #$description$$tmp00$$tmp01$$tmp02$ + // @description ^= :(.)$:$0\n<#6495ED>Field Training Lab. : + @tags = #$tags$ $tmp03$ + !tmp01 = DELETE + !tmp02 = DELETE + !tmp03 = DELETE + !tmp04 = DELETE - %MODULE[FieldTrainingLab] + %MODULE[FieldFieldTrainingLab] { // Science Cost = TrainingFactor * exp needed * conditions(inSpace, Landed on other planet) // example : landed on minmus, level 4->5 : 20 * 32 * 0.25 = 160 From fa322d13c31d69a84e8cdecdc504c7e621c402aa Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:42 -0600 Subject: [PATCH 15/84] Update Kerbalism.cfg --- .../Compatibility/Kerbalism.cfg | 49 ++++++++++++++++--- 1 file changed, 43 insertions(+), 6 deletions(-) diff --git a/GameData/FieldTrainingLab/Compatibility/Kerbalism.cfg b/GameData/FieldTrainingLab/Compatibility/Kerbalism.cfg index 53a01f9..241c007 100644 --- a/GameData/FieldTrainingLab/Compatibility/Kerbalism.cfg +++ b/GameData/FieldTrainingLab/Compatibility/Kerbalism.cfg @@ -1,15 +1,26 @@ -// Kerbalism.cfg v1.0.1.0 +// Kerbalism.cfg v1.2.0.0 // Field Training Lab (FTL) // created: 05 May 2021 -// updated: 25 Jun 2022 +// updated: 10 Jan 2023 -// This file: GPLv3 by zer0Kerbal +// This file: GPL-3.0 by zer0Kerbal +// opensomersault -@PART[*]:HAS[@MODULE[ModuleScienceLab]]:NEEDS[FeatureScience,FieldTrainingLab]:AFTER[KerbalismDefault] +@PART[*]:HAS[@MODULE[ModuleScienceLab|Laboratory]]:NEEDS[FeatureScience,FieldFieldTrainingLab]:AFTER[KerbalismDefault] { - @description:NEEDS[FieldTrainingLab] ^= :(.)$:$0\n<#6495ED>Field Training Lab. : + tmp00 = \n<#6495ED> + tmp01 = #FTL-Agency-titl + tmp02 = + tmp03 = #FTL-tags + @description = #$description$$tmp00$$tmp01$$tmp02$ + // @description ^= :(.)$:$0\n<#6495ED>Field Training Lab. : + @tags = #$tags$ $tmp03$ + !tmp01 = DELETE + !tmp02 = DELETE + !tmp03 = DELETE + !tmp04 = DELETE - %MODULE[FieldTrainingLab] + %MODULE[FieldFieldTrainingLab] { // Science Cost = TrainingFactor * exp needed * conditions(inSpace, Landed on other planet) // example : landed on minmus, level 4->5 : 20 * 32 * 0.25 = 160 @@ -18,4 +29,30 @@ inSpace = 0.5 Landed = 0.25 } +} + +// courtesy of [Gordon Dry](https://forum.kerbalspaceprogram.com/index.php?/profile/163177*/) +// add parts' compatibility + +@PART[kerbalism-gravityring]:HAS[!MODULE[TrainingLabModule]]:NEEDS[Kerbalism,ProfileDefault,FieldTrainingLab]:AFTER[FieldTrainingLab] +{ + tmp00 = \n<#6495ED> + tmp01 = #FTL-Agency-titl + tmp02 = + tmp03 = #FTL-tags + @description = #$description$$tmp00$$tmp01$$tmp02$ + // @description ^= :(.)$:$0\n<#6495ED>Field Training Lab. : + @tags = #$tags$ $tmp03$ + !tmp01 = DELETE + !tmp02 = DELETE + !tmp03 = DELETE + !tmp04 = DELETE + MODULE + { + name = TrainingLabModule + TimeFactor = 9201600 + TrainFactor = 20 + inSpace = 0.5 + Landed = 0.25 + } } \ No newline at end of file From 938c75596675045b8ca3ee17fd1fe79183d51c18 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:43 -0600 Subject: [PATCH 16/84] Create StationPartsExpansionRedux.cfg --- .../StationPartsExpansionRedux.cfg | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 GameData/FieldTrainingLab/Compatibility/StationPartsExpansionRedux.cfg diff --git a/GameData/FieldTrainingLab/Compatibility/StationPartsExpansionRedux.cfg b/GameData/FieldTrainingLab/Compatibility/StationPartsExpansionRedux.cfg new file mode 100644 index 0000000..b0a559d --- /dev/null +++ b/GameData/FieldTrainingLab/Compatibility/StationPartsExpansionRedux.cfg @@ -0,0 +1,33 @@ +// StationPartsExpansionRedux.cfg v1.0.0.0 +// Field Training Lab (FTL) +// created: 10 Jan 2023 +// updated: + +// This file: GPL-3.0 by zer0Kerbal + +// courtesy of [Gordon Dry](https://forum.kerbalspaceprogram.com/index.php?/profile/163177*/) +// add parts' compatibility + +@PART[sspx-expandable-centrifuge-375-2]:HAS[!MODULE[TrainingLabModule]]:NEEDS[StationPartsExpansionRedux,FieldFieldTrainingLab]:AFTER[FieldFieldTrainingLab] +{ + tmp00 = \n<#6495ED> + tmp01 = #FTL-Agency-titl + tmp02 = + tmp03 = #FTL-tags + @description = #$description$$tmp00$$tmp01$$tmp02$ + // @description ^= :(.)$:$0\n<#6495ED>Field Training Lab. : + @tags = #$tags$ $tmp03$ + !tmp01 = DELETE + !tmp02 = DELETE + !tmp03 = DELETE + !tmp04 = DELETE + + MODULE + { + name = TrainingLabModule + TimeFactor = 9201600 + TrainFactor = 20 + inSpace = 0.5 + Landed = 0.25 + } +} \ No newline at end of file From 83dabc5d32e5d11e6a8aa4cdf0158dfe8da6bb50 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:44 -0600 Subject: [PATCH 17/84] Create TokamakIndustries.cfg --- .../Compatibility/TokamakIndustries.cfg | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 GameData/FieldTrainingLab/Compatibility/TokamakIndustries.cfg diff --git a/GameData/FieldTrainingLab/Compatibility/TokamakIndustries.cfg b/GameData/FieldTrainingLab/Compatibility/TokamakIndustries.cfg new file mode 100644 index 0000000..0741f3e --- /dev/null +++ b/GameData/FieldTrainingLab/Compatibility/TokamakIndustries.cfg @@ -0,0 +1,33 @@ +// TokamakIndustries.cfg v1.0.0.0 +// Field Training Lab (FTL) +// created: 10 Jan 2023 +// updated: + +// This file: GPL-3.0 by zer0Kerbal + +// courtesy of [Gordon Dry](https://forum.kerbalspaceprogram.com/index.php?/profile/163177*/) +// add parts' compatibility + +@PART[centrifugeSmall]:HAS[!MODULE[TrainingLabModule]]:NEEDS[TokamakIndustries,FieldTrainingLab]:AFTER[FieldTrainingLab] +{ + tmp00 = \n<#6495ED> + tmp01 = #FTL-Agency-titl + tmp02 = + tmp03 = #FTL-tags + @description = #$description$$tmp00$$tmp01$$tmp02$ + // @description ^= :(.)$:$0\n<#6495ED>Field Training Lab. : + @tags = #$tags$ $tmp03$ + !tmp01 = DELETE + !tmp02 = DELETE + !tmp03 = DELETE + !tmp04 = DELETE + + MODULE + { + name = TrainingLabModule + TimeFactor = 9201600 + TrainFactor = 20 + inSpace = 0.5 + Landed = 0.25 + } +} \ No newline at end of file From 520275a81ab36e39b794caafc330c975a4da3007 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:45 -0600 Subject: [PATCH 18/84] Delete FieldTrainingLab.version --- .../FieldTrainingLab/FieldTrainingLab.version | 36 ------------------- 1 file changed, 36 deletions(-) delete mode 100644 GameData/FieldTrainingLab/FieldTrainingLab.version diff --git a/GameData/FieldTrainingLab/FieldTrainingLab.version b/GameData/FieldTrainingLab/FieldTrainingLab.version deleted file mode 100644 index 8c25450..0000000 --- a/GameData/FieldTrainingLab/FieldTrainingLab.version +++ /dev/null @@ -1,36 +0,0 @@ -{ - "NAME" : "Field Training Lab (FTL)", - "URL" : "https://raw.githubusercontent.com/zer0Kerbal/FieldTrainingLab/master/FieldTrainingLab.version", - "DOWNLOAD" : "https://github.com/zer0Kerbal/FieldTrainingLab/releases/latest", - "CHANGE_LOG_URL" : "https://raw.githubusercontent.com/zer0Kerbal/FieldTrainingLab/master/changelog.md", - "GITHUB" : - { - "USERNAME" : "zer0Kerbal", - "REPOSITORY" : "FieldTrainingLab", - "ALLOW_PRE_RELEASE" : false - }, - "VERSION" : - { - "MAJOR" : 1, - "MINOR" : 2, - "PATCH" : 1, - "BUILD" : 0 - }, - "KSP_VERSION" : - { - "MAJOR" : 1, - "MINOR" : 12, - "PATCH" : 3 - }, - "KSP_VERSION_MIN" : - { - "MAJOR" : 1, - "MINOR" : 8, - "PATCH" : 1 - }, - "INSTALL_LOC" : - { - "NAME" : "FieldTrainingLab", - "DIRECTORY" : "FieldTrainingLab" - } -} From 94d69ba0134c3350239f38ef60ce01776f797552 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:46 -0600 Subject: [PATCH 19/84] Create FieldTraining-flag.dds --- .../Flags/FieldTraining-flag.dds | Bin 0 -> 218672 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 GameData/FieldTrainingLab/Flags/FieldTraining-flag.dds diff --git a/GameData/FieldTrainingLab/Flags/FieldTraining-flag.dds b/GameData/FieldTrainingLab/Flags/FieldTraining-flag.dds new file mode 100644 index 0000000000000000000000000000000000000000..2b2cc3467797365585ffc6d4da7eaa5e7b6d3d6c GIT binary patch literal 218672 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 literal 0 HcmV?d00001 From 3b2462b952b75bc15857aa42332d125e338591e2 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:48 -0600 Subject: [PATCH 20/84] Delete FieldTraining-flag.png --- .../Flags/FieldTraining-flag.png | Bin 13114 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 GameData/FieldTrainingLab/Flags/FieldTraining-flag.png diff --git a/GameData/FieldTrainingLab/Flags/FieldTraining-flag.png b/GameData/FieldTrainingLab/Flags/FieldTraining-flag.png deleted file mode 100644 index 55d74b08b3e6574fb6ea6ea7513696696bdf2e7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13114 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 EUp(zuPyhe` From bc1fcbd415d0ee2a80bd1f6ae2727de2c35c002a Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:49 -0600 Subject: [PATCH 21/84] Create GPL-3.0.url --- GameData/FieldTrainingLab/GPL-3.0.url | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 GameData/FieldTrainingLab/GPL-3.0.url diff --git a/GameData/FieldTrainingLab/GPL-3.0.url b/GameData/FieldTrainingLab/GPL-3.0.url new file mode 100644 index 0000000..10739dc --- /dev/null +++ b/GameData/FieldTrainingLab/GPL-3.0.url @@ -0,0 +1,2 @@ +[InternetShortcut] +URL=https://www.gnu.org/licenses/gpl.html From c004188bffbdceb3c32ada002cfa8e38abf16685 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:50 -0600 Subject: [PATCH 22/84] Delete GPLv3.txt --- GameData/FieldTrainingLab/GPLv3.txt | 674 ---------------------------- 1 file changed, 674 deletions(-) delete mode 100644 GameData/FieldTrainingLab/GPLv3.txt diff --git a/GameData/FieldTrainingLab/GPLv3.txt b/GameData/FieldTrainingLab/GPLv3.txt deleted file mode 100644 index 94a9ed0..0000000 --- a/GameData/FieldTrainingLab/GPLv3.txt +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. From 735234617236540b68f38c901853b8d59f8c77d4 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:51 -0600 Subject: [PATCH 23/84] Update en-us.cfg --- GameData/FieldTrainingLab/Localization/en-us.cfg | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/GameData/FieldTrainingLab/Localization/en-us.cfg b/GameData/FieldTrainingLab/Localization/en-us.cfg index 7b8fa05..ada442d 100644 --- a/GameData/FieldTrainingLab/Localization/en-us.cfg +++ b/GameData/FieldTrainingLab/Localization/en-us.cfg @@ -1,19 +1,21 @@ -// en-us.cfg v1.0.1.0 +// en-us.cfg v1.0.2.0 // Field Training Lab (FTL) // created: 05 Apr 2020 -// updated: 25 Jun 2022 +// updated: 10 Jan 2023 -// this file: CC BY-SA 4.0 by zer0Kerbal +// THIS FILE: +// GPL-3.0 by zer0Kerbal +// translated by [zer0Kerbal](https://github.com/zer0Kerbal) Localization { en-us { // Agencies - #FTL-manu = Kerbalnaut Training Industries, Inc. #FTL-Agency-titl = Kerbalnaut Training Industries, Inc. #FTL-Agency-desc = Kerbalnaut Training Industries, Inc. for all your training needs! - + #FTF-tags = training school ftf stars experience + // Field Training Lab #FTL-titl = Field Training Lab #FTL-desc = Train Kerbals using Science Points From 15b6dc1854fdc2916e1ad54ff1d04e0ab9869c12 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:52 -0600 Subject: [PATCH 24/84] Update readme.md --- GameData/FieldTrainingLab/Localization/readme.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/GameData/FieldTrainingLab/Localization/readme.md b/GameData/FieldTrainingLab/Localization/readme.md index 7ef2d52..444c1b3 100644 --- a/GameData/FieldTrainingLab/Localization/readme.md +++ b/GameData/FieldTrainingLab/Localization/readme.md @@ -3,11 +3,10 @@ permalink: /readme.html title: Localization and Translation Readme --- - +updated: 13 May 2022 --> From 26b13ff4805e0bf58bcfe8ae1d6d7baaad7fc4dd Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:53 -0600 Subject: [PATCH 25/84] Update zh-cn.cfg --- GameData/FieldTrainingLab/Localization/zh-cn.cfg | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/GameData/FieldTrainingLab/Localization/zh-cn.cfg b/GameData/FieldTrainingLab/Localization/zh-cn.cfg index 591c12b..96c4ab1 100644 --- a/GameData/FieldTrainingLab/Localization/zh-cn.cfg +++ b/GameData/FieldTrainingLab/Localization/zh-cn.cfg @@ -1,19 +1,25 @@ -// zh-cn.cfg v1.0.0.0 +// zh-cn.cfg v1.0.1.0 // Field Training Lab (FTL) // created: 05 Apr 2020 -// updated: 25 Jun 2022 +// updated: 10 Jan 2023 // Simplified Chinese -// this file: CC BY-SA 4.0 by zer0Kerbal -// thank you to: [@JFYoung01](https://github.com/JFYoung01) +// THIS FILE: +// GPL-3.0 by zer0Kerbal, JFYoung01 +// originally by [zer0Kerbal](https://github.com/zer0Kerbal) +// translation courtesy of: [JFYoung01](https://github.com/JFYoung01) Localization { zh-cn { + // Agencies + #FTF-Agency-titl = 坎巴拉英雄训练公司 + #FTF-Agency-desc = 坎巴拉英雄训练公司. 满足您所有的培训需求! + #FTF-tags = 火车 学校 星星 经验 + // Field Training Lab #FTL-titl = 实战演练实验室 - #FTL-manu = 坎培拉有限公司 #FTL-desc = 使用科技点数来培训坎巴拉人 } } \ No newline at end of file From 23b186230c521b431fff8a3930c9806b14c0e0c9 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:54 -0600 Subject: [PATCH 26/84] Delete ManualInstallation.htm --- .../FieldTrainingLab/ManualInstallation.htm | 99 ------------------- 1 file changed, 99 deletions(-) delete mode 100644 GameData/FieldTrainingLab/ManualInstallation.htm diff --git a/GameData/FieldTrainingLab/ManualInstallation.htm b/GameData/FieldTrainingLab/ManualInstallation.htm deleted file mode 100644 index 04a0661..0000000 --- a/GameData/FieldTrainingLab/ManualInstallation.htm +++ /dev/null @@ -1,99 +0,0 @@ - - - - -

Field Training Lab (FTL)

-

Home

-

BLURB

-

Installation Instructions

-

Using CurseForge/OverWolf -app or CKAN

-

You should be all good! (check for latest version on CurseForge)

-

If -Downloaded from CurseForge/OverWolf manual download

-

To install, place the FieldTrainingLab folder inside -your Kerbal Space Program's GameData folder:

-
    -
  • REMOVE ANY OLD VERSIONS OF THE PRODUCT BEFORE -INSTALLING, including any other fork: -
      -
    • Delete <KSP_ROOT>/GameData/FieldTrainingLab
    • -
  • -
  • Extract the package's FieldTrainingLab/ folder into -your KSP's GameData folder as follows: -
      -
    • <PACKAGE>/FieldTrainingLab --> -<KSP_ROOT>/GameData/ -
        -
      • Overwrite any preexisting folder/file(s).
      • -
    • -
    • you should end up with -<KSP_ROOT>/GameData/FieldTrainingLab
    • -
  • -
-

If Downloaded from -SpaceDock / GitHub / other

-

To install, place the GameData folder inside your Kerbal Space -Program folder:

-
    -
  • REMOVE ANY OLD VERSIONS OF THE PRODUCT BEFORE -INSTALLING, including any other fork: -
      -
    • Delete <KSP_ROOT>/GameData/FieldTrainingLab
    • -
  • -
  • Extract the package's GameData/ folder into your KSP's -root folder as follows: -
      -
    • <PACKAGE>/GameData/ --> -<KSP_ROOT> -
        -
      • Overwrite any preexisting file.
      • -
    • -
    • you should end up with -<KSP_ROOT>/GameData/FieldTrainingLab
    • -
  • -
-

The -following file layout must be present after installation

-
<KSP_ROOT>
-  + [GameData]
-    + [FieldTrainingLab]
-      + [Agencies]
-        ...
-      + [Compatibility]
-        ...
-      + [Contracts]
-        ...
-      + [Flags]
-        ...
-      + [Localization]
-        ...
-      + [Parts]
-        ...
-      + [Plugins]
-        ...
-      * #.#.#.#.htm
-      * changelog.md
-      * License.txt
-      * readme.htm
-      * FieldTrainingLab.version
-    ...
-    * [Module Manager][mm] or [Module Manager /L][mml]
-  * KSP.log
-  ...
-

Dependencies

- From b61f5e7f0e4daa8bf9e38d2bfa3cf4c145ea2b3b Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:56 -0600 Subject: [PATCH 27/84] Delete readme.htm --- GameData/FieldTrainingLab/readme.htm | 475 --------------------------- 1 file changed, 475 deletions(-) delete mode 100644 GameData/FieldTrainingLab/readme.htm diff --git a/GameData/FieldTrainingLab/readme.htm b/GameData/FieldTrainingLab/readme.htm deleted file mode 100644 index 9509f09..0000000 --- a/GameData/FieldTrainingLab/readme.htm +++ /dev/null @@ -1,475 +0,0 @@ - - - - -

KSP version License
-Curseforge GitHub SpaceDock CKAN
-Pages

-

Field Training Lab (FTL)

-

This mod provides a training system (school) for your kerbalnauts by -adding a Field Training Lab into all science laboratories.

-

Field Training Lab provides a training method that consumes -science points to earn a kerbal experience (stars).

-

By zer0Kerbal, originally by Efour

-

adopted with express permission and brought to you by -KerbSimpleCo

-FieldTrainingLab Hero - -

Pay 20 science and your kerbal recieved 1 experience. Once your -kerbal has gained enough experience, they will level up (max of level -5). Must buy one entire level at a time.

-

Costs: 1

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
LevelStarsAdditional XPTotal XPscience cost
0☆☆☆☆☆0020 science
1★☆☆☆☆22+40 science
2★★☆☆☆68+120 science
3★★★☆☆816+160 science
4★★★★☆1632+320 science
5★★★★★3264+640 science
-

Training costs will be -reduced

-
    -
  • by 50% when your Field Training Lab is in orbit
  • -
  • by 75% when your Field Training Lab is on other planet
  • -
-FieldTrainingLab Hero - -

Cabin notes

-
    -
  • You can tweak values by editing the part.cfg or using a -ModuleManager patch.
  • -
  • This module can be added to other crewed parts directly or using a -ModuleManager patch.
  • -
  • The code currently only works with the first eight kerbals in a -part.
  • -
-
-

Field Training Lab (FTL)

-
    -
  • If leveling up immediately is not realistic?
  • -
  • Do you think training needs time to complete?
  • -
  • then Field Training Facility will be the -answer for you.
  • -
  • The Field Training Lab (FTL) consumes Time and -Electric Charge in order to train (school) your -kerbalnauts.
  • -
-FieldTrainingFacility - -
-

And you can have both -installed

- -

The longer you train with FTF, the less science it costs to level -immediately using the FTL.

-

For example:

-

Just using FTL, Level 4 -> Level 5 consumes 640p of Science point. -But Level 4(50% with FTF) -> Level 5 consumes just 320p of science -point. If 90% with FTF? Just pay 64p of science point or wait some more -days. you can get level 5 kerbalnaut.

-

More training means less science points needed, linearly.

-

These two addons can -cooperate

-

If you want one thing, you can install just one mod. If you install -both, they will cooperate and your kerbals profit!!

-
-

See More

-
    -
  • Discussions and news on this mod: See Discussions or KSP Forums
  • -
  • Changelog Summary for more details of changes : See ChangeLog
  • -
  • Known Issues for more details of feature requests and known issues : -See Known Issues
  • -
  • GitHub Pages : See Pages
  • -
-
-

Youtube review by Kottabos Gaming

-

-

Help Wanted

-
-
    -
  • A logo for this and Field Training Facility addons
  • -
  • Compatibility patches
  • -
  • Have a request? Glad to have them, kindly submit through GitHub.
  • -
-
-
-

Localization

-
-
    -
  • English English
  • -
  • 中文 Simplified Chinese (中文) thank you to @JFYoung01
  • -
  • your translation here
  • -
-

HELP WANTED - See the README in the Localization folder or the -Quickstart Guide for instructions for adding or -improving translations. GitHub push is the best way to contribute. -Additions and corrections welcome!

-
-
-

Installation Directions 2

-

Use CurseForge/OverWolf App

- - CurseForge/OverWolf App - - -
-

Whilst I agree CKAN is a great mod for those that can't use zip -tools, I take no part, nor am interested in maintaining the CKAN mod -metadata for my mods.

-

Please don't ask me about it but refer to the CKAN mod thread if you -are having issues with CKAN or the metadata it maintains. Beware, CKAN -can really mess up though it tries very, very, very -hard not to.

-
-

or CKAN

-

Dependencies

- -

Recommends

- -

Suggests

- -

Supports

- -
-

red box below is a link to forum post on how to get support

- -

How to get support

-

Be Kind: Lithobrake, not jakebrake! Keep your Module Manager up to date

-
- -

Credits and Special Thanks

-
    -
  • Efour for creating these glorious Kerbonaut Training -addons!
  • -
  • see Attribution.md for more comprehensive list
  • -
- -

Current (2) - zer0Kerbal

-
-

Forum: Thread - Source: GitHub
-License: License

-
Disclaimer(s)
-

All bundled mods are distributed under their own -licenses
-All art assets (textures, models, animations, sounds) are -distributed under their own licenses

-
- -

Author (1) - Author: zer0Kerbal

-
-

Forum: Thread - Download: CurseForge - Source: GitHub
-License: License

-
-

Original (0) - Author: Efour

-
-

Forum: Thread - Download: Dropbox - -Source: Dropbox
-License: License

-
-
-

How to -support this and other great mods by zer0Kerbal

-

Support Github Sponsor Patreon Buy zer0Kerbal a snack

- - - - - - - - - - - - - - - - - - - - - - -
-

Connect with me

-

Track progress: issues here and projects here -along with The Short -List

-

zer0Kerbal | kerbalspaceprogram.com -zer0Kerbal | CurseForge -zer0Kerbal | reddit -zer0Kerbal | Patreon -zer0Kerbal | YouTube -zer0Kerbal | Twitch -zer0Kerbal | PayPal -zer0Kerbal | Buy Me a Coffee -zer0Kerbal | Twitter

- - -
-
-
    -
  1. KSP Wiki: Experience↩︎

  2. -
  3. this isn't a mod. ;P↩︎

  4. -
  5. may work on -other versions (YMMV)↩︎

  6. -
  7. Be Kind: Lithobrake, not -jakebrake! Keep your Module Manager up to date!↩︎

  8. -
-
From b42a619d4efa0d1121a29fd18765392288fb9208 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:57 -0600 Subject: [PATCH 28/84] Update Constants.cs --- source/Constants.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Constants.cs b/source/Constants.cs index 6511781..cbbb78c 100644 --- a/source/Constants.cs +++ b/source/Constants.cs @@ -1,7 +1,7 @@ /* Field Training Lab (FTL) * This addon adds a training center in the science laboratory. Paying science points gets kerbals experience. For Kerbal Space Program. * Copyright (C) 2016 EFour - * Copyright (C) 2019, 2022 zer0Kerbal (zer0Kerbal at hotmail dot com) + * Copyright (C) 2019, 2022, 2023 zer0Kerbal (zer0Kerbal at hotmail dot com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by From be35946993212df3b3d28bc0166376a8c4f7d6e5 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:58 -0600 Subject: [PATCH 29/84] Update FieldTrainingLab.csproj --- source/FieldTrainingLab.csproj | 210 +++++++++++++++++---------------- 1 file changed, 110 insertions(+), 100 deletions(-) diff --git a/source/FieldTrainingLab.csproj b/source/FieldTrainingLab.csproj index 87d3c04..57ef514 100644 --- a/source/FieldTrainingLab.csproj +++ b/source/FieldTrainingLab.csproj @@ -1,91 +1,100 @@  - - - Debug - AnyCPU - {AD686AF3-DDDC-4991-909F-EAD9C16C469B} - Library - false - FieldTrainingLab - - v4.6.1 - 512 - true - latest - - - - true - full - false - ..\GameData\FieldTrainingLab\Plugins\ - DEBUG;TRACE - prompt - 4 - false - false - anycpu - - - embedded - true - ..\GameData\FieldTrainingLab\Plugins\ - TRACE - prompt - 4 - false - anycpu - false - - - - False - - - False - - - False - - - False - - - - - - - - - - - - - - - True - True - Version.tt - - - - - TextTemplatingFileGenerator - Version.cs - - - - - - - - - "$(DevEnvDir)\TextTransform.exe" "$(ProjectDir)Properties\Version.tt" - - - - + + + Debug + AnyCPU + {AD686AF3-DDDC-4991-909F-EAD9C16C469B} + Library + false + FieldTrainingLab + + v4.7.2 + 512 + true + latest + + + + true + full + false + ..\GameData\FieldTrainingLab\Plugins\ + DEBUG;TRACE + prompt + 4 + false + false + anycpu + ..\..\docs\Code\Code.xml + + + embedded + true + ..\GameData\FieldTrainingLab\Plugins\ + TRACE + true + prompt + 4 + false + anycpu + false + ..\..\docs\Code\Code.xml + + + false + true + true + false + + + + False + + + False + + + False + + + False + + + + + + + + + + + + + + + True + True + Version.tt + + + + + TextTemplatingFileGenerator + Version.cs + + + + + + + + + "$(DevEnvDir)\TextTransform.exe" "$(ProjectDir)Properties\Version.tt" + + + + set K112=$(K112) IF "%25K112%25"=="" ( ECHO Configuration error - K112 not specified in project. @@ -93,20 +102,21 @@ IF "%25K112%25"=="" ( PAUSE rem GOTO DONE ) -start /D $(ProjectDir)..\ /WAIT _deploy.bat $(TargetDir) $(TargetFileName) -if $(ConfigurationName) == Release start /D $(ProjectDir)..\ /WAIT _buildRelease.bat $(TargetDir) $(TargetFileName) +del $(TargetDir)\*.pdb +start /D $(SolutionDir)..\ /WAIT _addonDeploy.bat +if $(ConfigurationName) == Release start /D $(SolutionDir)..\ /WAIT _addonRelease.bat del $(TargetDir)\*.tmp :DONE - - - - - - - - - - - - + + + + + + + + + + + + \ No newline at end of file From 85fec786bd178b158e8e51ffd15ba83fe1356038 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:03:59 -0600 Subject: [PATCH 30/84] Update FieldTrainingLabModule.cs --- source/FieldTrainingLabModule.cs | 478 +++++++++++++++---------------- 1 file changed, 239 insertions(+), 239 deletions(-) diff --git a/source/FieldTrainingLabModule.cs b/source/FieldTrainingLabModule.cs index 60158bd..e14755d 100644 --- a/source/FieldTrainingLabModule.cs +++ b/source/FieldTrainingLabModule.cs @@ -1,7 +1,7 @@ /* Field Training Lab (FTL) * This addon adds a training center in the science laboratory. Paying science points gets kerbals experience. For Kerbal Space Program. * Copyright (C) 2016 EFour - * Copyright (C) 2019, 2022 zer0Kerbal (zer0Kerbal at hotmail dot com) + * Copyright (C) 2019, 2022, 2023 zer0Kerbal (zer0Kerbal at hotmail dot com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,254 +23,254 @@ namespace FieldTrainingLab { - /// - /// - public class FieldTrainingLab : PartModule - { - ProtoCrewMember[] crewArr = new ProtoCrewMember[8]; - string[] eventArr = - { - "TrainKerbalInside0", - "TrainKerbalInside1", - "TrainKerbalInside2", - "TrainKerbalInside3", - "TrainKerbalInside4", - "TrainKerbalInside5", - "TrainKerbalInside6", - "TrainKerbalInside7", - }; - - string[] trainingArr = - { - "", - "Training1", - "Training2", - "Training3", - "Training4", - "Training5" - }; - - float[] levelUpExpTable = { 2, 6, 8, 16, 32, 0 }; - - string[] levelNumber = { "1st", "2nd", "3rd", "4th", "5th", "null"}; - - [KSPField] - public int TrainFactor = 20; - - [KSPField] - public float inSpace = 0.5f; - - [KSPField] - public float Landed = 0.25f; - - [KSPField] - public float TimeFactor = 426 * 6 * 60 * 60; // 1Year = 426day, 1day = 6hour, 1hour = 60minutes, 1min = 60sec - - [KSPField(isPersistant = true, guiActive = true, guiName = "Training Lab Status", groupName = "TrainingLab", groupDisplayName = "Training Lab v" + Version.SText, groupStartCollapsed = true)] - public bool TrainingStatus = false; - - [KSPField(guiActive = false, guiName = "Science Point", groupName = "TrainingLab", groupDisplayName = "Field Training Lab", groupStartCollapsed = true)] - public int SciRemain; - - [KSPEvent(guiActive = false, guiName = "Training0", groupName = "TrainingLab")] - public void TrainKerbalInside0() - { - TrainKerbal(0); - } - [KSPEvent(guiActive = false, guiName = "Training1", groupName = "TrainingLab")] - public void TrainKerbalInside1() - { - TrainKerbal(1); - } - [KSPEvent(guiActive = false, guiName = "Training2", groupName = "TrainingLab")] - public void TrainKerbalInside2() - { - TrainKerbal(2); - } - [KSPEvent(guiActive = false, guiName = "Training3", groupName = "TrainingLab")] - public void TrainKerbalInside3() - { - TrainKerbal(3); - } - [KSPEvent(guiActive = false, guiName = "Training4", groupName = "TrainingLab")] - public void TrainKerbalInside4() - { - TrainKerbal(4); - } - [KSPEvent(guiActive = false, guiName = "Training5", groupName = "TrainingLab")] - public void TrainKerbalInside5() - { - TrainKerbal(5); - } - [KSPEvent(guiActive = false, guiName = "Training6", groupName = "TrainingLab")] - public void TrainKerbalInside6() - { - TrainKerbal(6); - } - [KSPEvent(guiActive = false, guiName = "Training7", groupName = "TrainingLab")] - public void TrainKerbalInside7() - { - TrainKerbal(7); - } - - #region private functions - private void TrainKerbal(int index) - { - ProtoCrewMember crew = crewArr[index]; - - int lastLog = GetCrewTrainedLevel(crew); - - if (lastLog == 5) - { - ScreenMessages.PostScreenMessage(crew.name + " already had every training."); - return; - } - - float SciCost = CalculateSciCost(levelUpExpTable[lastLog], crew); - if (ResearchAndDevelopment.Instance.Science < SciCost) - { - ScreenMessages.PostScreenMessage("Insufficient Science Points.\n" + - "Needed : " + SciCost + ", Remain : " + ResearchAndDevelopment.Instance.Science); - return; - } - ResearchAndDevelopment.Instance.AddScience(-1 * SciCost, TransactionReasons.CrewRecruited); - RemoveKerbalTrainingExp(crew); - crew.flightLog.AddEntry(new FlightLog.Entry(crew.flightLog.Flight, trainingArr[lastLog+1], "Kerbin")); - ScreenMessages.PostScreenMessage(levelNumber[lastLog] + " Training Complete : " + crew.name); - - } + /// + /// + public class FieldTrainingLab : PartModule + { + ProtoCrewMember[] crewArr = new ProtoCrewMember[8]; + string[] eventArr = + { + "TrainKerbalInside0", + "TrainKerbalInside1", + "TrainKerbalInside2", + "TrainKerbalInside3", + "TrainKerbalInside4", + "TrainKerbalInside5", + "TrainKerbalInside6", + "TrainKerbalInside7", + }; + + string[] trainingArr = + { + "", + "Training1", + "Training2", + "Training3", + "Training4", + "Training5" + }; + + float[] levelUpExpTable = { 2, 6, 8, 16, 32, 0 }; + + string[] levelNumber = { "1st", "2nd", "3rd", "4th", "5th", "null"}; + + [KSPField] + public int TrainFactor = 20; + + [KSPField] + public float inSpace = 0.5f; + + [KSPField] + public float Landed = 0.25f; + + [KSPField] + public float TimeFactor = 426 * 6 * 60 * 60; // 1Year = 426day, 1day = 6hour, 1hour = 60minutes, 1min = 60sec + + [KSPField(isPersistant = true, guiActive = true, guiName = "Training Lab Status", groupName = "TrainingLab", groupDisplayName = "Training Lab v" + Version.SText, groupStartCollapsed = true)] + public bool TrainingStatus = false; + + [KSPField(guiActive = false, guiName = "Science Point", groupName = "TrainingLab", groupDisplayName = "Field Training Lab", groupStartCollapsed = true)] + public int SciRemain; + + [KSPEvent(guiActive = false, guiName = "Training0", groupName = "TrainingLab")] + public void TrainKerbalInside0() + { + TrainKerbal(0); + } + [KSPEvent(guiActive = false, guiName = "Training1", groupName = "TrainingLab")] + public void TrainKerbalInside1() + { + TrainKerbal(1); + } + [KSPEvent(guiActive = false, guiName = "Training2", groupName = "TrainingLab")] + public void TrainKerbalInside2() + { + TrainKerbal(2); + } + [KSPEvent(guiActive = false, guiName = "Training3", groupName = "TrainingLab")] + public void TrainKerbalInside3() + { + TrainKerbal(3); + } + [KSPEvent(guiActive = false, guiName = "Training4", groupName = "TrainingLab")] + public void TrainKerbalInside4() + { + TrainKerbal(4); + } + [KSPEvent(guiActive = false, guiName = "Training5", groupName = "TrainingLab")] + public void TrainKerbalInside5() + { + TrainKerbal(5); + } + [KSPEvent(guiActive = false, guiName = "Training6", groupName = "TrainingLab")] + public void TrainKerbalInside6() + { + TrainKerbal(6); + } + [KSPEvent(guiActive = false, guiName = "Training7", groupName = "TrainingLab")] + public void TrainKerbalInside7() + { + TrainKerbal(7); + } + + #region private functions + private void TrainKerbal(int index) + { + ProtoCrewMember crew = crewArr[index]; + + int lastLog = GetCrewTrainedLevel(crew); + + if (lastLog == 5) + { + ScreenMessages.PostScreenMessage(crew.name + " already had every training."); + return; + } + + float SciCost = CalculateSciCost(levelUpExpTable[lastLog], crew); + if (ResearchAndDevelopment.Instance.Science < SciCost) + { + ScreenMessages.PostScreenMessage("Insufficient Science Points.\n" + + "Needed : " + SciCost + ", Remain : " + ResearchAndDevelopment.Instance.Science); + return; + } + ResearchAndDevelopment.Instance.AddScience(-1 * SciCost, TransactionReasons.CrewRecruited); + RemoveKerbalTrainingExp(crew); + crew.flightLog.AddEntry(new FlightLog.Entry(crew.flightLog.Flight, trainingArr[lastLog+1], "Kerbin")); + ScreenMessages.PostScreenMessage(levelNumber[lastLog] + " Training Complete : " + crew.name); + + } #endregion #region public functions - public override void OnUpdate() - { - if (HighLogic.CurrentGame.Mode != Game.Modes.CAREER) return; + public override void OnUpdate() + { + if (HighLogic.CurrentGame.Mode != Game.Modes.CAREER) return; - Fields["SciRemain"].guiActive = true; - SciRemain = (int) ResearchAndDevelopment.Instance.Science; + Fields["SciRemain"].guiActive = true; + SciRemain = (int) ResearchAndDevelopment.Instance.Science; - int index = 0; - for (int cnt = 0; cnt < crewArr.Length; cnt++) crewArr[cnt] = null; - foreach (ProtoCrewMember crew in part.protoModuleCrew) - { - if (index >= 8) break; - int lastLog = GetCrewTrainedLevel(crew); + int index = 0; + for (int cnt = 0; cnt < crewArr.Length; cnt++) crewArr[cnt] = null; + foreach (ProtoCrewMember crew in part.protoModuleCrew) + { + if (index >= 8) break; + int lastLog = GetCrewTrainedLevel(crew); - crewArr[index] = crew; - int SciCost = (int) CalculateSciCost(levelUpExpTable[lastLog], crew); + crewArr[index] = crew; + int SciCost = (int) CalculateSciCost(levelUpExpTable[lastLog], crew); - if (lastLog < 5) Events[eventArr[index]].guiName = "[" + lastLog + "->" + (lastLog + 1) + "] " + crew.name + "[" + SciCost + "p]"; - else Events[eventArr[index]].guiName = "[5]" + crew.name; + if (lastLog < 5) Events[eventArr[index]].guiName = "[" + lastLog + "->" + (lastLog + 1) + "] " + crew.name + "[" + SciCost + "p]"; + else Events[eventArr[index]].guiName = "[5]" + crew.name; - Events[eventArr[index]].guiActive = true; - index++; - } + Events[eventArr[index]].guiActive = true; + index++; + } - for(; index < eventArr.Length; index++) Events[eventArr[index]].guiActive = false; - } + for(; index < eventArr.Length; index++) Events[eventArr[index]].guiActive = false; + } #endregion - private int CalculateSciCost(float baseValue, ProtoCrewMember crew) - { - double calculated = baseValue * TrainFactor * (1 - (GetKerbalTrainingExp(crew) / (TimeFactor * baseValue / 64))); - int ret = 0; - - if (this.vessel.mainBody.bodyName == "Kerbin" && this.vessel.LandedOrSplashed) ret = ((int) (calculated + 0.5)); - else if (this.vessel.LandedOrSplashed) ret = ((int) (calculated * Landed + 0.5)); - else ret = ((int)(calculated * inSpace + 0.5)); - - if (ret < 1) ret = 1; - return ret; - } - - private double GetKerbalTrainingExp(ProtoCrewMember crew) - { - string lastExpStr = "0"; - - FlightLog totalLog = crew.careerLog.CreateCopy(); - totalLog.MergeWith(crew.flightLog.CreateCopy()); - foreach (FlightLog.Entry entry in totalLog.Entries) - if (entry.type == "TrainingExp") lastExpStr = entry.target; - - return double.Parse(lastExpStr); - } - - private void RemoveKerbalTrainingExp(ProtoCrewMember crew) - { - foreach (FlightLog.Entry entry in crew.careerLog.Entries.ToArray()) - if (entry.type == "TrainingExp") - crew.careerLog.Entries.Remove(entry); - foreach (FlightLog.Entry entry in crew.flightLog.Entries.ToArray()) - if (entry.type == "TrainingExp") - crew.flightLog.Entries.Remove(entry); - } - - private int GetCrewTrainedLevel(ProtoCrewMember crew) - { - int lastLog = 0; - FlightLog totalLog = crew.careerLog.CreateCopy(); - totalLog.MergeWith(crew.flightLog.CreateCopy()); - - int deadFlight = -1; - foreach (FlightLog.Entry entry in totalLog.Entries) - { - if (entry.flight <= deadFlight) continue; - if (entry.type == "Die") deadFlight = entry.flight; - } - foreach (FlightLog.Entry entry in totalLog.Entries) - { - if (entry.flight <= deadFlight) continue; - if (lastLog < 1 && entry.type == "Training1") lastLog = 1; - if (lastLog < 2 && entry.type == "Training2") lastLog = 2; - if (lastLog < 3 && entry.type == "Training3") lastLog = 3; - if (lastLog < 4 && entry.type == "Training4") lastLog = 4; - if (lastLog < 5 && entry.type == "Training5") lastLog = 5; - } - - return lastLog; - } - - /// Converts consumption rate into /s /m /hour and returns a formate string. - /// The rate. - /// RateString="Rate" - private static string RateString(double rate) - { - // double rate = double.Parse(value.value); - string sfx = "/s"; - if (rate <= 0.004444444f) - { - rate *= 3600; - sfx = "/h"; - } - else if (rate < 0.2666667f) - { - rate *= 60; - sfx = "/m"; - } - // limit decimal places to 10 and add sfx - //return String.Format(FuelRateFormat, Rate, sfx); - return rate.ToString("###.#####") + " EC" + sfx; - } - /// Module information shown in editors - private string info = string.Empty; - - public override string GetInfo() - { - //? this is what is show in the editor - //? As annoying as it is, pre-parsing the config MUST be done here, because this is called during part loading. - //? The config is only fully parsed after everything is fully loaded (which is why it's in OnStart()) - if (info == string.Empty) - { - info += Localizer.Format("#FTL-manu"); // #FTL-manu = Kerbalnaut Training Industries, Inc. - info += "\n v" + Version.SText; // FTL Version Number text - info += "\n" + Localizer.Format("#FTL-desc"); // #FTL-desc = Train Kerbals using Science Points - } - // #autoLOC_252004 = ElectricCharge - // #FieldTrainingFacility_titl = FieldTrainingFacility - // #FTL-manu = Kerbalnaut Training Industries, Inc. - // #FTL-desc = Train Kerbals using time and Electric Charge - return info; - } - } + private int CalculateSciCost(float baseValue, ProtoCrewMember crew) + { + double calculated = baseValue * TrainFactor * (1 - (GetKerbalTrainingExp(crew) / (TimeFactor * baseValue / 64))); + int ret = 0; + + if (this.vessel.mainBody.bodyName == "Kerbin" && this.vessel.LandedOrSplashed) ret = ((int) (calculated + 0.5)); + else if (this.vessel.LandedOrSplashed) ret = ((int) (calculated * Landed + 0.5)); + else ret = ((int)(calculated * inSpace + 0.5)); + + if (ret < 1) ret = 1; + return ret; + } + + private double GetKerbalTrainingExp(ProtoCrewMember crew) + { + string lastExpStr = "0"; + + FlightLog totalLog = crew.careerLog.CreateCopy(); + totalLog.MergeWith(crew.flightLog.CreateCopy()); + foreach (FlightLog.Entry entry in totalLog.Entries) + if (entry.type == "TrainingExp") lastExpStr = entry.target; + + return double.Parse(lastExpStr); + } + + private void RemoveKerbalTrainingExp(ProtoCrewMember crew) + { + foreach (FlightLog.Entry entry in crew.careerLog.Entries.ToArray()) + if (entry.type == "TrainingExp") + crew.careerLog.Entries.Remove(entry); + foreach (FlightLog.Entry entry in crew.flightLog.Entries.ToArray()) + if (entry.type == "TrainingExp") + crew.flightLog.Entries.Remove(entry); + } + + private int GetCrewTrainedLevel(ProtoCrewMember crew) + { + int lastLog = 0; + FlightLog totalLog = crew.careerLog.CreateCopy(); + totalLog.MergeWith(crew.flightLog.CreateCopy()); + + int deadFlight = -1; + foreach (FlightLog.Entry entry in totalLog.Entries) + { + if (entry.flight <= deadFlight) continue; + if (entry.type == "Die") deadFlight = entry.flight; + } + foreach (FlightLog.Entry entry in totalLog.Entries) + { + if (entry.flight <= deadFlight) continue; + if (lastLog < 1 && entry.type == "Training1") lastLog = 1; + if (lastLog < 2 && entry.type == "Training2") lastLog = 2; + if (lastLog < 3 && entry.type == "Training3") lastLog = 3; + if (lastLog < 4 && entry.type == "Training4") lastLog = 4; + if (lastLog < 5 && entry.type == "Training5") lastLog = 5; + } + + return lastLog; + } + + /// Converts consumption rate into /s /m /hour and returns a formate string. + /// The rate. + /// RateString="Rate" + private static string RateString(double rate) + { + // double rate = double.Parse(value.value); + string sfx = "/s"; + if (rate <= 0.004444444f) + { + rate *= 3600; + sfx = "/h"; + } + else if (rate < 0.2666667f) + { + rate *= 60; + sfx = "/m"; + } + // limit decimal places to 10 and add sfx + //return String.Format(FuelRateFormat, Rate, sfx); + return rate.ToString("###.#####") + " EC" + sfx; + } + /// Module information shown in editors + private string info = string.Empty; + + public override string GetInfo() + { + //? this is what is show in the editor + //? As annoying as it is, pre-parsing the config MUST be done here, because this is called during part loading. + //? The config is only fully parsed after everything is fully loaded (which is why it's in OnStart()) + if (info == string.Empty) + { + info += Localizer.Format("#FTL-Agency-titl"); // #FTF-manu = Kerbalnaut Training Industries, Inc. + info += "\n v" + Version.SText; // FTL Version Number text + info += "\n" + Localizer.Format("#FTL-desc"); // #FTL-desc = Train Kerbals using Science Points + } + // #autoLOC_252004 = ElectricCharge + // #FieldTrainingFacility_titl = FieldTrainingFacility + // #FTL-manu = Kerbalnaut Training Industries, Inc. + // #FTL-desc = Train Kerbals using time and Electric Charge + return info; + } + } } From b380ef2a7c506c17864b7b28750a294ef0fba830 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:04:00 -0600 Subject: [PATCH 31/84] Update AssemblyInfo.cs --- source/Properties/AssemblyInfo.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/Properties/AssemblyInfo.cs b/source/Properties/AssemblyInfo.cs index 56f6cc0..2fd8a46 100644 --- a/source/Properties/AssemblyInfo.cs +++ b/source/Properties/AssemblyInfo.cs @@ -1,7 +1,7 @@ /* Field Training Lab (FTL) * This addon adds a training center in the science laboratory. Paying science points gets kerbals experience. For Kerbal Space Program. * Copyright (C) 2016 EFour - * Copyright (C) 2019, 2022 zer0Kerbal (zer0Kerbal at hotmail dot com) + * Copyright (C) 2019, 2022, 2023 zer0Kerbal (zer0Kerbal at hotmail dot com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -27,8 +27,9 @@ [assembly: AssemblyCompany("Kerbalnaut Training Industries, Inc.")] [assembly: AssemblyProduct("Field Training Lab (FTL)")] [assembly: AssemblyCopyright("Copyright (c) 2016 Efour (c) 2019, 2022 zer0Kerbal")] +[assembly: AssemblyTrademark("Trademark (tm) 2016 Efour (c) 2019, 2023 zer0Kerbal")] [assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] +[assembly: AssemblyCulture("Kerbal")] [assembly: ComVisible(false)] [assembly: Guid("AD686AF3-DDDC-4991-909F-EAD9C16C469B")] \ No newline at end of file From 12a0ebd0ad271cdac38283a29b301d612a083a0c Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:04:01 -0600 Subject: [PATCH 32/84] Update Version.cs --- source/Properties/Version.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Properties/Version.cs b/source/Properties/Version.cs index b126ba4..e0da523 100644 --- a/source/Properties/Version.cs +++ b/source/Properties/Version.cs @@ -6,7 +6,7 @@ /* Field Training Lab (FTL) * This addon adds a training center in the science laboratory. Paying science points gets kerbals experience. For Kerbal Space Program. * Copyright (C) 2016 EFour - * Copyright (C) 2019, 2022 zer0Kerbal (zer0Kerbal at hotmail dot com) + * Copyright (C) 2019, 2022, 2023 zer0Kerbal (zer0Kerbal at hotmail dot com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by From caaeba6773b0c86cc3d70265407f7c0b48933724 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:04:02 -0600 Subject: [PATCH 33/84] Update Version.tt --- source/Properties/Version.tt | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/source/Properties/Version.tt b/source/Properties/Version.tt index bd14f0c..e80bf6d 100644 --- a/source/Properties/Version.tt +++ b/source/Properties/Version.tt @@ -1,13 +1,13 @@ <# /* * Version.tt - * 2.0.3.0 + * 2.0.4.0 */ /* Field Training Lab (FTL) * This addon adds a training center in the science laboratory. Paying science points gets kerbals experience. For Kerbal Space Program. * Copyright (C) 2016 EFour - * Copyright (C) 2019, 2022 zer0Kerbal (zer0Kerbal at hotmail dot com) + * Copyright (C) 2019, 2022, 2023 zer0Kerbal (zer0Kerbal at hotmail dot com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -118,7 +118,7 @@ /* Field Training Lab (FTL) * This addon adds a training center in the science laboratory. Paying science points gets kerbals experience. For Kerbal Space Program. * Copyright (C) 2016 EFour - * Copyright (C) 2019, 2022 zer0Kerbal (zer0Kerbal at hotmail dot com) + * Copyright (C) 2019, 2022, 2023 zer0Kerbal (zer0Kerbal at hotmail dot com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -133,8 +133,6 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - - using System.Reflection; [assembly: AssemblyFileVersion("<#= major #>.<#= minor #>.<#= patch #>.<#= revisionNumber #>")] @@ -144,18 +142,28 @@ using System.Reflection; namespace <#= PROJECT_NAME #> { + /// Version - retrieved at compile from <#= PROJECT_NAME #>.version public static class Version { + /// Major revision public const int major = <#= major #>; + /// Minor revision public const int minor = <#= minor #>; + /// Patch revision public const int patch = <#= patch #>; + /// Build revision public const int build = <#= build #>; + /// Version String const public const string Number = "<#= major #>.<#= minor #>.<#= patch #>.<#= build #>"; #if DEBUG + /// Debug Version String const public const string Text = Number + "-zed'K BETA DEBUG"; + /// Debug SVersion String const public const string SText = Number + "-zed'K BETA DEBUG"; #else + /// Text Version String const public const string Text = Number + "-zed'K"; + /// Plain Text Version String const public const string SText = Number; #endif } From 305c435eaae1f1046b0065aaaeb77f9f457e57b8 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 21:04:04 -0600 Subject: [PATCH 34/84] Update Settings.cs --- source/Settings.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Settings.cs b/source/Settings.cs index e337276..d03e69f 100644 --- a/source/Settings.cs +++ b/source/Settings.cs @@ -1,7 +1,7 @@ /* Field Training Lab (FTL) * This addon adds a training center in the science laboratory. Paying science points gets kerbals experience. For Kerbal Space Program. * Copyright (C) 2016 EFour - * Copyright (C) 2019, 2022 zer0Kerbal (zer0Kerbal at hotmail dot com) + * Copyright (C) 2019, 2022, 2023 zer0Kerbal (zer0Kerbal at hotmail dot com) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by From 1d59e123fb11dc6b7ece526ef6a96ed2be7ae86d Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:45:49 -0600 Subject: [PATCH 35/84] Delete FieldTraining-flag.png --- FieldTraining-flag.png | Bin 13114 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 FieldTraining-flag.png diff --git a/FieldTraining-flag.png b/FieldTraining-flag.png deleted file mode 100644 index 55d74b08b3e6574fb6ea6ea7513696696bdf2e7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13114 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 EUp(zuPyhe` From 7acebae5fe8e1a9fe6f036ea4c3d854de316ddd5 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:45:50 -0600 Subject: [PATCH 36/84] Update en-us.cfg --- .../FieldTrainingLab/Localization/en-us.cfg | 73 ++++++++++++++++++- 1 file changed, 71 insertions(+), 2 deletions(-) diff --git a/GameData/FieldTrainingLab/Localization/en-us.cfg b/GameData/FieldTrainingLab/Localization/en-us.cfg index ada442d..4c139e2 100644 --- a/GameData/FieldTrainingLab/Localization/en-us.cfg +++ b/GameData/FieldTrainingLab/Localization/en-us.cfg @@ -13,11 +13,80 @@ Localization { // Agencies #FTL-Agency-titl = Kerbalnaut Training Industries, Inc. - #FTL-Agency-desc = Kerbalnaut Training Industries, Inc. for all your training needs! + #FTL-Agency-desc = For all your hero training needs! #FTF-tags = training school ftf stars experience // Field Training Lab #FTL-titl = Field Training Lab - #FTL-desc = Train Kerbals using Science Points + #FTL-nameV = Field Training Lab v <<1>> + #FTL-desc = Train kerbals using science points + + // functions + #FTL-max = <<1>> already had every training. + #FTL-insufficent = Insufficient <<1>>.\nNeed: <<2>>, Remain: <<3>> + #FTL-complete = <<1>> Training Complete : <<2>> + #FTL-editor = off + + // settings + #FTL-1000000 = [WIP] Field Training Lab (FTL) Settings + #FTL-1000001 = [WIP] Field Training (FTL) A + #FTL-1000002 = [WIP] Field Training (FTL) B + + #FTL-settings-enable = Enable Field Training Lab? + #FTL-settings-enable-tt = Field Training Labs are enabled if set to yes. + + #FTL-settings-paymentLabel = Payment Label + #FTL-settings-paymentLabel-tt = Science/Reputation/Funds + + #FTL-settings-paymentType = How would you like to pay for your kerbal training? + #FTL-settings-paymentType-tt = Require Science Points to advance + + #FTL-settings-paymentScience = If enabled, requires expending Science points to gain experience. + #FTL-settings-paymentScience-tt = Science : Experience + + #FTL-settings-paymentScienceRatio = Ratio of Science Points per Experience Point. + #FTL-settings-paymentScienceRatio-tt = Require Reputation to advance + + #FTL-settings-paymentRep = If enabled, requires expending Reputation to gain experience. + #FTL-settings-paymentRep-tt = Reputation : Experience + + #FTL-settings-paymentRepRatio = Ratio of Reputation per Experience Point. + #FTL-settings-paymentRepRatio-tt = Require Funds to advance + + #FTL-settings-paymentFunds = If enabled, requires expending Funds to gain experience. + #FTL-settings-paymentFunds-tt = Funds : Experience + + #FTL-settings-paymentFundsRatio = Ratio of Funds per Experience Point. + #FTL-settings-paymentFundsRatio-tt = KSPMail + + #FTL-settings-mail-tt = Recieve a colorful Joyntmail announcing graduation to a new rank?. + + #FTL-settings-pawColor = PAW Color + #FTL-settings-pawColor-tt = allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). + +// constants + #FTL-addon-nameFolder = FieldTrainingLab + #FTL-addon-name = Field Training Lab + + #FTL-1st = 1st + #FTL-2nd = 2nd + #FTL-3rd = 3rd + #FTL-4th = 4th + #FTL-5th = 5th + #FTL-null = null + + #FTL-status = Training Lab Status + #FTL-funds-sci = Science Points + #FTL-funds-rep = Reputation + #FTL-funds-fnd = Kerbal Bucks + + #FTL-training-0 = Training0 + #FTL-training-1 = Training1 + #FTL-training-2 = Training2 + #FTL-training-3 = Training3 + #FTL-training-4 = Training4 + #FTL-training-5 = Training5 + #FTL-training-6 = Training6 + #FTL-training-7 = Training7 } } \ No newline at end of file From 236de1c9e4ae9bdd9b051a86632b7f28c8eafebc Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:45:52 -0600 Subject: [PATCH 37/84] Create settings.ftl --- GameData/FieldTrainingLab/Plugins/PluginData/settings.ftl | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 GameData/FieldTrainingLab/Plugins/PluginData/settings.ftl diff --git a/GameData/FieldTrainingLab/Plugins/PluginData/settings.ftl b/GameData/FieldTrainingLab/Plugins/PluginData/settings.ftl new file mode 100644 index 0000000..e69de29 From a577742e9174e3becb859c2e2bd295673cf92957 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:46:30 -0600 Subject: [PATCH 38/84] Update Constants.cs --- source/Constants.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/source/Constants.cs b/source/Constants.cs index cbbb78c..aba67f6 100644 --- a/source/Constants.cs +++ b/source/Constants.cs @@ -20,14 +20,16 @@ using System.Text; using FieldTrainingLab; +using KSP.Localization; public class Constants { - public const string MODNAME = "FieldTrainingLab"; - public const string MODTITLE = "Field Training Lab"; + public const string MODNAME = "#FTL-addon-nameFolder"; // #FTL-addon-nameFolder = FieldTrainingLab + public const string MODTITLE = "#FTL-addon-name"; // #FTL-addon-name = Field Training Lab public static readonly string ROOT_PATH = KSPUtil.ApplicationRootPath; public static readonly string CONFIG_BASE_FOLDER = ROOT_PATH + "GameData/"; public static string FTL_BASE_FOLDER { get { return CONFIG_BASE_FOLDER + MODNAME + "/"; } } public static string FTL_NODENAME = MODNAME; - public string FTL_CFG_FILE { get { return FTL_BASE_FOLDER + "PluginData/FTL_Settings.cfg"; } } + public string FTL_CFG_FILE { get { return FTL_BASE_FOLDER + "PluginData/settings.ftl"; } } + //public string FTL_CFG_FILE { get { return FTL_BASE_FOLDER + "PluginData/FTL_Settings.cfg"; } } } From 7889e92e5dab4cfb7b92ff55c71ccb72cf6b9533 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:46:39 -0600 Subject: [PATCH 39/84] Update FieldTrainingLabModule.cs --- source/FieldTrainingLabModule.cs | 494 +++++++++++++++++++++++++++++++ 1 file changed, 494 insertions(+) diff --git a/source/FieldTrainingLabModule.cs b/source/FieldTrainingLabModule.cs index e14755d..2c4cafe 100644 --- a/source/FieldTrainingLabModule.cs +++ b/source/FieldTrainingLabModule.cs @@ -17,12 +17,14 @@ * along with this program. If not, see . */ +using System; using UnityEngine; using KSP.Localization; namespace FieldTrainingLab { +<<<<<<< Updated upstream ///

/// public class FieldTrainingLab : PartModule @@ -145,6 +147,287 @@ private void TrainKerbal(int index) public override void OnUpdate() { if (HighLogic.CurrentGame.Mode != Game.Modes.CAREER) return; +======= +<<<<<<< Updated upstream + /// + /// + public class FieldTrainingLab : PartModule + { + ProtoCrewMember[] crewArr = new ProtoCrewMember[8]; + string[] eventArr = + { + "TrainKerbalInside0", + "TrainKerbalInside1", + "TrainKerbalInside2", + "TrainKerbalInside3", + "TrainKerbalInside4", + "TrainKerbalInside5", + "TrainKerbalInside6", + "TrainKerbalInside7", + }; + + string[] trainingArr = + { + "", + "Training1", + "Training2", + "Training3", + "Training4", + "Training5" + }; + + float[] levelUpExpTable = { 2, 6, 8, 16, 32, 0 }; + + string[] levelNumber = { "1st", "2nd", "3rd", "4th", "5th", "null"}; + + [KSPField] + public int TrainFactor = 20; + + [KSPField] + public float inSpace = 0.5f; + + [KSPField] + public float Landed = 0.25f; + + [KSPField] + public float TimeFactor = 426 * 6 * 60 * 60; // 1Year = 426day, 1day = 6hour, 1hour = 60minutes, 1min = 60sec + + [KSPField(isPersistant = true, guiActive = true, guiName = "Training Lab Status", groupName = "TrainingLab", groupDisplayName = "Training Lab v" + Version.Text, groupStartCollapsed = true)] + public bool TrainingStatus = false; + + [KSPField(guiActive = false, guiName = "Science Point", groupName = "TrainingLab", groupDisplayName = "Field Training Lab", groupStartCollapsed = true)] + public int SciRemain; + + [KSPEvent(guiActive = false, guiName = "Training0", groupName = "TrainingLab")] + public void TrainKerbalInside0() + { + TrainKerbal(0); + } + [KSPEvent(guiActive = false, guiName = "Training1", groupName = "TrainingLab")] + public void TrainKerbalInside1() + { + TrainKerbal(1); + } + [KSPEvent(guiActive = false, guiName = "Training2", groupName = "TrainingLab")] + public void TrainKerbalInside2() + { + TrainKerbal(2); + } + [KSPEvent(guiActive = false, guiName = "Training3", groupName = "TrainingLab")] + public void TrainKerbalInside3() + { + TrainKerbal(3); + } + [KSPEvent(guiActive = false, guiName = "Training4", groupName = "TrainingLab")] + public void TrainKerbalInside4() + { + TrainKerbal(4); + } + [KSPEvent(guiActive = false, guiName = "Training5", groupName = "TrainingLab")] + public void TrainKerbalInside5() + { + TrainKerbal(5); + } + [KSPEvent(guiActive = false, guiName = "Training6", groupName = "TrainingLab")] + public void TrainKerbalInside6() + { + TrainKerbal(6); + } + [KSPEvent(guiActive = false, guiName = "Training7", groupName = "TrainingLab")] + public void TrainKerbalInside7() + { + TrainKerbal(7); + } + + #region private functions + private void TrainKerbal(int index) + { + ProtoCrewMember crew = crewArr[index]; + + int lastLog = GetCrewTrainedLevel(crew); + + if (lastLog == 5) + { + ScreenMessages.PostScreenMessage(crew.name + " already had every training."); + return; + } + + float SciCost = CalculateSciCost(levelUpExpTable[lastLog], crew); + if (ResearchAndDevelopment.Instance.Science < SciCost) + { + ScreenMessages.PostScreenMessage("Insufficient Science Points.\n" + + "Needed : " + SciCost + ", Remain : " + ResearchAndDevelopment.Instance.Science); + return; + } + ResearchAndDevelopment.Instance.AddScience(-1 * SciCost, TransactionReasons.CrewRecruited); + RemoveKerbalTrainingExp(crew); + crew.flightLog.AddEntry(new FlightLog.Entry(crew.flightLog.Flight, trainingArr[lastLog+1], "Kerbin")); + ScreenMessages.PostScreenMessage(levelNumber[lastLog] + " Training Complete : " + crew.name); + + } +#endregion + +#region public functions + public override void OnUpdate() + { + if (HighLogic.CurrentGame.Mode != Game.Modes.CAREER) return; +======= + /// + public class FieldTrainingLab : PartModule + { + readonly ProtoCrewMember[] crewArr = new ProtoCrewMember[8]; + readonly string[] eventArr = + { + "TrainKerbalInside0", + "TrainKerbalInside1", + "TrainKerbalInside2", + "TrainKerbalInside3", + "TrainKerbalInside4", + "TrainKerbalInside5", + "TrainKerbalInside6", + "TrainKerbalInside7", + }; + + readonly string[] trainingArr = + { + "", + "Training1", + "Training2", + "Training3", + "Training4", + "Training5" + }; + + readonly float[] levelUpExpTable = { 2, 6, 8, 16, 32, 0 }; + + readonly string[] levelNumber = { Localizer.Format("#FTL-1st"), Localizer.Format("#FTL-2nd"), "#FTL-3rd", Localizer.Format("#FTL-4th"), Localizer.Format("#FTL-5th"), Localizer.Format("#FTL-null") }; // #FTL-1st = 1st // #FTL-2nd = 2nd // #FTL-null = null // #FTL-5th = 5th // #FTL-4th = 4th // #FTL-3rd = 3rd + + private const string __GroupName__ = "FieldTrainingLab"; + + /// Train Factor + [KSPField] + public int TrainFactor = 20; + + /// Space situational cost adjustment + [KSPField] + public float inSpace = 0.5f; + + /// Landed situational cost adjustment + [KSPField] + public float Landed = 0.25f; + + /// Time Factor + [KSPField] + public float TimeFactor = 426 * 6 * 60 * 60; // 1Year = 426day, 1day = 6hour, 1hour = 60minutes, 1min = 60sec + + /// PAW Group Status Label + [KSPField(isPersistant = false, guiActive = true, guiActiveEditor = true, groupStartCollapsed = true, + guiName = " ", + groupDisplayName = "Training Lab v" + Version.SText)] + public string PAWStatus = Localizer.Format("#FTL-nameV", Version.SText); + + /// Training Lab Status + [KSPField(isPersistant = true, guiActive = true, groupName = __GroupName__, guiName = "#FTL-status")] + public bool TrainingStatus = false; + + /// Science Points Remaining + [KSPField(guiActive = false, groupName = __GroupName__, guiName = "#FTL-funds-sci")] + public int SciRemain; + + /// Training 0 + [KSPEvent(guiActive = false, groupName = __GroupName__, guiName = "#FTL-training-0")] + public void TrainKerbalInside0() + { TrainKerbal(0); } + + /// Training 1 + [KSPEvent(guiActive = false, groupName = __GroupName__, guiName = "#FTL-training-1")] + public void TrainKerbalInside1() + { TrainKerbal(1); } + + /// Training 2 + [KSPEvent(guiActive = false, groupName = __GroupName__, guiName = "#FTL-training-2")] + public void TrainKerbalInside2() + { TrainKerbal(2); } + + /// Training 3 + [KSPEvent(guiActive = false, groupName = __GroupName__, guiName = "#FTL-training-3")] + public void TrainKerbalInside3() + { TrainKerbal(3); } + + /// Training 4 + [KSPEvent(guiActive = false, groupName = __GroupName__, guiName = "#FTL-training-4")] + public void TrainKerbalInside4() + { TrainKerbal(4); } + + /// Training 5 + [KSPEvent(guiActive = false, groupName = __GroupName__, guiName = "#FTL-training-5")] + public void TrainKerbalInside5() + { TrainKerbal(5); } + + /// Training 6 + [KSPEvent(guiActive = false, groupName = __GroupName__, guiName = "#FTL-training-6")] + public void TrainKerbalInside6() + { TrainKerbal(6); } + + /// Training 7 + [KSPEvent(guiActive = false, groupName = __GroupName__, guiName = "#FTL-training-7")] + public void TrainKerbalInside7() + { TrainKerbal(7); } + +#region private functions + private void TrainKerbal(int index) + { + ProtoCrewMember crew = crewArr[index]; + + int lastLog = GetCrewTrainedLevel(crew); + + if (lastLog == 5) + { + ScreenMessages.PostScreenMessage(Localizer.Format("FTL-max", crew.name)); + // ScreenMessages.PostScreenMessage(crew.name + " already had every training."); + return; + } + + float SciCost = CalculateSciCost(levelUpExpTable[lastLog], crew); + if (ResearchAndDevelopment.Instance.Science < SciCost) + { + ScreenMessages.PostScreenMessage(Localizer.Format("FTL-insufficent", Localizer.Format("#FTL-funds-sci"), SciCost, ResearchAndDevelopment.Instance.Science)); + // ScreenMessages.PostScreenMessage("Insufficient Science Points.\n" + "Needed : " + SciCost + ", Remain : " + ResearchAndDevelopment.Instance.Science); + return; + } + ResearchAndDevelopment.Instance.AddScience(-1 * SciCost, TransactionReasons.CrewRecruited); + RemoveKerbalTrainingExp(crew); + crew.flightLog.AddEntry(new FlightLog.Entry(crew.flightLog.Flight, trainingArr[lastLog+1], "Kerbin")); + ScreenMessages.PostScreenMessage(Localizer.Format("#FTL-complete", levelNumber[lastLog], crew.name)); + // ScreenMessages.PostScreenMessage(levelNumber[lastLog] + " Training Complete : " + crew.name); + + } +#endregion + +#region public functions + + /// OnAwake + public override void OnAwake() { base.OnAwake(); } + + /// OnInactive + public override void OnInactive() { base.OnInactive(); } + + /// OnInitialize + public override void OnInitialize() { base.OnInitialize(); } + + /// OnFixedUpdate + public override void OnFixedUpdate() + { + base.OnFixedUpdate(); + UpdatePAWLabel(); + } + + /// OnUpdate + public override void OnUpdate() + { + if (HighLogic.CurrentGame.Mode != Game.Modes.CAREER) return; +>>>>>>> Stashed changes +>>>>>>> Stashed changes Fields["SciRemain"].guiActive = true; SciRemain = (int) ResearchAndDevelopment.Instance.Science; @@ -171,6 +454,118 @@ public override void OnUpdate() #endregion +<<<<<<< Updated upstream +======= +<<<<<<< Updated upstream + private int CalculateSciCost(float baseValue, ProtoCrewMember crew) + { + double calculated = baseValue * TrainFactor * (1 - (GetKerbalTrainingExp(crew) / (TimeFactor * baseValue / 64))); + int ret = 0; + + if (this.vessel.mainBody.bodyName == "Kerbin" && this.vessel.LandedOrSplashed) ret = ((int) (calculated + 0.5)); + else if (this.vessel.LandedOrSplashed) ret = ((int) (calculated * Landed + 0.5)); + else ret = ((int)(calculated * inSpace + 0.5)); + + if (ret < 1) ret = 1; + return ret; + } + + private double GetKerbalTrainingExp(ProtoCrewMember crew) + { + string lastExpStr = "0"; + + FlightLog totalLog = crew.careerLog.CreateCopy(); + totalLog.MergeWith(crew.flightLog.CreateCopy()); + foreach (FlightLog.Entry entry in totalLog.Entries) + if (entry.type == "TrainingExp") lastExpStr = entry.target; + + return double.Parse(lastExpStr); + } + + private void RemoveKerbalTrainingExp(ProtoCrewMember crew) + { + foreach (FlightLog.Entry entry in crew.careerLog.Entries.ToArray()) + if (entry.type == "TrainingExp") + crew.careerLog.Entries.Remove(entry); + foreach (FlightLog.Entry entry in crew.flightLog.Entries.ToArray()) + if (entry.type == "TrainingExp") + crew.flightLog.Entries.Remove(entry); + } + + private int GetCrewTrainedLevel(ProtoCrewMember crew) + { + int lastLog = 0; + FlightLog totalLog = crew.careerLog.CreateCopy(); + totalLog.MergeWith(crew.flightLog.CreateCopy()); + + int deadFlight = -1; + foreach (FlightLog.Entry entry in totalLog.Entries) + { + if (entry.flight <= deadFlight) continue; + if (entry.type == "Die") deadFlight = entry.flight; + } + foreach (FlightLog.Entry entry in totalLog.Entries) + { + if (entry.flight <= deadFlight) continue; + if (lastLog < 1 && entry.type == "Training1") lastLog = 1; + if (lastLog < 2 && entry.type == "Training2") lastLog = 2; + if (lastLog < 3 && entry.type == "Training3") lastLog = 3; + if (lastLog < 4 && entry.type == "Training4") lastLog = 4; + if (lastLog < 5 && entry.type == "Training5") lastLog = 5; + } + + return lastLog; + } + + /// Converts consumption rate into /s /m /hour and returns a formate string. + /// The rate. + /// RateString="Rate" + private static string RateString(double rate) + { + // double rate = double.Parse(value.value); + string sfx = "/s"; + if (rate <= 0.004444444f) + { + rate *= 3600; + sfx = "/h"; + } + else if (rate < 0.2666667f) + { + rate *= 60; + sfx = "/m"; + } + // limit decimal places to 10 and add sfx + //return String.Format(FuelRateFormat, Rate, sfx); + return rate.ToString("###.#####") + " EC" + sfx; + } + /// Module information shown in editors + private string info = string.Empty; + + public override string GetInfo() + { + //? this is what is show in the editor + //? As annoying as it is, pre-parsing the config MUST be done here, because this is called during part loading. + //? The config is only fully parsed after everything is fully loaded (which is why it's in OnStart()) + if (info == string.Empty) + { + info += Localizer.Format("#FTL-manu"); // #FTL-manu = Kerbalnaut Training Industries, Inc. + info += "\n v" + Version.SText; // FTL Version Number text + info += "\n" + Localizer.Format("#FTL-desc"); // #FTL-desc = Train Kerbals using Science Points + } + // #autoLOC_252004 = ElectricCharge + // #FieldTrainingFacility_titl = FieldTrainingFacility + // #FTL-manu = Kerbalnaut Training Industries, Inc. + // #FTL-desc = Train Kerbals using time and Electric Charge + return info; + } + } +======= + + /// Calculate Science Cost + /// + /// + /// +>>>>>>> Stashed changes private int CalculateSciCost(float baseValue, ProtoCrewMember crew) { double calculated = baseValue * TrainFactor * (1 - (GetKerbalTrainingExp(crew) / (TimeFactor * baseValue / 64))); @@ -184,7 +579,14 @@ private int CalculateSciCost(float baseValue, ProtoCrewMember crew) return ret; } +<<<<<<< Updated upstream private double GetKerbalTrainingExp(ProtoCrewMember crew) +======= + /// GetKerbalTrainingExp + /// + /// + private double GetKerbalTrainingExp(ProtoCrewMember crew) +>>>>>>> Stashed changes { string lastExpStr = "0"; @@ -196,7 +598,13 @@ private double GetKerbalTrainingExp(ProtoCrewMember crew) return double.Parse(lastExpStr); } +<<<<<<< Updated upstream private void RemoveKerbalTrainingExp(ProtoCrewMember crew) +======= + /// RemoveKerbalTrainingExp + /// + private void RemoveKerbalTrainingExp(ProtoCrewMember crew) +>>>>>>> Stashed changes { foreach (FlightLog.Entry entry in crew.careerLog.Entries.ToArray()) if (entry.type == "TrainingExp") @@ -206,7 +614,14 @@ private void RemoveKerbalTrainingExp(ProtoCrewMember crew) crew.flightLog.Entries.Remove(entry); } +<<<<<<< Updated upstream private int GetCrewTrainedLevel(ProtoCrewMember crew) +======= + /// GetCrewTrainedLevel + /// + /// + private int GetCrewTrainedLevel(ProtoCrewMember crew) +>>>>>>> Stashed changes { int lastLog = 0; FlightLog totalLog = crew.careerLog.CreateCopy(); @@ -231,9 +646,61 @@ private int GetCrewTrainedLevel(ProtoCrewMember crew) return lastLog; } +<<<<<<< Updated upstream /// Converts consumption rate into /s /m /hour and returns a formate string. /// The rate. /// RateString="Rate" +======= + /// Updates the PAW label. + internal void UpdatePAWLabel() // private + { + string begStr = String.Empty; + string endStr = String.Empty; + + if (HighLogic.CurrentGame.Parameters.CustomParams().coloredPAW) + { + begStr = "<#FEDD00>"; // banana + endStr = ""; + } + + switch (HighLogic.LoadedScene) + { + case GameScenes.FLIGHT: + { + PAWStatus = begStr + Localizer.Format("FTL-nameV", Version.SText) + endStr; + break; + } + case GameScenes.EDITOR: + { + PAWStatus = begStr + Localizer.Format("FTL-nameV", Version.SText) + endStr; + break; + } +/* case GameScenes.LOADING: + break; + case GameScenes.LOADINGBUFFER: + break; + case GameScenes.MAINMENU: + break; + case GameScenes.SETTINGS: + break; + case GameScenes.CREDITS: + break; + case GameScenes.SPACECENTER: + break; + case GameScenes.TRACKSTATION: + break; + case GameScenes.PSYSTEM: + break; + case GameScenes.MISSIONBUILDER: + break; + default: + break;*/ + } + } + + /// Converts consumption rate into /s /m /hour and returns a formate string. + /// The rate.RateString="Rate" +>>>>>>> Stashed changes private static string RateString(double rate) { // double rate = double.Parse(value.value); @@ -252,6 +719,7 @@ private static string RateString(double rate) //return String.Format(FuelRateFormat, Rate, sfx); return rate.ToString("###.#####") + " EC" + sfx; } +<<<<<<< Updated upstream /// Module information shown in editors private string info = string.Empty; @@ -273,4 +741,30 @@ public override string GetInfo() return info; } } +======= + + /// Module information shown in editors + private string info = string.Empty; + + /// create the GetInfo string + public override string GetInfo() + { + if (info == string.Empty) + { + info += Localizer.Format("#FTL-Agency-titl"); + info += "\n" + Localizer.Format("#FTL-Agency-desc") + "\n"; + info += "\n" + Localizer.Format("#FTL-nameV", Version.SText); + info += "\n" + Localizer.Format("#FTL-desc"); + info += "\n\n"; + } + // #FTL-Agency-titl = Kerbalnaut Training Industries, Inc. + // #FTL-Agency-decr = For all your hero training needs! + // #FTL-nameV = Field Training Lab v#.#.#.# + // #FTL-desc = Train Kerbals using Science Points + return info; + // #autoLOC_252004 = ElectricCharge + } + } +>>>>>>> Stashed changes +>>>>>>> Stashed changes } From 41507abc9b262ee2a52b7f39788fdb19591d2262 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:46:40 -0600 Subject: [PATCH 40/84] Create refactor.cfg --- source/refactor.cfg | 65 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 source/refactor.cfg diff --git a/source/refactor.cfg b/source/refactor.cfg new file mode 100644 index 0000000..8b43148 --- /dev/null +++ b/source/refactor.cfg @@ -0,0 +1,65 @@ +Localization +{ + en-us + { + + // settings + #FTL-1000000 = [WIP] Field Training Lab Settings + #FTL-1000001 = [WIP] Field Training A + #FTL-1000002 = [WIP] Field Training B + + #FTL-settings-enable = Enable Field Training Lab? + #FTL-settings-enable-tt = Field Training Labs are enabled if set to yes. + + #FTL-settings-paymentLabel = Payment Label + #FTL-settings-paymentLabel-tt = Science/Reputation/Funds + + #FTL-settings-paymentType = How would you like to pay for your kerbal training? + #FTL-settings-paymentType-tt = Require Science Points to advance + + #FTL-settings-paymentScience = If enabled, requires expending Science points to gain experience. + #FTL-settings-paymentScience-tt = Science : Experience + + #FTL-settings-paymentScienceRatio = Ratio of Science Points per Experience Point. + #FTL-settings-paymentScienceRatio-tt = Require Reputation to advance + + #FTL-settings-paymentRep = If enabled, requires expending Reputation to gain experience. + #FTL-settings-paymentRep-tt = Reputation : Experience + + #FTL-settings-paymentRepRatio = Ratio of Reputation per Experience Point. + #FTL-settings-paymentRepRatio-tt = Require Funds to advance + + #FTL-settings-paymentFunds = If enabled, requires expending Funds to gain experience. + #FTL-settings-paymentFunds-tt = Funds : Experience + + #FTL-settings-paymentFundsRatio = Ratio of Funds per Experience Point. + #FTL-settings-paymentFundsRatio-tt = KSPMail + + #FTL-settings-mail-tt = Recieve a colorful Joyntmail announcing graduation to a new rank?. + + #FTL-settings-pawColor = PAW Color + #FTL-settings-pawColor-tt = allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). + + #FTL-addon-nameFolder = FieldTrainingLab + #FTL-addon-name = Field Training Lab + + #FTL-1st = 1st + #FTL-2nd = 2nd + #FTL-3rd = 3rd + #FTL-4th = 4th + #FTL-5th = 5th + #FTL-null = null + + #FTL-status = Training Lab Status + #FTL-funds-sci = Science Point + + #FTL-training-0 = Training0 + #FTL-training-1 = Training1 + #FTL-training-2 = Training2 + #FTL-training-3 = Training3 + #FTL-training-4 = Training4 + #FTL-training-5 = Training5 + #FTL-training-6 = Training6 + #FTL-training-7 = Training7 + } +} From 4614dff99a2ff13c4fa26f886e1aa5f052106176 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:46:41 -0600 Subject: [PATCH 41/84] Create refactor_de-de.cfg --- source/refactor_de-de.cfg | 49 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 source/refactor_de-de.cfg diff --git a/source/refactor_de-de.cfg b/source/refactor_de-de.cfg new file mode 100644 index 0000000..463d21d --- /dev/null +++ b/source/refactor_de-de.cfg @@ -0,0 +1,49 @@ +Localization +{ + de-de + { + #FTL-1000000 = [de][WIP] Field Training Lab Settings + #FTL-1000001 = [de][WIP] Field Training + #FTL-1000002 = [de][WIP] Field Training + #FTL-settings-enable = [de]Enable Field Training Lab? + #FTL-settings-enable-tt = [de]Field Training Labs are enabled if set to yes. + #FTL-settings-paymentLabel = [de]Payment Label + #FTL-settings-paymentLabel-tt = [de]Science/Reputation/Funds + #FTL-settings-paymentType = [de]How would you like to pay for your kerbal training? + #FTL-settings-paymentType-tt = [de]Require Science Points to advance + #FTL-settings-paymentScience = [de]If enabled, requires expending Science points to gain experience. + #FTL-settings-paymentScience-tt = [de]Science : Experience + #FTL-settings-paymentScienceRatio = [de]Ratio of Science Points per Experience Point. + #FTL-settings-paymentScienceRatio-tt = [de]Require Reputation to advance + #FTL-settings-paymentRep = [de]If enabled, requires expending Reputation to gain experience. + #FTL-settings-paymentRep-tt = [de]Reputation : Experience + #FTL-settings-paymentRepRatio = [de]Ratio of Reputation per Experience Point. + #FTL-settings-paymentRepRatio-tt = [de]Require Funds to advance + #FTL-settings-paymentFunds = [de]If enabled, requires expending Funds to gain experience. + #FTL-settings-paymentFunds-tt = [de]Funds : Experience + #FTL-settings-paymentFundsRatio = [de]Ratio of Funds per Experience Point. + #FTL-settings-paymentFundsRatio-tt = [de]KSPMail + #FTL-settings-mail-tt = [de]Recieve a colorful Joyntmail announcing graduation to a new rank?. + #FTL-settings-pawColor = [de]PAW Color + #FTL-settings-pawColor-tt = [de]allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). + #FTL-addon-nameFolder = [de]FieldTrainingLab + #FTL-addon-name = [de]Field Training Lab + #FTL-1st = [de]1st + #FTL-2nd = [de]2nd + #FTL-null = [de]null + #FTL-5th = [de]5th + #FTL-4th = [de]4th + #FTL-3rd = [de]3rd + #FTL-status = [de]Training Lab Status + #FTL-funds-sci = [de]Science Point + #FTL-training-0 = [de]Training0 + #FTL-training-1 = [de]Training1 + #FTL-training-2 = [de]Training2 + #FTL-training-3 = [de]Training3 + #FTL-training-4 = [de]Training4 + #FTL-training-5 = [de]Training5 + #FTL-training-6 = [de]Training6 + #FTL-training-7 = [de]Training7 + #FTL-1000042 = [de]Training1 + } +} From ae8fb581235acb619f720a4133326f5302e0ecb4 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:46:42 -0600 Subject: [PATCH 42/84] Create refactor_en-us.cfg --- source/refactor_en-us.cfg | 49 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 source/refactor_en-us.cfg diff --git a/source/refactor_en-us.cfg b/source/refactor_en-us.cfg new file mode 100644 index 0000000..7923484 --- /dev/null +++ b/source/refactor_en-us.cfg @@ -0,0 +1,49 @@ +Localization +{ + en-us + { + #FTL-1000000 = [WIP] Field Training Lab Settings + #FTL-1000001 = [WIP] Field Training + #FTL-1000002 = [WIP] Field Training + #FTL-settings-enable = Enable Field Training Lab? + #FTL-settings-enable-tt = Field Training Labs are enabled if set to yes. + #FTL-settings-paymentLabel = Payment Label + #FTL-settings-paymentLabel-tt = Science/Reputation/Funds + #FTL-settings-paymentType = How would you like to pay for your kerbal training? + #FTL-settings-paymentType-tt = Require Science Points to advance + #FTL-settings-paymentScience = If enabled, requires expending Science points to gain experience. + #FTL-settings-paymentScience-tt = Science : Experience + #FTL-settings-paymentScienceRatio = Ratio of Science Points per Experience Point. + #FTL-settings-paymentScienceRatio-tt = Require Reputation to advance + #FTL-settings-paymentRep = If enabled, requires expending Reputation to gain experience. + #FTL-settings-paymentRep-tt = Reputation : Experience + #FTL-settings-paymentRepRatio = Ratio of Reputation per Experience Point. + #FTL-settings-paymentRepRatio-tt = Require Funds to advance + #FTL-settings-paymentFunds = If enabled, requires expending Funds to gain experience. + #FTL-settings-paymentFunds-tt = Funds : Experience + #FTL-settings-paymentFundsRatio = Ratio of Funds per Experience Point. + #FTL-settings-paymentFundsRatio-tt = KSPMail + #FTL-settings-mail-tt = Recieve a colorful Joyntmail announcing graduation to a new rank?. + #FTL-settings-pawColor = PAW Color + #FTL-settings-pawColor-tt = allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). + #FTL-addon-nameFolder = FieldTrainingLab + #FTL-addon-name = Field Training Lab + #FTL-1st = 1st + #FTL-2nd = 2nd + #FTL-null = null + #FTL-5th = 5th + #FTL-4th = 4th + #FTL-3rd = 3rd + #FTL-status = Training Lab Status + #FTL-funds-sci = Science Point + #FTL-training-0 = Training0 + #FTL-training-1 = Training1 + #FTL-training-2 = Training2 + #FTL-training-3 = Training3 + #FTL-training-4 = Training4 + #FTL-training-5 = Training5 + #FTL-training-6 = Training6 + #FTL-training-7 = Training7 + #FTL-1000042 = Training1 + } +} From cba7c1c7b7f3e9de51ab1e65cce0c8b164b49bf0 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:46:43 -0600 Subject: [PATCH 43/84] Create refactor_es-es.cfg --- source/refactor_es-es.cfg | 49 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 source/refactor_es-es.cfg diff --git a/source/refactor_es-es.cfg b/source/refactor_es-es.cfg new file mode 100644 index 0000000..7f024e4 --- /dev/null +++ b/source/refactor_es-es.cfg @@ -0,0 +1,49 @@ +Localization +{ + es-es + { + #FTL-1000000 = [es][WIP] Field Training Lab Settings + #FTL-1000001 = [es][WIP] Field Training + #FTL-1000002 = [es][WIP] Field Training + #FTL-settings-enable = [es]Enable Field Training Lab? + #FTL-settings-enable-tt = [es]Field Training Labs are enabled if set to yes. + #FTL-settings-paymentLabel = [es]Payment Label + #FTL-settings-paymentLabel-tt = [es]Science/Reputation/Funds + #FTL-settings-paymentType = [es]How would you like to pay for your kerbal training? + #FTL-settings-paymentType-tt = [es]Require Science Points to advance + #FTL-settings-paymentScience = [es]If enabled, requires expending Science points to gain experience. + #FTL-settings-paymentScience-tt = [es]Science : Experience + #FTL-settings-paymentScienceRatio = [es]Ratio of Science Points per Experience Point. + #FTL-settings-paymentScienceRatio-tt = [es]Require Reputation to advance + #FTL-settings-paymentRep = [es]If enabled, requires expending Reputation to gain experience. + #FTL-settings-paymentRep-tt = [es]Reputation : Experience + #FTL-settings-paymentRepRatio = [es]Ratio of Reputation per Experience Point. + #FTL-settings-paymentRepRatio-tt = [es]Require Funds to advance + #FTL-settings-paymentFunds = [es]If enabled, requires expending Funds to gain experience. + #FTL-settings-paymentFunds-tt = [es]Funds : Experience + #FTL-settings-paymentFundsRatio = [es]Ratio of Funds per Experience Point. + #FTL-settings-paymentFundsRatio-tt = [es]KSPMail + #FTL-settings-mail-tt = [es]Recieve a colorful Joyntmail announcing graduation to a new rank?. + #FTL-settings-pawColor = [es]PAW Color + #FTL-settings-pawColor-tt = [es]allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). + #FTL-addon-nameFolder = [es]FieldTrainingLab + #FTL-addon-name = [es]Field Training Lab + #FTL-1st = [es]1st + #FTL-2nd = [es]2nd + #FTL-null = [es]null + #FTL-5th = [es]5th + #FTL-4th = [es]4th + #FTL-3rd = [es]3rd + #FTL-status = [es]Training Lab Status + #FTL-funds-sci = [es]Science Point + #FTL-training-0 = [es]Training0 + #FTL-training-1 = [es]Training1 + #FTL-training-2 = [es]Training2 + #FTL-training-3 = [es]Training3 + #FTL-training-4 = [es]Training4 + #FTL-training-5 = [es]Training5 + #FTL-training-6 = [es]Training6 + #FTL-training-7 = [es]Training7 + #FTL-1000042 = [es]Training1 + } +} From 6aef034e7b784d84fda7b499b9d94ec1ad0be3f7 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:46:44 -0600 Subject: [PATCH 44/84] Create refactor_fr-fr.cfg --- source/refactor_fr-fr.cfg | 49 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 source/refactor_fr-fr.cfg diff --git a/source/refactor_fr-fr.cfg b/source/refactor_fr-fr.cfg new file mode 100644 index 0000000..9337bbe --- /dev/null +++ b/source/refactor_fr-fr.cfg @@ -0,0 +1,49 @@ +Localization +{ + fr-fr + { + #FTL-1000000 = [fr][WIP] Field Training Lab Settings + #FTL-1000001 = [fr][WIP] Field Training + #FTL-1000002 = [fr][WIP] Field Training + #FTL-settings-enable = [fr]Enable Field Training Lab? + #FTL-settings-enable-tt = [fr]Field Training Labs are enabled if set to yes. + #FTL-settings-paymentLabel = [fr]Payment Label + #FTL-settings-paymentLabel-tt = [fr]Science/Reputation/Funds + #FTL-settings-paymentType = [fr]How would you like to pay for your kerbal training? + #FTL-settings-paymentType-tt = [fr]Require Science Points to advance + #FTL-settings-paymentScience = [fr]If enabled, requires expending Science points to gain experience. + #FTL-settings-paymentScience-tt = [fr]Science : Experience + #FTL-settings-paymentScienceRatio = [fr]Ratio of Science Points per Experience Point. + #FTL-settings-paymentScienceRatio-tt = [fr]Require Reputation to advance + #FTL-settings-paymentRep = [fr]If enabled, requires expending Reputation to gain experience. + #FTL-settings-paymentRep-tt = [fr]Reputation : Experience + #FTL-settings-paymentRepRatio = [fr]Ratio of Reputation per Experience Point. + #FTL-settings-paymentRepRatio-tt = [fr]Require Funds to advance + #FTL-settings-paymentFunds = [fr]If enabled, requires expending Funds to gain experience. + #FTL-settings-paymentFunds-tt = [fr]Funds : Experience + #FTL-settings-paymentFundsRatio = [fr]Ratio of Funds per Experience Point. + #FTL-settings-paymentFundsRatio-tt = [fr]KSPMail + #FTL-settings-mail-tt = [fr]Recieve a colorful Joyntmail announcing graduation to a new rank?. + #FTL-settings-pawColor = [fr]PAW Color + #FTL-settings-pawColor-tt = [fr]allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). + #FTL-addon-nameFolder = [fr]FieldTrainingLab + #FTL-addon-name = [fr]Field Training Lab + #FTL-1st = [fr]1st + #FTL-2nd = [fr]2nd + #FTL-null = [fr]null + #FTL-5th = [fr]5th + #FTL-4th = [fr]4th + #FTL-3rd = [fr]3rd + #FTL-status = [fr]Training Lab Status + #FTL-funds-sci = [fr]Science Point + #FTL-training-0 = [fr]Training0 + #FTL-training-1 = [fr]Training1 + #FTL-training-2 = [fr]Training2 + #FTL-training-3 = [fr]Training3 + #FTL-training-4 = [fr]Training4 + #FTL-training-5 = [fr]Training5 + #FTL-training-6 = [fr]Training6 + #FTL-training-7 = [fr]Training7 + #FTL-1000042 = [fr]Training1 + } +} From 2de840ac1e0c81cd94949fc7e81af658cdde1881 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:46:44 -0600 Subject: [PATCH 45/84] Create refactor_it-it.cfg --- source/refactor_it-it.cfg | 49 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 source/refactor_it-it.cfg diff --git a/source/refactor_it-it.cfg b/source/refactor_it-it.cfg new file mode 100644 index 0000000..10e4b86 --- /dev/null +++ b/source/refactor_it-it.cfg @@ -0,0 +1,49 @@ +Localization +{ + it-it + { + #FTL-1000000 = [it][WIP] Field Training Lab Settings + #FTL-1000001 = [it][WIP] Field Training + #FTL-1000002 = [it][WIP] Field Training + #FTL-settings-enable = [it]Enable Field Training Lab? + #FTL-settings-enable-tt = [it]Field Training Labs are enabled if set to yes. + #FTL-settings-paymentLabel = [it]Payment Label + #FTL-settings-paymentLabel-tt = [it]Science/Reputation/Funds + #FTL-settings-paymentType = [it]How would you like to pay for your kerbal training? + #FTL-settings-paymentType-tt = [it]Require Science Points to advance + #FTL-settings-paymentScience = [it]If enabled, requires expending Science points to gain experience. + #FTL-settings-paymentScience-tt = [it]Science : Experience + #FTL-settings-paymentScienceRatio = [it]Ratio of Science Points per Experience Point. + #FTL-settings-paymentScienceRatio-tt = [it]Require Reputation to advance + #FTL-settings-paymentRep = [it]If enabled, requires expending Reputation to gain experience. + #FTL-settings-paymentRep-tt = [it]Reputation : Experience + #FTL-settings-paymentRepRatio = [it]Ratio of Reputation per Experience Point. + #FTL-settings-paymentRepRatio-tt = [it]Require Funds to advance + #FTL-settings-paymentFunds = [it]If enabled, requires expending Funds to gain experience. + #FTL-settings-paymentFunds-tt = [it]Funds : Experience + #FTL-settings-paymentFundsRatio = [it]Ratio of Funds per Experience Point. + #FTL-settings-paymentFundsRatio-tt = [it]KSPMail + #FTL-settings-mail-tt = [it]Recieve a colorful Joyntmail announcing graduation to a new rank?. + #FTL-settings-pawColor = [it]PAW Color + #FTL-settings-pawColor-tt = [it]allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). + #FTL-addon-nameFolder = [it]FieldTrainingLab + #FTL-addon-name = [it]Field Training Lab + #FTL-1st = [it]1st + #FTL-2nd = [it]2nd + #FTL-null = [it]null + #FTL-5th = [it]5th + #FTL-4th = [it]4th + #FTL-3rd = [it]3rd + #FTL-status = [it]Training Lab Status + #FTL-funds-sci = [it]Science Point + #FTL-training-0 = [it]Training0 + #FTL-training-1 = [it]Training1 + #FTL-training-2 = [it]Training2 + #FTL-training-3 = [it]Training3 + #FTL-training-4 = [it]Training4 + #FTL-training-5 = [it]Training5 + #FTL-training-6 = [it]Training6 + #FTL-training-7 = [it]Training7 + #FTL-1000042 = [it]Training1 + } +} From 33f74c744c9e1044840f6c996b75bcc3b16c67bc Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:46:45 -0600 Subject: [PATCH 46/84] Create refactor_ja.cfg --- source/refactor_ja.cfg | 49 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 source/refactor_ja.cfg diff --git a/source/refactor_ja.cfg b/source/refactor_ja.cfg new file mode 100644 index 0000000..45383cc --- /dev/null +++ b/source/refactor_ja.cfg @@ -0,0 +1,49 @@ +Localization +{ + ja + { + #FTL-1000000 = [ja][WIP] Field Training Lab Settings + #FTL-1000001 = [ja][WIP] Field Training + #FTL-1000002 = [ja][WIP] Field Training + #FTL-settings-enable = [ja]Enable Field Training Lab? + #FTL-settings-enable-tt = [ja]Field Training Labs are enabled if set to yes. + #FTL-settings-paymentLabel = [ja]Payment Label + #FTL-settings-paymentLabel-tt = [ja]Science/Reputation/Funds + #FTL-settings-paymentType = [ja]How would you like to pay for your kerbal training? + #FTL-settings-paymentType-tt = [ja]Require Science Points to advance + #FTL-settings-paymentScience = [ja]If enabled, requires expending Science points to gain experience. + #FTL-settings-paymentScience-tt = [ja]Science : Experience + #FTL-settings-paymentScienceRatio = [ja]Ratio of Science Points per Experience Point. + #FTL-settings-paymentScienceRatio-tt = [ja]Require Reputation to advance + #FTL-settings-paymentRep = [ja]If enabled, requires expending Reputation to gain experience. + #FTL-settings-paymentRep-tt = [ja]Reputation : Experience + #FTL-settings-paymentRepRatio = [ja]Ratio of Reputation per Experience Point. + #FTL-settings-paymentRepRatio-tt = [ja]Require Funds to advance + #FTL-settings-paymentFunds = [ja]If enabled, requires expending Funds to gain experience. + #FTL-settings-paymentFunds-tt = [ja]Funds : Experience + #FTL-settings-paymentFundsRatio = [ja]Ratio of Funds per Experience Point. + #FTL-settings-paymentFundsRatio-tt = [ja]KSPMail + #FTL-settings-mail-tt = [ja]Recieve a colorful Joyntmail announcing graduation to a new rank?. + #FTL-settings-pawColor = [ja]PAW Color + #FTL-settings-pawColor-tt = [ja]allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). + #FTL-addon-nameFolder = [ja]FieldTrainingLab + #FTL-addon-name = [ja]Field Training Lab + #FTL-1st = [ja]1st + #FTL-2nd = [ja]2nd + #FTL-null = [ja]null + #FTL-5th = [ja]5th + #FTL-4th = [ja]4th + #FTL-3rd = [ja]3rd + #FTL-status = [ja]Training Lab Status + #FTL-funds-sci = [ja]Science Point + #FTL-training-0 = [ja]Training0 + #FTL-training-1 = [ja]Training1 + #FTL-training-2 = [ja]Training2 + #FTL-training-3 = [ja]Training3 + #FTL-training-4 = [ja]Training4 + #FTL-training-5 = [ja]Training5 + #FTL-training-6 = [ja]Training6 + #FTL-training-7 = [ja]Training7 + #FTL-1000042 = [ja]Training1 + } +} From e1d5a98dbe442307638f7ff4f6700a54ec48a743 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:46:46 -0600 Subject: [PATCH 47/84] Create refactor_pt-br.cfg --- source/refactor_pt-br.cfg | 49 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 source/refactor_pt-br.cfg diff --git a/source/refactor_pt-br.cfg b/source/refactor_pt-br.cfg new file mode 100644 index 0000000..1a4cc9a --- /dev/null +++ b/source/refactor_pt-br.cfg @@ -0,0 +1,49 @@ +Localization +{ + pt-br + { + #FTL-1000000 = [pt][WIP] Field Training Lab Settings + #FTL-1000001 = [pt][WIP] Field Training + #FTL-1000002 = [pt][WIP] Field Training + #FTL-settings-enable = [pt]Enable Field Training Lab? + #FTL-settings-enable-tt = [pt]Field Training Labs are enabled if set to yes. + #FTL-settings-paymentLabel = [pt]Payment Label + #FTL-settings-paymentLabel-tt = [pt]Science/Reputation/Funds + #FTL-settings-paymentType = [pt]How would you like to pay for your kerbal training? + #FTL-settings-paymentType-tt = [pt]Require Science Points to advance + #FTL-settings-paymentScience = [pt]If enabled, requires expending Science points to gain experience. + #FTL-settings-paymentScience-tt = [pt]Science : Experience + #FTL-settings-paymentScienceRatio = [pt]Ratio of Science Points per Experience Point. + #FTL-settings-paymentScienceRatio-tt = [pt]Require Reputation to advance + #FTL-settings-paymentRep = [pt]If enabled, requires expending Reputation to gain experience. + #FTL-settings-paymentRep-tt = [pt]Reputation : Experience + #FTL-settings-paymentRepRatio = [pt]Ratio of Reputation per Experience Point. + #FTL-settings-paymentRepRatio-tt = [pt]Require Funds to advance + #FTL-settings-paymentFunds = [pt]If enabled, requires expending Funds to gain experience. + #FTL-settings-paymentFunds-tt = [pt]Funds : Experience + #FTL-settings-paymentFundsRatio = [pt]Ratio of Funds per Experience Point. + #FTL-settings-paymentFundsRatio-tt = [pt]KSPMail + #FTL-settings-mail-tt = [pt]Recieve a colorful Joyntmail announcing graduation to a new rank?. + #FTL-settings-pawColor = [pt]PAW Color + #FTL-settings-pawColor-tt = [pt]allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). + #FTL-addon-nameFolder = [pt]FieldTrainingLab + #FTL-addon-name = [pt]Field Training Lab + #FTL-1st = [pt]1st + #FTL-2nd = [pt]2nd + #FTL-null = [pt]null + #FTL-5th = [pt]5th + #FTL-4th = [pt]4th + #FTL-3rd = [pt]3rd + #FTL-status = [pt]Training Lab Status + #FTL-funds-sci = [pt]Science Point + #FTL-training-0 = [pt]Training0 + #FTL-training-1 = [pt]Training1 + #FTL-training-2 = [pt]Training2 + #FTL-training-3 = [pt]Training3 + #FTL-training-4 = [pt]Training4 + #FTL-training-5 = [pt]Training5 + #FTL-training-6 = [pt]Training6 + #FTL-training-7 = [pt]Training7 + #FTL-1000042 = [pt]Training1 + } +} From 55dd8920b227ed0144d866ad21fb4d80522fe893 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:46:47 -0600 Subject: [PATCH 48/84] Create refactor_ru.cfg --- source/refactor_ru.cfg | 49 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 source/refactor_ru.cfg diff --git a/source/refactor_ru.cfg b/source/refactor_ru.cfg new file mode 100644 index 0000000..5812b0a --- /dev/null +++ b/source/refactor_ru.cfg @@ -0,0 +1,49 @@ +Localization +{ + ru + { + #FTL-1000000 = [ru][WIP] Field Training Lab Settings + #FTL-1000001 = [ru][WIP] Field Training + #FTL-1000002 = [ru][WIP] Field Training + #FTL-settings-enable = [ru]Enable Field Training Lab? + #FTL-settings-enable-tt = [ru]Field Training Labs are enabled if set to yes. + #FTL-settings-paymentLabel = [ru]Payment Label + #FTL-settings-paymentLabel-tt = [ru]Science/Reputation/Funds + #FTL-settings-paymentType = [ru]How would you like to pay for your kerbal training? + #FTL-settings-paymentType-tt = [ru]Require Science Points to advance + #FTL-settings-paymentScience = [ru]If enabled, requires expending Science points to gain experience. + #FTL-settings-paymentScience-tt = [ru]Science : Experience + #FTL-settings-paymentScienceRatio = [ru]Ratio of Science Points per Experience Point. + #FTL-settings-paymentScienceRatio-tt = [ru]Require Reputation to advance + #FTL-settings-paymentRep = [ru]If enabled, requires expending Reputation to gain experience. + #FTL-settings-paymentRep-tt = [ru]Reputation : Experience + #FTL-settings-paymentRepRatio = [ru]Ratio of Reputation per Experience Point. + #FTL-settings-paymentRepRatio-tt = [ru]Require Funds to advance + #FTL-settings-paymentFunds = [ru]If enabled, requires expending Funds to gain experience. + #FTL-settings-paymentFunds-tt = [ru]Funds : Experience + #FTL-settings-paymentFundsRatio = [ru]Ratio of Funds per Experience Point. + #FTL-settings-paymentFundsRatio-tt = [ru]KSPMail + #FTL-settings-mail-tt = [ru]Recieve a colorful Joyntmail announcing graduation to a new rank?. + #FTL-settings-pawColor = [ru]PAW Color + #FTL-settings-pawColor-tt = [ru]allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). + #FTL-addon-nameFolder = [ru]FieldTrainingLab + #FTL-addon-name = [ru]Field Training Lab + #FTL-1st = [ru]1st + #FTL-2nd = [ru]2nd + #FTL-null = [ru]null + #FTL-5th = [ru]5th + #FTL-4th = [ru]4th + #FTL-3rd = [ru]3rd + #FTL-status = [ru]Training Lab Status + #FTL-funds-sci = [ru]Science Point + #FTL-training-0 = [ru]Training0 + #FTL-training-1 = [ru]Training1 + #FTL-training-2 = [ru]Training2 + #FTL-training-3 = [ru]Training3 + #FTL-training-4 = [ru]Training4 + #FTL-training-5 = [ru]Training5 + #FTL-training-6 = [ru]Training6 + #FTL-training-7 = [ru]Training7 + #FTL-1000042 = [ru]Training1 + } +} From c592a05c6db58ae39903599f3c0f3fda911fd88e Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:46:48 -0600 Subject: [PATCH 49/84] Create refactor_zh-cn.cfg --- source/refactor_zh-cn.cfg | 49 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 source/refactor_zh-cn.cfg diff --git a/source/refactor_zh-cn.cfg b/source/refactor_zh-cn.cfg new file mode 100644 index 0000000..0715f70 --- /dev/null +++ b/source/refactor_zh-cn.cfg @@ -0,0 +1,49 @@ +Localization +{ + zh-cn + { + #FTL-1000000 = [zh][WIP] Field Training Lab Settings + #FTL-1000001 = [zh][WIP] Field Training + #FTL-1000002 = [zh][WIP] Field Training + #FTL-settings-enable = [zh]Enable Field Training Lab? + #FTL-settings-enable-tt = [zh]Field Training Labs are enabled if set to yes. + #FTL-settings-paymentLabel = [zh]Payment Label + #FTL-settings-paymentLabel-tt = [zh]Science/Reputation/Funds + #FTL-settings-paymentType = [zh]How would you like to pay for your kerbal training? + #FTL-settings-paymentType-tt = [zh]Require Science Points to advance + #FTL-settings-paymentScience = [zh]If enabled, requires expending Science points to gain experience. + #FTL-settings-paymentScience-tt = [zh]Science : Experience + #FTL-settings-paymentScienceRatio = [zh]Ratio of Science Points per Experience Point. + #FTL-settings-paymentScienceRatio-tt = [zh]Require Reputation to advance + #FTL-settings-paymentRep = [zh]If enabled, requires expending Reputation to gain experience. + #FTL-settings-paymentRep-tt = [zh]Reputation : Experience + #FTL-settings-paymentRepRatio = [zh]Ratio of Reputation per Experience Point. + #FTL-settings-paymentRepRatio-tt = [zh]Require Funds to advance + #FTL-settings-paymentFunds = [zh]If enabled, requires expending Funds to gain experience. + #FTL-settings-paymentFunds-tt = [zh]Funds : Experience + #FTL-settings-paymentFundsRatio = [zh]Ratio of Funds per Experience Point. + #FTL-settings-paymentFundsRatio-tt = [zh]KSPMail + #FTL-settings-mail-tt = [zh]Recieve a colorful Joyntmail announcing graduation to a new rank?. + #FTL-settings-pawColor = [zh]PAW Color + #FTL-settings-pawColor-tt = [zh]allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). + #FTL-addon-nameFolder = [zh]FieldTrainingLab + #FTL-addon-name = [zh]Field Training Lab + #FTL-1st = [zh]1st + #FTL-2nd = [zh]2nd + #FTL-null = [zh]null + #FTL-5th = [zh]5th + #FTL-4th = [zh]4th + #FTL-3rd = [zh]3rd + #FTL-status = [zh]Training Lab Status + #FTL-funds-sci = [zh]Science Point + #FTL-training-0 = [zh]Training0 + #FTL-training-1 = [zh]Training1 + #FTL-training-2 = [zh]Training2 + #FTL-training-3 = [zh]Training3 + #FTL-training-4 = [zh]Training4 + #FTL-training-5 = [zh]Training5 + #FTL-training-6 = [zh]Training6 + #FTL-training-7 = [zh]Training7 + #FTL-1000042 = [zh]Training1 + } +} From 7601d1213fdb528b5d6f50d78caf34ba48e44c60 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:46:49 -0600 Subject: [PATCH 50/84] Update Settings.cs --- source/Settings.cs | 120 +++++++++++++++++++++------------------------ 1 file changed, 55 insertions(+), 65 deletions(-) diff --git a/source/Settings.cs b/source/Settings.cs index d03e69f..bb49b68 100644 --- a/source/Settings.cs +++ b/source/Settings.cs @@ -17,60 +17,56 @@ * along with this program. If not, see . */ -/*using System; -using System.Collections; +using System; +using UnityEngine; using System.Collections.Generic; +using System.Collections; using System.Reflection; -using UnityEngine; using KSP.Localization; -// This will add a tab to the Stock Settings in the Difficulty settings called "On Demand Fuel Cells" -// To use, reference the setting using the following: -// -// HighLogic.CurrentGame.Parameters.CustomParams().needsECtoStart -// -// As it is set up, the option is disabled, so in order to enable it, the player would have -// to deliberately go in and change it -// namespace FieldTrainingLab { // http://forum.kerbalspaceprogram.com/index.php?/topic/147576-modders-notes-for-ksp-12/#comment-2754813 // search for "Mod integration into Stock Settings - public class ODFC_Options : GameParameters.CustomParameterNode - { public override string Title { get { return "[WIP] Field Training Lab Settings"; } } + /// Game Settings FTL Options + public class FTL_Options : GameParameters.CustomParameterNode + { + /// Settings Title + public override string Title { get { return "#FTL-1000000"; } } // #FTL-1000000 = [WIP] Field Training Lab Settings + /// Settings Game Mode public override GameParameters.GameMode GameMode { get { return GameParameters.GameMode.ANY; } } - public override string Section { get { return "[WIP] Field Training"; } } - public override string DisplaySection { get { return "[WIP] Field Training"; } } + /// Settings Section + public override string Section { get { return "#FTL-1000001"; } } // #FTL-1000001 = [WIP] Field Training + /// Settings Display Section + public override string DisplaySection { get { return "#FTL-1000002"; } } // #FTL-1000002 = [WIP] Field Training + /// Settings Section Order public override int SectionOrder { get { return 1; } } - - [GameParameters.CustomParameterUI("Enable Field Training Lab?", - toolTip = "Field Training Labs are enabled if set to yes.", - newGameOnly = false, - unlockedDuringMission = true)] + /// Settings module master enable/disable + [GameParameters.CustomParameterUI("#FTL-settings-enable", // #FTL-settings-enable = Enable Field Training Lab? + toolTip = "#FTL-settings-enable-tt", // #FTL-settings-enable-tt = Field Training Labs are enabled if set to yes. + newGameOnly = false, unlockedDuringMission = true)] public bool enableFTL = true; - [GameParameters.CustomStringParameterUI("Payment Label", - toolTip = "Science/Reputation/Funds", + /// Settings Payment + [GameParameters.CustomStringParameterUI("#FTL-settings-paymentLabel", // #FTL-settings-paymentLabel = Payment Label + toolTip = "#FTL-settings-paymentLabel-tt", // #FTL-settings-paymentLabel-tt = Science/Reputation/Funds autoPersistance = true, lines = 2, - title = "How would you like to pay for your kerbal training?", + title = "#FTL-settings-paymentType", // #FTL-settings-paymentType = How would you like to pay for your kerbal training? unlockedDuringMission = true)] public string UIstring = ""; - /// require science points - /// to gain experience - [GameParameters.CustomParameterUI("Require Science Points to advance", - toolTip = "If enabled, requires expending Science points to gain experience.", - newGameOnly = false, - unlockedDuringMission = true)] + ///require science points to gain experience + [GameParameters.CustomParameterUI("#FTL-settings-paymentType-tt", // #FTL-settings-paymentType-tt = Require Science Points to advance + toolTip = "#FTL-settings-paymentScience", // #FTL-settings-paymentScience = If enabled, requires expending Science points to gain experience. + newGameOnly = false, unlockedDuringMission = true)] public bool requireSciencePoints = true; - /// number of science points per - /// experience point - [GameParameters.CustomFloatParameterUI("Science : Experience", - toolTip = "Ratio of Science Points per Experience Point.", + ///number of science points per experience point + [GameParameters.CustomFloatParameterUI("#FTL-settings-paymentScience-tt", // #FTL-settings-paymentScience-tt = Science : Experience + toolTip = "#FTL-settings-paymentScienceRatio", // #FTL-settings-paymentScienceRatio = Ratio of Science Points per Experience Point. newGameOnly = false, unlockedDuringMission = true, minValue = 0.0f, @@ -78,36 +74,30 @@ public class ODFC_Options : GameParameters.CustomParameterNode stepCount = 1)] public double costScience = 20.0f; - /// require Reputation - /// to gain experience - [GameParameters.CustomParameterUI("Require Reputation to advance", - toolTip = "If enabled, requires expending Reputation to gain experience.", - newGameOnly = false, - unlockedDuringMission = true)] + ///require Reputation to gain experience + [GameParameters.CustomParameterUI("#FTL-settings-paymentScienceRatio-tt", // #FTL-settings-paymentScienceRatio-tt = Require Reputation to advance + toolTip = "#FTL-settings-paymentRep", // #FTL-settings-paymentRep = If enabled, requires expending Reputation to gain experience. + newGameOnly = false, unlockedDuringMission = true)] public bool requireReputationPoints = false; - /// number of Reputation per - /// experience point - [GameParameters.CustomFloatParameterUI("Reputation : Experience", - toolTip = "Ratio of Reputation per Experience Point.", + ///number of Reputation per experience point + [GameParameters.CustomFloatParameterUI("#FTL-settings-paymentRep-tt", // #FTL-settings-paymentRep-tt = Reputation : Experience + toolTip = "#FTL-settings-paymentRepRatio", // #FTL-settings-paymentRepRatio = Ratio of Reputation per Experience Point. newGameOnly = false, unlockedDuringMission = true, minValue = 0.0f, maxValue = 50.0f)] public double costReputation = 0.1f; - /// require Funds - /// to gain experience - [GameParameters.CustomParameterUI("Require Funds to advance", - toolTip = "If enabled, requires expending Funds to gain experience.", - newGameOnly = false, - unlockedDuringMission = true)] + ///require Funds to gain experience + [GameParameters.CustomParameterUI("#FTL-settings-paymentRepRatio-tt", // #FTL-settings-paymentRepRatio-tt = Require Funds to advance + toolTip = "#FTL-settings-paymentFunds", // #FTL-settings-paymentFunds = If enabled, requires expending Funds to gain experience. + newGameOnly = false, unlockedDuringMission = true)] public bool requireFunds = false; - /// amount of Funds per - /// experience point - [GameParameters.CustomFloatParameterUI("Funds : Experience", - toolTip = "Ratio of Funds per Experience Point.", + ///amount of Funds per experience point + [GameParameters.CustomFloatParameterUI("#FTL-settings-paymentFunds-tt", // #FTL-settings-paymentFunds-tt = Funds : Experience + toolTip = "#FTL-settings-paymentFundsRatio", // #FTL-settings-paymentFundsRatio = Ratio of Funds per Experience Point. newGameOnly = false, unlockedDuringMission = true, minValue = 0.0f, @@ -115,24 +105,26 @@ public class ODFC_Options : GameParameters.CustomParameterNode stepCount = 1)] public double costFunds = 1000f; - [GameParameters.CustomParameterUI("KSPMail", - toolTip = "Recieve a colorful Joyntmail announcing graduation to a new rank?.", - newGameOnly = false, - unlockedDuringMission = true)] + /// Settings - KSP Mail + [GameParameters.CustomParameterUI("#FTL-settings-paymentFundsRatio-tt", // #FTL-settings-paymentFundsRatio-tt = KSPMail + toolTip = "#FTL-settings-mail-tt", // #FTL-settings-mail-tt = Recieve a colorful Joyntmail announcing graduation to a new rank?. + newGameOnly = false, unlockedDuringMission = true)] public bool KSPMail = true; - [GameParameters.CustomParameterUI("PAW Color", - toolTip = "allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button).", - newGameOnly = false, - unlockedDuringMission = true)] - public bool coloredPAWFTL = true; + /// Settings allow colored PAW + [GameParameters.CustomParameterUI("#FTL-settings-pawColor", // #FTL-settings-pawColor = PAW Color + toolTip = "#FTL-settings-pawColor-tt", // #FTL-settings-pawColor-tt = allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). + newGameOnly = false, unlockedDuringMission = true)] + public bool coloredPAW = true; // If you want to have some of the game settings default to enabled, change // the "if false" to "if true" and set the values as you like #if true + /// Had Presets? public override bool HasPresets { get { return true; } } + /// Difficulty Presets public override void SetDifficultyPreset(GameParameters.Preset preset) { Debug.Log("Setting difficulty preset"); @@ -193,6 +185,4 @@ public override void SetDifficultyPreset(GameParameters.Preset preset) { } public override bool Interactible(MemberInfo member, GameParameters parameters) { return true; } public override IList ValidValues(MemberInfo member) { return null; } } -} - - */ \ No newline at end of file +} \ No newline at end of file From 24a452eb8bea4dee1160d07743b75c9b13c03183 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:47:25 -0600 Subject: [PATCH 51/84] Delete refactor.cfg --- source/refactor.cfg | 65 --------------------------------------------- 1 file changed, 65 deletions(-) delete mode 100644 source/refactor.cfg diff --git a/source/refactor.cfg b/source/refactor.cfg deleted file mode 100644 index 8b43148..0000000 --- a/source/refactor.cfg +++ /dev/null @@ -1,65 +0,0 @@ -Localization -{ - en-us - { - - // settings - #FTL-1000000 = [WIP] Field Training Lab Settings - #FTL-1000001 = [WIP] Field Training A - #FTL-1000002 = [WIP] Field Training B - - #FTL-settings-enable = Enable Field Training Lab? - #FTL-settings-enable-tt = Field Training Labs are enabled if set to yes. - - #FTL-settings-paymentLabel = Payment Label - #FTL-settings-paymentLabel-tt = Science/Reputation/Funds - - #FTL-settings-paymentType = How would you like to pay for your kerbal training? - #FTL-settings-paymentType-tt = Require Science Points to advance - - #FTL-settings-paymentScience = If enabled, requires expending Science points to gain experience. - #FTL-settings-paymentScience-tt = Science : Experience - - #FTL-settings-paymentScienceRatio = Ratio of Science Points per Experience Point. - #FTL-settings-paymentScienceRatio-tt = Require Reputation to advance - - #FTL-settings-paymentRep = If enabled, requires expending Reputation to gain experience. - #FTL-settings-paymentRep-tt = Reputation : Experience - - #FTL-settings-paymentRepRatio = Ratio of Reputation per Experience Point. - #FTL-settings-paymentRepRatio-tt = Require Funds to advance - - #FTL-settings-paymentFunds = If enabled, requires expending Funds to gain experience. - #FTL-settings-paymentFunds-tt = Funds : Experience - - #FTL-settings-paymentFundsRatio = Ratio of Funds per Experience Point. - #FTL-settings-paymentFundsRatio-tt = KSPMail - - #FTL-settings-mail-tt = Recieve a colorful Joyntmail announcing graduation to a new rank?. - - #FTL-settings-pawColor = PAW Color - #FTL-settings-pawColor-tt = allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). - - #FTL-addon-nameFolder = FieldTrainingLab - #FTL-addon-name = Field Training Lab - - #FTL-1st = 1st - #FTL-2nd = 2nd - #FTL-3rd = 3rd - #FTL-4th = 4th - #FTL-5th = 5th - #FTL-null = null - - #FTL-status = Training Lab Status - #FTL-funds-sci = Science Point - - #FTL-training-0 = Training0 - #FTL-training-1 = Training1 - #FTL-training-2 = Training2 - #FTL-training-3 = Training3 - #FTL-training-4 = Training4 - #FTL-training-5 = Training5 - #FTL-training-6 = Training6 - #FTL-training-7 = Training7 - } -} From 5b26e964298cd5f689b0469d5947582b4ba288d6 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:47:26 -0600 Subject: [PATCH 52/84] Delete refactor_de-de.cfg --- source/refactor_de-de.cfg | 49 --------------------------------------- 1 file changed, 49 deletions(-) delete mode 100644 source/refactor_de-de.cfg diff --git a/source/refactor_de-de.cfg b/source/refactor_de-de.cfg deleted file mode 100644 index 463d21d..0000000 --- a/source/refactor_de-de.cfg +++ /dev/null @@ -1,49 +0,0 @@ -Localization -{ - de-de - { - #FTL-1000000 = [de][WIP] Field Training Lab Settings - #FTL-1000001 = [de][WIP] Field Training - #FTL-1000002 = [de][WIP] Field Training - #FTL-settings-enable = [de]Enable Field Training Lab? - #FTL-settings-enable-tt = [de]Field Training Labs are enabled if set to yes. - #FTL-settings-paymentLabel = [de]Payment Label - #FTL-settings-paymentLabel-tt = [de]Science/Reputation/Funds - #FTL-settings-paymentType = [de]How would you like to pay for your kerbal training? - #FTL-settings-paymentType-tt = [de]Require Science Points to advance - #FTL-settings-paymentScience = [de]If enabled, requires expending Science points to gain experience. - #FTL-settings-paymentScience-tt = [de]Science : Experience - #FTL-settings-paymentScienceRatio = [de]Ratio of Science Points per Experience Point. - #FTL-settings-paymentScienceRatio-tt = [de]Require Reputation to advance - #FTL-settings-paymentRep = [de]If enabled, requires expending Reputation to gain experience. - #FTL-settings-paymentRep-tt = [de]Reputation : Experience - #FTL-settings-paymentRepRatio = [de]Ratio of Reputation per Experience Point. - #FTL-settings-paymentRepRatio-tt = [de]Require Funds to advance - #FTL-settings-paymentFunds = [de]If enabled, requires expending Funds to gain experience. - #FTL-settings-paymentFunds-tt = [de]Funds : Experience - #FTL-settings-paymentFundsRatio = [de]Ratio of Funds per Experience Point. - #FTL-settings-paymentFundsRatio-tt = [de]KSPMail - #FTL-settings-mail-tt = [de]Recieve a colorful Joyntmail announcing graduation to a new rank?. - #FTL-settings-pawColor = [de]PAW Color - #FTL-settings-pawColor-tt = [de]allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). - #FTL-addon-nameFolder = [de]FieldTrainingLab - #FTL-addon-name = [de]Field Training Lab - #FTL-1st = [de]1st - #FTL-2nd = [de]2nd - #FTL-null = [de]null - #FTL-5th = [de]5th - #FTL-4th = [de]4th - #FTL-3rd = [de]3rd - #FTL-status = [de]Training Lab Status - #FTL-funds-sci = [de]Science Point - #FTL-training-0 = [de]Training0 - #FTL-training-1 = [de]Training1 - #FTL-training-2 = [de]Training2 - #FTL-training-3 = [de]Training3 - #FTL-training-4 = [de]Training4 - #FTL-training-5 = [de]Training5 - #FTL-training-6 = [de]Training6 - #FTL-training-7 = [de]Training7 - #FTL-1000042 = [de]Training1 - } -} From ab5e7bd99eba9aed097905d503842ec4709bf72c Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:47:26 -0600 Subject: [PATCH 53/84] Delete refactor_en-us.cfg --- source/refactor_en-us.cfg | 49 --------------------------------------- 1 file changed, 49 deletions(-) delete mode 100644 source/refactor_en-us.cfg diff --git a/source/refactor_en-us.cfg b/source/refactor_en-us.cfg deleted file mode 100644 index 7923484..0000000 --- a/source/refactor_en-us.cfg +++ /dev/null @@ -1,49 +0,0 @@ -Localization -{ - en-us - { - #FTL-1000000 = [WIP] Field Training Lab Settings - #FTL-1000001 = [WIP] Field Training - #FTL-1000002 = [WIP] Field Training - #FTL-settings-enable = Enable Field Training Lab? - #FTL-settings-enable-tt = Field Training Labs are enabled if set to yes. - #FTL-settings-paymentLabel = Payment Label - #FTL-settings-paymentLabel-tt = Science/Reputation/Funds - #FTL-settings-paymentType = How would you like to pay for your kerbal training? - #FTL-settings-paymentType-tt = Require Science Points to advance - #FTL-settings-paymentScience = If enabled, requires expending Science points to gain experience. - #FTL-settings-paymentScience-tt = Science : Experience - #FTL-settings-paymentScienceRatio = Ratio of Science Points per Experience Point. - #FTL-settings-paymentScienceRatio-tt = Require Reputation to advance - #FTL-settings-paymentRep = If enabled, requires expending Reputation to gain experience. - #FTL-settings-paymentRep-tt = Reputation : Experience - #FTL-settings-paymentRepRatio = Ratio of Reputation per Experience Point. - #FTL-settings-paymentRepRatio-tt = Require Funds to advance - #FTL-settings-paymentFunds = If enabled, requires expending Funds to gain experience. - #FTL-settings-paymentFunds-tt = Funds : Experience - #FTL-settings-paymentFundsRatio = Ratio of Funds per Experience Point. - #FTL-settings-paymentFundsRatio-tt = KSPMail - #FTL-settings-mail-tt = Recieve a colorful Joyntmail announcing graduation to a new rank?. - #FTL-settings-pawColor = PAW Color - #FTL-settings-pawColor-tt = allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). - #FTL-addon-nameFolder = FieldTrainingLab - #FTL-addon-name = Field Training Lab - #FTL-1st = 1st - #FTL-2nd = 2nd - #FTL-null = null - #FTL-5th = 5th - #FTL-4th = 4th - #FTL-3rd = 3rd - #FTL-status = Training Lab Status - #FTL-funds-sci = Science Point - #FTL-training-0 = Training0 - #FTL-training-1 = Training1 - #FTL-training-2 = Training2 - #FTL-training-3 = Training3 - #FTL-training-4 = Training4 - #FTL-training-5 = Training5 - #FTL-training-6 = Training6 - #FTL-training-7 = Training7 - #FTL-1000042 = Training1 - } -} From 02849f5571cce2312444263c20e67eb61fdcb64b Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:47:27 -0600 Subject: [PATCH 54/84] Delete refactor_es-es.cfg --- source/refactor_es-es.cfg | 49 --------------------------------------- 1 file changed, 49 deletions(-) delete mode 100644 source/refactor_es-es.cfg diff --git a/source/refactor_es-es.cfg b/source/refactor_es-es.cfg deleted file mode 100644 index 7f024e4..0000000 --- a/source/refactor_es-es.cfg +++ /dev/null @@ -1,49 +0,0 @@ -Localization -{ - es-es - { - #FTL-1000000 = [es][WIP] Field Training Lab Settings - #FTL-1000001 = [es][WIP] Field Training - #FTL-1000002 = [es][WIP] Field Training - #FTL-settings-enable = [es]Enable Field Training Lab? - #FTL-settings-enable-tt = [es]Field Training Labs are enabled if set to yes. - #FTL-settings-paymentLabel = [es]Payment Label - #FTL-settings-paymentLabel-tt = [es]Science/Reputation/Funds - #FTL-settings-paymentType = [es]How would you like to pay for your kerbal training? - #FTL-settings-paymentType-tt = [es]Require Science Points to advance - #FTL-settings-paymentScience = [es]If enabled, requires expending Science points to gain experience. - #FTL-settings-paymentScience-tt = [es]Science : Experience - #FTL-settings-paymentScienceRatio = [es]Ratio of Science Points per Experience Point. - #FTL-settings-paymentScienceRatio-tt = [es]Require Reputation to advance - #FTL-settings-paymentRep = [es]If enabled, requires expending Reputation to gain experience. - #FTL-settings-paymentRep-tt = [es]Reputation : Experience - #FTL-settings-paymentRepRatio = [es]Ratio of Reputation per Experience Point. - #FTL-settings-paymentRepRatio-tt = [es]Require Funds to advance - #FTL-settings-paymentFunds = [es]If enabled, requires expending Funds to gain experience. - #FTL-settings-paymentFunds-tt = [es]Funds : Experience - #FTL-settings-paymentFundsRatio = [es]Ratio of Funds per Experience Point. - #FTL-settings-paymentFundsRatio-tt = [es]KSPMail - #FTL-settings-mail-tt = [es]Recieve a colorful Joyntmail announcing graduation to a new rank?. - #FTL-settings-pawColor = [es]PAW Color - #FTL-settings-pawColor-tt = [es]allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). - #FTL-addon-nameFolder = [es]FieldTrainingLab - #FTL-addon-name = [es]Field Training Lab - #FTL-1st = [es]1st - #FTL-2nd = [es]2nd - #FTL-null = [es]null - #FTL-5th = [es]5th - #FTL-4th = [es]4th - #FTL-3rd = [es]3rd - #FTL-status = [es]Training Lab Status - #FTL-funds-sci = [es]Science Point - #FTL-training-0 = [es]Training0 - #FTL-training-1 = [es]Training1 - #FTL-training-2 = [es]Training2 - #FTL-training-3 = [es]Training3 - #FTL-training-4 = [es]Training4 - #FTL-training-5 = [es]Training5 - #FTL-training-6 = [es]Training6 - #FTL-training-7 = [es]Training7 - #FTL-1000042 = [es]Training1 - } -} From 16208930194231bf014f0a2ef2c47da7082ba96d Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:47:28 -0600 Subject: [PATCH 55/84] Delete refactor_fr-fr.cfg --- source/refactor_fr-fr.cfg | 49 --------------------------------------- 1 file changed, 49 deletions(-) delete mode 100644 source/refactor_fr-fr.cfg diff --git a/source/refactor_fr-fr.cfg b/source/refactor_fr-fr.cfg deleted file mode 100644 index 9337bbe..0000000 --- a/source/refactor_fr-fr.cfg +++ /dev/null @@ -1,49 +0,0 @@ -Localization -{ - fr-fr - { - #FTL-1000000 = [fr][WIP] Field Training Lab Settings - #FTL-1000001 = [fr][WIP] Field Training - #FTL-1000002 = [fr][WIP] Field Training - #FTL-settings-enable = [fr]Enable Field Training Lab? - #FTL-settings-enable-tt = [fr]Field Training Labs are enabled if set to yes. - #FTL-settings-paymentLabel = [fr]Payment Label - #FTL-settings-paymentLabel-tt = [fr]Science/Reputation/Funds - #FTL-settings-paymentType = [fr]How would you like to pay for your kerbal training? - #FTL-settings-paymentType-tt = [fr]Require Science Points to advance - #FTL-settings-paymentScience = [fr]If enabled, requires expending Science points to gain experience. - #FTL-settings-paymentScience-tt = [fr]Science : Experience - #FTL-settings-paymentScienceRatio = [fr]Ratio of Science Points per Experience Point. - #FTL-settings-paymentScienceRatio-tt = [fr]Require Reputation to advance - #FTL-settings-paymentRep = [fr]If enabled, requires expending Reputation to gain experience. - #FTL-settings-paymentRep-tt = [fr]Reputation : Experience - #FTL-settings-paymentRepRatio = [fr]Ratio of Reputation per Experience Point. - #FTL-settings-paymentRepRatio-tt = [fr]Require Funds to advance - #FTL-settings-paymentFunds = [fr]If enabled, requires expending Funds to gain experience. - #FTL-settings-paymentFunds-tt = [fr]Funds : Experience - #FTL-settings-paymentFundsRatio = [fr]Ratio of Funds per Experience Point. - #FTL-settings-paymentFundsRatio-tt = [fr]KSPMail - #FTL-settings-mail-tt = [fr]Recieve a colorful Joyntmail announcing graduation to a new rank?. - #FTL-settings-pawColor = [fr]PAW Color - #FTL-settings-pawColor-tt = [fr]allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). - #FTL-addon-nameFolder = [fr]FieldTrainingLab - #FTL-addon-name = [fr]Field Training Lab - #FTL-1st = [fr]1st - #FTL-2nd = [fr]2nd - #FTL-null = [fr]null - #FTL-5th = [fr]5th - #FTL-4th = [fr]4th - #FTL-3rd = [fr]3rd - #FTL-status = [fr]Training Lab Status - #FTL-funds-sci = [fr]Science Point - #FTL-training-0 = [fr]Training0 - #FTL-training-1 = [fr]Training1 - #FTL-training-2 = [fr]Training2 - #FTL-training-3 = [fr]Training3 - #FTL-training-4 = [fr]Training4 - #FTL-training-5 = [fr]Training5 - #FTL-training-6 = [fr]Training6 - #FTL-training-7 = [fr]Training7 - #FTL-1000042 = [fr]Training1 - } -} From cc0e03bd9d42c4e958d976f6586315aaa97b940a Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:47:30 -0600 Subject: [PATCH 56/84] Delete refactor_it-it.cfg --- source/refactor_it-it.cfg | 49 --------------------------------------- 1 file changed, 49 deletions(-) delete mode 100644 source/refactor_it-it.cfg diff --git a/source/refactor_it-it.cfg b/source/refactor_it-it.cfg deleted file mode 100644 index 10e4b86..0000000 --- a/source/refactor_it-it.cfg +++ /dev/null @@ -1,49 +0,0 @@ -Localization -{ - it-it - { - #FTL-1000000 = [it][WIP] Field Training Lab Settings - #FTL-1000001 = [it][WIP] Field Training - #FTL-1000002 = [it][WIP] Field Training - #FTL-settings-enable = [it]Enable Field Training Lab? - #FTL-settings-enable-tt = [it]Field Training Labs are enabled if set to yes. - #FTL-settings-paymentLabel = [it]Payment Label - #FTL-settings-paymentLabel-tt = [it]Science/Reputation/Funds - #FTL-settings-paymentType = [it]How would you like to pay for your kerbal training? - #FTL-settings-paymentType-tt = [it]Require Science Points to advance - #FTL-settings-paymentScience = [it]If enabled, requires expending Science points to gain experience. - #FTL-settings-paymentScience-tt = [it]Science : Experience - #FTL-settings-paymentScienceRatio = [it]Ratio of Science Points per Experience Point. - #FTL-settings-paymentScienceRatio-tt = [it]Require Reputation to advance - #FTL-settings-paymentRep = [it]If enabled, requires expending Reputation to gain experience. - #FTL-settings-paymentRep-tt = [it]Reputation : Experience - #FTL-settings-paymentRepRatio = [it]Ratio of Reputation per Experience Point. - #FTL-settings-paymentRepRatio-tt = [it]Require Funds to advance - #FTL-settings-paymentFunds = [it]If enabled, requires expending Funds to gain experience. - #FTL-settings-paymentFunds-tt = [it]Funds : Experience - #FTL-settings-paymentFundsRatio = [it]Ratio of Funds per Experience Point. - #FTL-settings-paymentFundsRatio-tt = [it]KSPMail - #FTL-settings-mail-tt = [it]Recieve a colorful Joyntmail announcing graduation to a new rank?. - #FTL-settings-pawColor = [it]PAW Color - #FTL-settings-pawColor-tt = [it]allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). - #FTL-addon-nameFolder = [it]FieldTrainingLab - #FTL-addon-name = [it]Field Training Lab - #FTL-1st = [it]1st - #FTL-2nd = [it]2nd - #FTL-null = [it]null - #FTL-5th = [it]5th - #FTL-4th = [it]4th - #FTL-3rd = [it]3rd - #FTL-status = [it]Training Lab Status - #FTL-funds-sci = [it]Science Point - #FTL-training-0 = [it]Training0 - #FTL-training-1 = [it]Training1 - #FTL-training-2 = [it]Training2 - #FTL-training-3 = [it]Training3 - #FTL-training-4 = [it]Training4 - #FTL-training-5 = [it]Training5 - #FTL-training-6 = [it]Training6 - #FTL-training-7 = [it]Training7 - #FTL-1000042 = [it]Training1 - } -} From 3d3fd1f5dd54b1c746811781dce364a66b8b393c Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:47:31 -0600 Subject: [PATCH 57/84] Delete refactor_ja.cfg --- source/refactor_ja.cfg | 49 ------------------------------------------ 1 file changed, 49 deletions(-) delete mode 100644 source/refactor_ja.cfg diff --git a/source/refactor_ja.cfg b/source/refactor_ja.cfg deleted file mode 100644 index 45383cc..0000000 --- a/source/refactor_ja.cfg +++ /dev/null @@ -1,49 +0,0 @@ -Localization -{ - ja - { - #FTL-1000000 = [ja][WIP] Field Training Lab Settings - #FTL-1000001 = [ja][WIP] Field Training - #FTL-1000002 = [ja][WIP] Field Training - #FTL-settings-enable = [ja]Enable Field Training Lab? - #FTL-settings-enable-tt = [ja]Field Training Labs are enabled if set to yes. - #FTL-settings-paymentLabel = [ja]Payment Label - #FTL-settings-paymentLabel-tt = [ja]Science/Reputation/Funds - #FTL-settings-paymentType = [ja]How would you like to pay for your kerbal training? - #FTL-settings-paymentType-tt = [ja]Require Science Points to advance - #FTL-settings-paymentScience = [ja]If enabled, requires expending Science points to gain experience. - #FTL-settings-paymentScience-tt = [ja]Science : Experience - #FTL-settings-paymentScienceRatio = [ja]Ratio of Science Points per Experience Point. - #FTL-settings-paymentScienceRatio-tt = [ja]Require Reputation to advance - #FTL-settings-paymentRep = [ja]If enabled, requires expending Reputation to gain experience. - #FTL-settings-paymentRep-tt = [ja]Reputation : Experience - #FTL-settings-paymentRepRatio = [ja]Ratio of Reputation per Experience Point. - #FTL-settings-paymentRepRatio-tt = [ja]Require Funds to advance - #FTL-settings-paymentFunds = [ja]If enabled, requires expending Funds to gain experience. - #FTL-settings-paymentFunds-tt = [ja]Funds : Experience - #FTL-settings-paymentFundsRatio = [ja]Ratio of Funds per Experience Point. - #FTL-settings-paymentFundsRatio-tt = [ja]KSPMail - #FTL-settings-mail-tt = [ja]Recieve a colorful Joyntmail announcing graduation to a new rank?. - #FTL-settings-pawColor = [ja]PAW Color - #FTL-settings-pawColor-tt = [ja]allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). - #FTL-addon-nameFolder = [ja]FieldTrainingLab - #FTL-addon-name = [ja]Field Training Lab - #FTL-1st = [ja]1st - #FTL-2nd = [ja]2nd - #FTL-null = [ja]null - #FTL-5th = [ja]5th - #FTL-4th = [ja]4th - #FTL-3rd = [ja]3rd - #FTL-status = [ja]Training Lab Status - #FTL-funds-sci = [ja]Science Point - #FTL-training-0 = [ja]Training0 - #FTL-training-1 = [ja]Training1 - #FTL-training-2 = [ja]Training2 - #FTL-training-3 = [ja]Training3 - #FTL-training-4 = [ja]Training4 - #FTL-training-5 = [ja]Training5 - #FTL-training-6 = [ja]Training6 - #FTL-training-7 = [ja]Training7 - #FTL-1000042 = [ja]Training1 - } -} From 82f0f6eaf8252496e33844174c91d7a11db7f944 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:47:32 -0600 Subject: [PATCH 58/84] Delete refactor_pt-br.cfg --- source/refactor_pt-br.cfg | 49 --------------------------------------- 1 file changed, 49 deletions(-) delete mode 100644 source/refactor_pt-br.cfg diff --git a/source/refactor_pt-br.cfg b/source/refactor_pt-br.cfg deleted file mode 100644 index 1a4cc9a..0000000 --- a/source/refactor_pt-br.cfg +++ /dev/null @@ -1,49 +0,0 @@ -Localization -{ - pt-br - { - #FTL-1000000 = [pt][WIP] Field Training Lab Settings - #FTL-1000001 = [pt][WIP] Field Training - #FTL-1000002 = [pt][WIP] Field Training - #FTL-settings-enable = [pt]Enable Field Training Lab? - #FTL-settings-enable-tt = [pt]Field Training Labs are enabled if set to yes. - #FTL-settings-paymentLabel = [pt]Payment Label - #FTL-settings-paymentLabel-tt = [pt]Science/Reputation/Funds - #FTL-settings-paymentType = [pt]How would you like to pay for your kerbal training? - #FTL-settings-paymentType-tt = [pt]Require Science Points to advance - #FTL-settings-paymentScience = [pt]If enabled, requires expending Science points to gain experience. - #FTL-settings-paymentScience-tt = [pt]Science : Experience - #FTL-settings-paymentScienceRatio = [pt]Ratio of Science Points per Experience Point. - #FTL-settings-paymentScienceRatio-tt = [pt]Require Reputation to advance - #FTL-settings-paymentRep = [pt]If enabled, requires expending Reputation to gain experience. - #FTL-settings-paymentRep-tt = [pt]Reputation : Experience - #FTL-settings-paymentRepRatio = [pt]Ratio of Reputation per Experience Point. - #FTL-settings-paymentRepRatio-tt = [pt]Require Funds to advance - #FTL-settings-paymentFunds = [pt]If enabled, requires expending Funds to gain experience. - #FTL-settings-paymentFunds-tt = [pt]Funds : Experience - #FTL-settings-paymentFundsRatio = [pt]Ratio of Funds per Experience Point. - #FTL-settings-paymentFundsRatio-tt = [pt]KSPMail - #FTL-settings-mail-tt = [pt]Recieve a colorful Joyntmail announcing graduation to a new rank?. - #FTL-settings-pawColor = [pt]PAW Color - #FTL-settings-pawColor-tt = [pt]allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). - #FTL-addon-nameFolder = [pt]FieldTrainingLab - #FTL-addon-name = [pt]Field Training Lab - #FTL-1st = [pt]1st - #FTL-2nd = [pt]2nd - #FTL-null = [pt]null - #FTL-5th = [pt]5th - #FTL-4th = [pt]4th - #FTL-3rd = [pt]3rd - #FTL-status = [pt]Training Lab Status - #FTL-funds-sci = [pt]Science Point - #FTL-training-0 = [pt]Training0 - #FTL-training-1 = [pt]Training1 - #FTL-training-2 = [pt]Training2 - #FTL-training-3 = [pt]Training3 - #FTL-training-4 = [pt]Training4 - #FTL-training-5 = [pt]Training5 - #FTL-training-6 = [pt]Training6 - #FTL-training-7 = [pt]Training7 - #FTL-1000042 = [pt]Training1 - } -} From b670a78d359215c9dad5b4380bd908f4256fd1bd Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:47:33 -0600 Subject: [PATCH 59/84] Delete refactor_ru.cfg --- source/refactor_ru.cfg | 49 ------------------------------------------ 1 file changed, 49 deletions(-) delete mode 100644 source/refactor_ru.cfg diff --git a/source/refactor_ru.cfg b/source/refactor_ru.cfg deleted file mode 100644 index 5812b0a..0000000 --- a/source/refactor_ru.cfg +++ /dev/null @@ -1,49 +0,0 @@ -Localization -{ - ru - { - #FTL-1000000 = [ru][WIP] Field Training Lab Settings - #FTL-1000001 = [ru][WIP] Field Training - #FTL-1000002 = [ru][WIP] Field Training - #FTL-settings-enable = [ru]Enable Field Training Lab? - #FTL-settings-enable-tt = [ru]Field Training Labs are enabled if set to yes. - #FTL-settings-paymentLabel = [ru]Payment Label - #FTL-settings-paymentLabel-tt = [ru]Science/Reputation/Funds - #FTL-settings-paymentType = [ru]How would you like to pay for your kerbal training? - #FTL-settings-paymentType-tt = [ru]Require Science Points to advance - #FTL-settings-paymentScience = [ru]If enabled, requires expending Science points to gain experience. - #FTL-settings-paymentScience-tt = [ru]Science : Experience - #FTL-settings-paymentScienceRatio = [ru]Ratio of Science Points per Experience Point. - #FTL-settings-paymentScienceRatio-tt = [ru]Require Reputation to advance - #FTL-settings-paymentRep = [ru]If enabled, requires expending Reputation to gain experience. - #FTL-settings-paymentRep-tt = [ru]Reputation : Experience - #FTL-settings-paymentRepRatio = [ru]Ratio of Reputation per Experience Point. - #FTL-settings-paymentRepRatio-tt = [ru]Require Funds to advance - #FTL-settings-paymentFunds = [ru]If enabled, requires expending Funds to gain experience. - #FTL-settings-paymentFunds-tt = [ru]Funds : Experience - #FTL-settings-paymentFundsRatio = [ru]Ratio of Funds per Experience Point. - #FTL-settings-paymentFundsRatio-tt = [ru]KSPMail - #FTL-settings-mail-tt = [ru]Recieve a colorful Joyntmail announcing graduation to a new rank?. - #FTL-settings-pawColor = [ru]PAW Color - #FTL-settings-pawColor-tt = [ru]allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). - #FTL-addon-nameFolder = [ru]FieldTrainingLab - #FTL-addon-name = [ru]Field Training Lab - #FTL-1st = [ru]1st - #FTL-2nd = [ru]2nd - #FTL-null = [ru]null - #FTL-5th = [ru]5th - #FTL-4th = [ru]4th - #FTL-3rd = [ru]3rd - #FTL-status = [ru]Training Lab Status - #FTL-funds-sci = [ru]Science Point - #FTL-training-0 = [ru]Training0 - #FTL-training-1 = [ru]Training1 - #FTL-training-2 = [ru]Training2 - #FTL-training-3 = [ru]Training3 - #FTL-training-4 = [ru]Training4 - #FTL-training-5 = [ru]Training5 - #FTL-training-6 = [ru]Training6 - #FTL-training-7 = [ru]Training7 - #FTL-1000042 = [ru]Training1 - } -} From c25dc9863453720e45f1d8486e79eaa66f856754 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Wed, 11 Jan 2023 23:47:34 -0600 Subject: [PATCH 60/84] Delete refactor_zh-cn.cfg --- source/refactor_zh-cn.cfg | 49 --------------------------------------- 1 file changed, 49 deletions(-) delete mode 100644 source/refactor_zh-cn.cfg diff --git a/source/refactor_zh-cn.cfg b/source/refactor_zh-cn.cfg deleted file mode 100644 index 0715f70..0000000 --- a/source/refactor_zh-cn.cfg +++ /dev/null @@ -1,49 +0,0 @@ -Localization -{ - zh-cn - { - #FTL-1000000 = [zh][WIP] Field Training Lab Settings - #FTL-1000001 = [zh][WIP] Field Training - #FTL-1000002 = [zh][WIP] Field Training - #FTL-settings-enable = [zh]Enable Field Training Lab? - #FTL-settings-enable-tt = [zh]Field Training Labs are enabled if set to yes. - #FTL-settings-paymentLabel = [zh]Payment Label - #FTL-settings-paymentLabel-tt = [zh]Science/Reputation/Funds - #FTL-settings-paymentType = [zh]How would you like to pay for your kerbal training? - #FTL-settings-paymentType-tt = [zh]Require Science Points to advance - #FTL-settings-paymentScience = [zh]If enabled, requires expending Science points to gain experience. - #FTL-settings-paymentScience-tt = [zh]Science : Experience - #FTL-settings-paymentScienceRatio = [zh]Ratio of Science Points per Experience Point. - #FTL-settings-paymentScienceRatio-tt = [zh]Require Reputation to advance - #FTL-settings-paymentRep = [zh]If enabled, requires expending Reputation to gain experience. - #FTL-settings-paymentRep-tt = [zh]Reputation : Experience - #FTL-settings-paymentRepRatio = [zh]Ratio of Reputation per Experience Point. - #FTL-settings-paymentRepRatio-tt = [zh]Require Funds to advance - #FTL-settings-paymentFunds = [zh]If enabled, requires expending Funds to gain experience. - #FTL-settings-paymentFunds-tt = [zh]Funds : Experience - #FTL-settings-paymentFundsRatio = [zh]Ratio of Funds per Experience Point. - #FTL-settings-paymentFundsRatio-tt = [zh]KSPMail - #FTL-settings-mail-tt = [zh]Recieve a colorful Joyntmail announcing graduation to a new rank?. - #FTL-settings-pawColor = [zh]PAW Color - #FTL-settings-pawColor-tt = [zh]allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). - #FTL-addon-nameFolder = [zh]FieldTrainingLab - #FTL-addon-name = [zh]Field Training Lab - #FTL-1st = [zh]1st - #FTL-2nd = [zh]2nd - #FTL-null = [zh]null - #FTL-5th = [zh]5th - #FTL-4th = [zh]4th - #FTL-3rd = [zh]3rd - #FTL-status = [zh]Training Lab Status - #FTL-funds-sci = [zh]Science Point - #FTL-training-0 = [zh]Training0 - #FTL-training-1 = [zh]Training1 - #FTL-training-2 = [zh]Training2 - #FTL-training-3 = [zh]Training3 - #FTL-training-4 = [zh]Training4 - #FTL-training-5 = [zh]Training5 - #FTL-training-6 = [zh]Training6 - #FTL-training-7 = [zh]Training7 - #FTL-1000042 = [zh]Training1 - } -} From 845fd85805130fc70536c4ce690ee4274e13ccbd Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 00:17:48 -0600 Subject: [PATCH 61/84] Update changelog.md --- changelog.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/changelog.md b/changelog.md index d7a0ddb..291e8ee 100644 --- a/changelog.md +++ b/changelog.md @@ -17,13 +17,13 @@ * Release for Kerbal Space Program 1.12.4 * by [zer0Kerbal](https://github.com/zer0Kerbal) -### Summary 1.2.3.0 +### Summary 1.2.2.0 * Recompiled for 1.12.4 with .NET 4.7.2 using C# 7.0 -### Changes 1.2.3.0 +### Changes 1.2.2.0 -#### Code 1.2.3.0 +#### Code 1.2.2.0 * Recompile for * KSP 1.12.2 @@ -31,14 +31,14 @@ * C# 7.0 * v1.2.1.14 --> 1.2.2.15 -#### Localization 1.2.3.0 +#### Localization 1.2.2.0 * Code is localized. * 1.0.2.0 * v1.0.1.0 * add tags -#### Compatability 1.2.3.0 +#### Compatability 1.2.2.0 * Add * v1.0.0.0 @@ -48,12 +48,12 @@ * v1.3.0.0 * courtesy of [Gordon Dry](https://forum.kerbalspaceprogram.com/index.php?/profile/163177*/) -#### Config 1.2.3.0 +#### Config 1.2.2.0 * lint and update patches * add tags to parts -#### Status 1.2.3.0 +#### Status 1.2.2.0 * Issues From 17767ca06b8c583657912c3c053eb18df3e0c5f7 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:33:38 -0600 Subject: [PATCH 62/84] Update changelog.md --- changelog.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/changelog.md b/changelog.md index 291e8ee..41b5f7f 100644 --- a/changelog.md +++ b/changelog.md @@ -29,14 +29,17 @@ * KSP 1.12.2 * .Net 4.7.2 * C# 7.0 - * v1.2.1.14 --> 1.2.2.15 + * v1.2.1.14 --> 1.2.2.22 #### Localization 1.2.2.0 * Code is localized. * 1.0.2.0 - * v1.0.1.0 + * v1.0.1.0 (needs a serious update - many strings added) * add tags +* closes #14 - English +* closes #31 - Code Localization +* updates #13 - Localization - Master #### Compatability 1.2.2.0 @@ -50,12 +53,15 @@ #### Config 1.2.2.0 +* move primary patch into Config * lint and update patches * add tags to parts #### Status 1.2.2.0 * Issues + * closes #39 - Field Training Lab (FTL) 1.2.2.0-release `` edition + * closes #40 - 1.2.2.0 Additional Tasks --- @@ -254,7 +260,7 @@ * for Kerbal Space Program 1.6.1 * Released on 2018-12-21 -* EFour's last release +* Efour's last release * Recompiled 1.6.0 --- From 579f310ead13cccf4ee51bee8afe6b69f1a30917 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:33:40 -0600 Subject: [PATCH 63/84] Create changelog.md --- docs/changelog.md | 351 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 351 insertions(+) create mode 100644 docs/changelog.md diff --git a/docs/changelog.md b/docs/changelog.md new file mode 100644 index 0000000..62cbcce --- /dev/null +++ b/docs/changelog.md @@ -0,0 +1,351 @@ +--- +permalink: /Changelog.html +title: The Change Log +description: The Opening Credits, and the closing credits, plus the first of two (or is three) end credit scenes +tags: changes,changelog,change-log,page,kerbal,ksp,zer0Kerbal,zedK +--- +# Changelog + +| modName | Field Training Lab (FTL) | +| ---------- | ----------------------------------------------------------------- | +| license | GPL-3.0 | +| author | Efour and zer0Kerbal | +| forum | (https://forum.kerbalspaceprogram.com/index.php?/topic/188841-*/) | +| github | (https://github.com/zer0Kerbal/zer0Kerbal/FieldTrainingLab) | +| curseforge | (https://www.curseforge.com/kerbal/ksp-mods/FieldTrainingLab) | +| spacedock | (https://spacedock.info/mod/971) | +| ckan | FieldTrainingLab | + +## Version 1.2.2.0-release `` edition + +* Released + * 11 Jan 2023 + * Release for Kerbal Space Program 1.12.4 + * by [zer0Kerbal](https://github.com/zer0Kerbal) + +### Summary 1.2.2.0 + +* Recompiled for 1.12.4 with .NET 4.7.2 using C# 7.0 + +### Changes 1.2.2.0 + +#### Code 1.2.2.0 + +* Recompile for + * KSP 1.12.2 + * .Net 4.7.2 + * C# 7.0 + * v1.2.1.14 --> 1.2.2.22 + +#### Localization 1.2.2.0 + +* Code is localized. + * 1.0.2.0 + * v1.0.1.0 (needs a serious update - many strings added) + * add tags +* closes #14 - English +* closes #31 - Code Localization +* updates #13 - Localization - Master + +#### Compatability 1.2.2.0 + +* Add + * v1.0.0.0 + * v1.0.0.0 + * v1.0.0.0 +* Update + * v1.3.0.0 +* courtesy of [Gordon Dry](https://forum.kerbalspaceprogram.com/index.php?/profile/163177*/) + +#### Config 1.2.2.0 + +* move primary patch into Config +* lint and update patches +* add tags to parts + +#### Status 1.2.2.0 + +* Issues + * closes #39 - Field Training Lab (FTL) 1.2.2.0-release `` edition + * closes #40 - 1.2.2.0 Additional Tasks + +--- + +## Version 1.2.1.0-release - `` edition + +* 28 Jun 2022 +* For Kerbal Space Program [1.12.x] + +### License + +* Update to GPLv3 + * was Expat/MIT +* closes #32 - Update License to GPLv3 + +### docs/ + +* Add + * [Attribution.md] v1.0.6.0 + * [ManualInstallation.md] v1.1.7.0 + * [404-petunia.md] + * [LegalMumboJumbo.md] v1.0.5.0 + * [Localizations.md] v1.1.3.1 + * [Notices.md] v1.0.0.0 + * [Why-not.md] + * [_config.yml] +* closes #2 - Needs a wiki +* closes #35 - add docs/ + +### Convert Changelog + +* Convert from .cfg to md +* Add missing information for earlier releases +* closes #33 - Convert Changelog + +### Code + +* Recompile for KSP 1.12.3 +* Using .NET 4.6.1 + * remove + * [InstallChecker.cs] + * [AssemblyVersion.tt] + * [Log.cs] + * update [Version.tt]] + +### Compatibility + +* Rename + * Patches to Compatibility +* Update + * licenses + * [Kerbalism.cfg] v1.0.1.0 + * fixes #34 - [Bug 🐞]: Kerbalism.cfg + +### Add + +* Agent +* Flag + * 512x320 + * 64x40 truecolor_scaled + +### Localization + +* Add + * [readme.md] v2.1.2.0 + * [quickstart.md] v1.0.1.1 +* updates #14 - English +* updates #13 - Localization - Master +* updates #31 - Code Localization +* updates #22 - Simplified Chinese (简体中文) + +### Status + +* Issues + * closes #9 - Field Training Lab (FTL) 1.2.1.0-release `` + * closes #10 - 1.2.1.0 Verify Legal Mumbo Jumbo + * closes #11 - 1.2.1.0 Update Documentation + * closes #12 - 1.2.1.0 Update Social Media +* Closes Duplicate Issues + * #1 - Localization + * #4 - :sparkles: **Localization** :sparkles: + * #5 - Localization - en-us.cfg (English) + * #6 - Localization - pt-br.cfg Brazil + * #7 - Localization - zh-cn.cfg - Simplified Chinese + * #8 - Update Field Training Laboratory (FTL) + +--- + +## Version 1.2.0.0 - `` + +* 05 Apr 2020 +* KSP 1.9.1 +* .NET 4.8 + +### Code 1.2.0.0 + +* update + * Editor GetInfo() to be more informative + * include assembly version in PAW +* Add + * game settings page + * ***disabled for now*** + * game settings page + * global setting to enable/disable PAW color + * option to globally enable/disable + * option: use science and ratio + * option: use reputation and ratio + * option: use funds and ratio + +--- + +## Version = 1.1.0.0 - `` + +* KSP 1.8.1 with .NET 4.8 + +* isn't that enough? :D +* started adding in JoyntMail :D + +--- + +## Version = 1.0.3.5 - ` Plugins/Textures/ + +### Deployment and Backend + +* Update + * [Changelog.cfg] + * to include new Kerbal Changelog features + * [_deploy] + * [_buildRelease] + * [.gitattributes] + * [].gitignore] + * [*Readme.md] + * automated Readme.md -> Readme.htm + * Readme.htm now included in release + * Releases.layout.md +* [CONTRIBUTING.md] now included in repository +* [FieldTrainingLab.version] to be avc compliant +* Added + * avc github checker and badge +* Added + * json's + +--- + +## Verison 1.0.3.4.1 - `` edition + +* released Oct 1, 2019 +* for KSP 1.7.x +* removed SimpleLogistics.dll that stowed away. + +--- + +## Version 1.0.3.4 + +### Adoption by zer0Kerbal + +### Code 1.0.3.4 + +* Added + * PAW grouping (really needed for these mods) + * a blurb in the editor getInfo{} + * [InstallChecker.cs] + +### Compatibility 1.0.3.4 + +* Updated + * [FieldTrainingLab.cfg] + * now patches all parts with moduleScienceLab + * changed the [TrainingLab] to be [FieldTrainingLab] + * patches reflect this +* Removed + * other patch + +--- + +## Version 1.0.3.3 + +=--- original ---= + +* for Kerbal Space Program 1.6.1 +* Released on 2018-12-21 + +* Efour's last release +* Recompiled 1.6.0 + +--- + +## Version 1.0.3.2 + +* for Kerbal Space Program 1.5.1 +* Released on 2018-10-30 + +* Recompiled for 1.5.1 + +--- + +## Version 1.0.3.1 + +* for Kerbal Space Program 1.3.1 +* Released on 2017-11-27 + +* Recompiled KSP 1.3.1 + +--- + +## Version 1.0.3 + +* for Kerbal Space Program 1.2.2 +* Released on 2016-11-03 + +* Recompiled to 1.2.1 + +--- + +## Version 1.0.2.1 + +* for Kerbal Space Program 1.2 +* Released on 2016-10-22 + +* KPBS support + +--- + +## Version 1.0.2 + +* for Kerbal Space Program 1.2 +* Released on 2016-10-16 + +* Calculating Dead and respawned kerbalnaut + +--- + +## Version 1.0.1.0 + +* for Kerbal Space Program 1.2 +* Released on 2016-10-12 + +* Co-Work with Field Training Facility Mod + +--- + +## Version 1.0.0.0 + +* for Kerbal Space Program 1.2 +* Released on 2016-10-08 + +* No changelog provided + +--- + +## Version 1.0.0.0 + +* for Kerbal Space Program 1.1.3 +* Released on 2016-10-07 + +* No changelog provided + +--- + \ No newline at end of file From b74385ac3ffc43433da1e6e977b8b2de9a63d426 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:33:41 -0600 Subject: [PATCH 64/84] Create Code.xml --- docs/Code/Code.xml | 192 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 192 insertions(+) create mode 100644 docs/Code/Code.xml diff --git a/docs/Code/Code.xml b/docs/Code/Code.xml new file mode 100644 index 0000000..6514314 --- /dev/null +++ b/docs/Code/Code.xml @@ -0,0 +1,192 @@ + + + + FieldTrainingLab + + + + + + + Train Factor + + + Space situational cost adjustment + + + Landed situational cost adjustment + + + Time Factor + + + Training Lab Status + + + Science Points Remaining + + + Training 0 + + + Training 1 + + + Training 2 + + + Training 3 + + + Training 4 + + + Training 5 + + + Training 6 + + + Training 7 + + + OnAwake + + + OnStart + + + OnInactive + + + OnInitialize + + + OnFixedUpdate + + + OnUpdate + + + Calculate Science Cost + + + + + + GetKerbalTrainingExp + + + + + RemoveKerbalTrainingExp + + + + GetCrewTrainedLevel + + + + + Module information shown in editors + + + create the GetInfo string + + + Game Settings FTL Options + + + Settings Title + + + Settings Section + + + Settings Display Section + + + Settings Section Order + + + Settings Game Mode + + + Settings module master enable/disable + + + Settings Payment + + + require science points to gain experience + + + number of science points per experience point + + + require Reputation to gain experience + + + number of Reputation per experience point + + + require Funds to gain experience + + + amount of Funds per experience point + + + Settings - KSP Mail + + + Settings allow colored PAW + + + Had Presets? + + + Difficulty Presets + + + Enabled? + + + + + + Interactible? + + + + + + ValidValues + + + + + Version - retrieved at compile from FieldTrainingLab.version + + + Major revision + + + Minor revision + + + Patch revision + + + Build revision + + + Version String const + + + Text Version String const + + + Plain Text Version String const + + + From b2cab2dd5c30d349bb27003d3954f5c46abeaaf5 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:33:42 -0600 Subject: [PATCH 65/84] Create 1.2.2.0.md --- docs/ReleaseNotes/1.2.2.0.md | 158 +++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 docs/ReleaseNotes/1.2.2.0.md diff --git a/docs/ReleaseNotes/1.2.2.0.md b/docs/ReleaseNotes/1.2.2.0.md new file mode 100644 index 0000000..c12b7b2 --- /dev/null +++ b/docs/ReleaseNotes/1.2.2.0.md @@ -0,0 +1,158 @@ +--- +permalink: /1.2.2.0.html +title: Release Notes v1.2.2.0 +description: Version Release Notes +tags: field-training-facility,release-notes,kerbal,ksp,zer0Kerbal,zedK +layout: page +--- + + +[![FieldTrainingFacility (ABBV)][MOD:shd:stat]][MOD:forum] +[![KSP version][KSP:shd:stat]][KSP:url] [![License][LIC:shd]][LIC:url] +![AVC .version files][AVCVAL:shd] [![Pages][MOD:pages:shd]][MOD:pages] + +![Code][CODE:shd] + +## Version 1.2.2.0-release `` edition + +* Released + * 10 Jan 2023 + * Release for Kerbal Space Program 1.12.4 + * by [zer0Kerbal](https://github.com/zer0Kerbal) + +

+For best results - DO A CLEAN INSTALL; DELETE EXISTING INSTALLATION THEN RE-INSTALL

Download from CurseForge

+ +## Summary + +* Recompiled for 1.12.4 with .NET 4.7.2 using C# 7.0 + +## Changes + +### Code + +* Recompile for + * KSP 1.12.2 + * .Net 4.7.2 + * C# 7.0 + * v1.2.1.3 --> 1.2.2.9 + +#### Localization + +* Code is localized. + * 1.0.2.0 + * v1.0.1.0 (needs a serious update - many strings added) + * add tags + +#### Compatability + +* Add + * v1.0.0.0 + * v1.0.0.0 + * v1.0.0.0 +* Update + * v1.3.0.0 +* courtesy of [Gordon Dry](https://forum.kerbalspaceprogram.com/index.php?/profile/163177*/) + +#### Config + +* move primary patch into Config +* lint and update patches +* add tags to parts + +## See More + +* [How It Works][MOD:works] +* [Pages][MOD:pages] for so much more (WIP) +* [Marketing Slicks][MOD:markt] +* [ChangeLog][MOD:chlog] for more details of changes +* [Discussions][MOD:discu] or [KSP Forums][MOD:forum] for discussions and news +* [Known Issues][MOD:issue] for known issues and feature requests + +## Localization + +>* ![English][EN] English +>* ![中文][CN] Simplified Chinese (中文) thank you to [@JFYoung01](https://github.com/JFYoung01) +>* ***your translation here*** +> +> HELP WANTED - See the [README in the Localization folder][lreadme] or the [Quickstart Guide][qstart] for instructions for adding or improving translations. [GitHub][GitHub:url] push is the best way to contribute. *Additions and corrections welcome!* + +
+

red box below is a link to forum post on how to get support

+ +

How to get support

+

Be Kind: Lithobrake, not jakebrake! Keep your Module Manager up to date

+
+ +### How to support this and other great mods by [`zer0Kerbal`][zer0Kerbal] + +[![Support][PAYPAL:img]][PAYPAL:url] [![Patreon][PATREON:img]][PATREON:url] [![Github Sponsor][GSPONS:img]][GSPONS:url] [![Buy zer0Kerbal a snack][BMCC:img]][BMCC:url] + +
compiled with: KSP 1.12.4 — .NET 4.7.2 — C# 7.0
+ +#### Release Schedule + +1. GitHub, reaching first manual installers and users of KSP-AVC. Right now. +2. CurseForge. Right now. +3. SpaceDock (and CKAN users). Soon™ *(the button has been pushed)* + + +[MOD:chlog]: https://raw.githubusercontent.com/zer0Kerbal/FieldTrainingFacility/master/changelog.md "Changelog" +[MOD:discu]: https://github.com/zer0Kerbal/FieldTrainingFacility/discussions/ "Discussions" +[MOD:forum]: https://forum.kerbalspaceprogram.com/index.php?/topic/188841-*/ "Field Training Lab (FTL) forum thread" +[MOD:issue]: https://github.com/zer0Kerbal/FieldTrainingFacility/issues/ "Issue Tracker" +[MOD:markt]: https://zer0kerbal.github.io/FieldTrainingFacility/Marketing "Marketing Slicks" +[MOD:pages]: https://zer0kerbal.github.io/FieldTrainingFacility/ "GitHub Pages" +[MOD:works]: https://zer0kerbal.github.io/FieldTrainingFacility/HowItWorks "How It Works" + +[MOD:pages:shd]: https://img.shields.io/badge/GitHub-Pages-white?style=plastic&labelColor=9cf&logoColor=181717&logo=github/ "GitHub IO" + +[MOD:shd:stat]: https://img.shields.io/badge/Field%20Training%20Facility%20(FTF)%20-v1.2.2.0--release-BADA55.svg?style=plastic&labelColor=darkgreen/ "1.2.2.0-release" + +[Code:shd]: https://img.shields.io/badge/CODE-%3C.NET%204.7.2%3E%20%3CC%207.0%3E-darkblue?style=plastic&labelColor=66ccff "Code" + +[GITHUB:url]: https://github.com/zer0Kerbal/FieldTrainingFacility/ "GitHub" + +[KSP:url]: http://kerbalspaceprogram.com/ "Kerbal Space Program" +[KSP:shd:stat]: https://img.shields.io/badge/KSP-1.12.4-blue.svg?style=plastic&labelColor=black/ "Kerbal Space Program" + + +[LIC:url]: https://www.gnu.org/licenses/gpl-3.0-standalone.html "GPLv3" +[LIC:shd]: https://img.shields.io/badge/License-GPL--3.0-A42E2B?labelColor=white&style=plastic&logoColor=A42E2B&logo=gnu "GPL-3.0" + +[AVCVAL:shd]: https://github.com/zer0Kerbal/FieldTrainingFacility/actions/workflows/AVC-VersionFileValidator.yml/badge.svg?style=plastic&labelColor=black "AVC Valid" + +[PAYPAL:img]: https://img.shields.io/badge/Buy%20me%20some%20-LFO-BADA55?style=for-the-badge&logo=paypal&labelColor=FFDD00 "PayPal" +[PAYPAL:url]: https://www.paypal.com/donate?hosted_button_id=DC22YHMEJREKL "PayPal" +[PATREON:img]: https://img.shields.io/badge/Patreon%20-Patreonize-FF424D?style=for-the-badge&logo=patreon "Patreon" +[PATREON:url]: https://www.patreon.com/bePatron?u=23390503 "Patreon" +[GSPONS:img]: https://img.shields.io/badge/Github%20-Sponsor-EA4AAA?style=for-the-badge&logo=githubsponsors "Github Sponsors" +[GSPONS:url]: https://github.com/sponsors/zer0Kerbal "Github Sponsors" +[BMCC:img]: https://img.shields.io/badge/Buy%20Me%20a%20-Snack!-FFDD00?style=for-the-badge&logo=buymeacoffee "Buy Me A Snack" +[BMCC:url]: https://buymeacoffee.com/zer0Kerbal "Buy Me A Snack" +[lreadme]: https://github.com/zer0Kerbal/zer0Kerbal/blob/master/Localization/readme.md "Localization Readme" +[qstart]: https://github.com/zer0Kerbal/zer0Kerbal/blob/master/Localization/quickstart.md "Quickstart" +[EN]: https://raw.githubusercontent.com/zer0Kerbal/zer0Kerbal/master/img/EN.png "English" +[BR]: https://raw.githubusercontent.com/zer0Kerbal/zer0Kerbal/master/img/BR.png "Português Brasil" +[CN]: https://raw.githubusercontent.com/zer0Kerbal/zer0Kerbal/master/img/CH.png "中文" +[DE]: https://raw.githubusercontent.com/zer0Kerbal/zer0Kerbal/master/img/DE.png "Deutsch" +[ES]: https://raw.githubusercontent.com/zer0Kerbal/zer0Kerbal/master/img/ES.png "Español" +[FR]: https://raw.githubusercontent.com/zer0Kerbal/zer0Kerbal/master/img/FR.png "Français" +[IT]: https://raw.githubusercontent.com/zer0Kerbal/zer0Kerbal/master/img/IT.png "Italiano" +[JA]: https://raw.githubusercontent.com/zer0Kerbal/zer0Kerbal/master/img/JA.png "日本語" +[KO]: https://raw.githubusercontent.com/zer0Kerbal/zer0Kerbal/master/img/KO.png "한국어" +[MX]: https://raw.githubusercontent.com/zer0Kerbal/zer0Kerbal/master/img/MX.png "Mexicano Español" +[NL]: https://raw.githubusercontent.com/zer0Kerbal/zer0Kerbal/master/img/NL.png "Dutch" +[NO]: https://raw.githubusercontent.com/zer0Kerbal/zer0Kerbal/master/img/NO.png "Norsk" +[PO]: https://raw.githubusercontent.com/zer0Kerbal/zer0Kerbal/master/img/PO.png "Polski" +[RU]: https://raw.githubusercontent.com/zer0Kerbal/zer0Kerbal/master/img/RU.png "Русский" +[SW]: https://raw.githubusercontent.com/zer0Kerbal/zer0Kerbal/master/img/SW.png "Svenska" +[TR]: https://raw.githubusercontent.com/zer0Kerbal/zer0Kerbal/master/img/TR.png "Türk" +[TW]: https://raw.githubusercontent.com/zer0Kerbal/zer0Kerbal/master/img/TW.png "国语" + +[zer0Kerbal]: https://forum.kerbalspaceprogram.com/index.php?/profile/190933-*/ "zer0Kerbal" + + \ No newline at end of file From 0033f80346befff8cbf95955d1077915e2214d33 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:33:43 -0600 Subject: [PATCH 66/84] Create 1.2.2.0.htm --- GameData/FieldTrainingLab/1.2.2.0.htm | 172 ++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 GameData/FieldTrainingLab/1.2.2.0.htm diff --git a/GameData/FieldTrainingLab/1.2.2.0.htm b/GameData/FieldTrainingLab/1.2.2.0.htm new file mode 100644 index 0000000..a7233d7 --- /dev/null +++ b/GameData/FieldTrainingLab/1.2.2.0.htm @@ -0,0 +1,172 @@ + + +

FieldTrainingFacility (ABBV)
+KSP version License
+AVC .version files Pages

+

Code

+

Version +1.2.2.0-release <Thank you Efour> edition

+
    +
  • Released +
      +
    • 10 Jan 2023
    • +
    • Release for Kerbal Space Program 1.12.4
    • +
    • by zer0Kerbal
    • +
  • +
+

+For best results - DO A CLEAN INSTALL; DELETE EXISTING INSTALLATION THEN RE-INSTALL

Download from CurseForge

+ +

Summary

+
    +
  • Recompiled for 1.12.4 with .NET 4.7.2 using C# 7.0
  • +
+

Changes

+

Code

+
    +
  • Recompile for +
      +
    • KSP 1.12.2
    • +
    • .Net 4.7.2
    • +
    • C# 7.0
    • +
    • <FieldTrainingFacility.dll> v1.2.1.3 --> 1.2.2.9
    • +
  • +
+

Localization

+
    +
  • Code is localized. +
      +
    • <en-us.cfg> 1.0.2.0
    • +
    • <zh-cn.cfg> v1.0.1.0 (needs a serious update - many strings +added)
    • +
    • add tags
    • +
  • +
+

Compatability

+
    +
  • Add +
      +
    • <StationPartsExpansionRedux.cfg> v1.0.0.0
    • +
    • <TokamakIndustries.cfg> v1.0.0.0
    • +
    • <Bluedog.cfg> v1.0.0.0
    • +
  • +
  • Update +
      +
    • <Kerbalism.cfg> v1.3.0.0
    • +
  • +
  • courtesy of Gordon +Dry
  • +
+

Config

+
    +
  • move primary patch into Config
  • +
  • lint and update patches
  • +
  • add tags to parts
  • +
+

See More

+ +

Localization

+
+
    +
  • English English
  • +
  • 中文 Simplified Chinese (中文) thank you to @JFYoung01
  • +
  • your translation here
  • +
+

HELP WANTED - See the README in the Localization folder or the +Quickstart Guide for instructions for adding or +improving translations. GitHub push is the best way to contribute. +Additions and corrections welcome!

+
+
+

red box below is a link to forum post on how to get support

+ +

How to get support

+

Be Kind: Lithobrake, not jakebrake! Keep your Module Manager up to date

+
+ +

How to +support this and other great mods by zer0Kerbal

+

Support Patreon Github Sponsor Buy zer0Kerbal a snack

+
compiled with: KSP 1.12.4 — .NET 4.7.2 — C# 7.0
+ +

Release Schedule

+
    +
  1. GitHub, reaching first manual installers and users of KSP-AVC. Right +now.
  2. +
  3. CurseForge. Right now.
  4. +
  5. SpaceDock (and CKAN users). Soon™ (the button has been +pushed)
  6. +
+ + + + From 11ba4ca4fd1b6acc5fc146f210fec1d35b555039 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:33:44 -0600 Subject: [PATCH 67/84] Create Attributions.htm --- GameData/FieldTrainingLab/Attributions.htm | 58 ++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 GameData/FieldTrainingLab/Attributions.htm diff --git a/GameData/FieldTrainingLab/Attributions.htm b/GameData/FieldTrainingLab/Attributions.htm new file mode 100644 index 0000000..048dcb1 --- /dev/null +++ b/GameData/FieldTrainingLab/Attributions.htm @@ -0,0 +1,58 @@ + + + + +

+

Field Training Lab (FTL)

+

Home

+

Attribution

+

Credits

+
    +
  • Efour Efour for creating the Field Training Lab (FTL) addon!
  • +
  • Thank you to everyone who gave feedback! It's very important for me and highly appreciated.
  • +
+ +

Flag(s)

+ + +

Agency

+ + +

Special Thanks

+ + +

Translations

+
    +
  • English English
  • +
  • 中文 Simplified Chinese (中文)
  • thank you [@JFYoung01](https://github.com/JFYoung01) +
  • Additions and corrections welcome!
  • +
+ +

Art Asset(s)

+ +
+

Testing and Support

+ + From 2658c71f6aaa2e94e1aab55cfde8d133774ab598 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:33:45 -0600 Subject: [PATCH 68/84] Create changelog.md --- GameData/FieldTrainingLab/changelog.md | 338 +++++++++++++++++++++++++ 1 file changed, 338 insertions(+) create mode 100644 GameData/FieldTrainingLab/changelog.md diff --git a/GameData/FieldTrainingLab/changelog.md b/GameData/FieldTrainingLab/changelog.md new file mode 100644 index 0000000..41b5f7f --- /dev/null +++ b/GameData/FieldTrainingLab/changelog.md @@ -0,0 +1,338 @@ +# Changelog + +| modName | Field Training Lab (FTL) | +| ---------- | ----------------------------------------------------------------- | +| license | GPL-3.0 | +| author | Efour and zer0Kerbal | +| forum | (https://forum.kerbalspaceprogram.com/index.php?/topic/188841-*/) | +| github | (https://github.com/zer0Kerbal/zer0Kerbal/FieldTrainingLab) | +| curseforge | (https://www.curseforge.com/kerbal/ksp-mods/FieldTrainingLab) | +| spacedock | (https://spacedock.info/mod/971) | +| ckan | FieldTrainingLab | + +## Version 1.2.2.0-release `` edition + +* Released + * 11 Jan 2023 + * Release for Kerbal Space Program 1.12.4 + * by [zer0Kerbal](https://github.com/zer0Kerbal) + +### Summary 1.2.2.0 + +* Recompiled for 1.12.4 with .NET 4.7.2 using C# 7.0 + +### Changes 1.2.2.0 + +#### Code 1.2.2.0 + +* Recompile for + * KSP 1.12.2 + * .Net 4.7.2 + * C# 7.0 + * v1.2.1.14 --> 1.2.2.22 + +#### Localization 1.2.2.0 + +* Code is localized. + * 1.0.2.0 + * v1.0.1.0 (needs a serious update - many strings added) + * add tags +* closes #14 - English +* closes #31 - Code Localization +* updates #13 - Localization - Master + +#### Compatability 1.2.2.0 + +* Add + * v1.0.0.0 + * v1.0.0.0 + * v1.0.0.0 +* Update + * v1.3.0.0 +* courtesy of [Gordon Dry](https://forum.kerbalspaceprogram.com/index.php?/profile/163177*/) + +#### Config 1.2.2.0 + +* move primary patch into Config +* lint and update patches +* add tags to parts + +#### Status 1.2.2.0 + +* Issues + * closes #39 - Field Training Lab (FTL) 1.2.2.0-release `` edition + * closes #40 - 1.2.2.0 Additional Tasks + +--- + +## Version 1.2.1.0-release - `` edition + +* 28 Jun 2022 +* For Kerbal Space Program [1.12.x] + +### License + +* Update to GPLv3 + * was Expat/MIT +* closes #32 - Update License to GPLv3 + +### docs/ + +* Add + * [Attribution.md] v1.0.6.0 + * [ManualInstallation.md] v1.1.7.0 + * [404-petunia.md] + * [LegalMumboJumbo.md] v1.0.5.0 + * [Localizations.md] v1.1.3.1 + * [Notices.md] v1.0.0.0 + * [Why-not.md] + * [_config.yml] +* closes #2 - Needs a wiki +* closes #35 - add docs/ + +### Convert Changelog + +* Convert from .cfg to md +* Add missing information for earlier releases +* closes #33 - Convert Changelog + +### Code + +* Recompile for KSP 1.12.3 +* Using .NET 4.6.1 + * remove + * [InstallChecker.cs] + * [AssemblyVersion.tt] + * [Log.cs] + * update [Version.tt]] + +### Compatibility + +* Rename + * Patches to Compatibility +* Update + * licenses + * [Kerbalism.cfg] v1.0.1.0 + * fixes #34 - [Bug 🐞]: Kerbalism.cfg + +### Add + +* Agent +* Flag + * 512x320 + * 64x40 truecolor_scaled + +### Localization + +* Add + * [readme.md] v2.1.2.0 + * [quickstart.md] v1.0.1.1 +* updates #14 - English +* updates #13 - Localization - Master +* updates #31 - Code Localization +* updates #22 - Simplified Chinese (简体中文) + +### Status + +* Issues + * closes #9 - Field Training Lab (FTL) 1.2.1.0-release `` + * closes #10 - 1.2.1.0 Verify Legal Mumbo Jumbo + * closes #11 - 1.2.1.0 Update Documentation + * closes #12 - 1.2.1.0 Update Social Media +* Closes Duplicate Issues + * #1 - Localization + * #4 - :sparkles: **Localization** :sparkles: + * #5 - Localization - en-us.cfg (English) + * #6 - Localization - pt-br.cfg Brazil + * #7 - Localization - zh-cn.cfg - Simplified Chinese + * #8 - Update Field Training Laboratory (FTL) + +--- + +## Version 1.2.0.0 - `` + +* 05 Apr 2020 +* KSP 1.9.1 +* .NET 4.8 + +### Code 1.2.0.0 + +* update + * Editor GetInfo() to be more informative + * include assembly version in PAW +* Add + * game settings page + * ***disabled for now*** + * game settings page + * global setting to enable/disable PAW color + * option to globally enable/disable + * option: use science and ratio + * option: use reputation and ratio + * option: use funds and ratio + +--- + +## Version = 1.1.0.0 - `` + +* KSP 1.8.1 with .NET 4.8 + +* isn't that enough? :D +* started adding in JoyntMail :D + +--- + +## Version = 1.0.3.5 - ` Plugins/Textures/ + +### Deployment and Backend + +* Update + * [Changelog.cfg] + * to include new Kerbal Changelog features + * [_deploy] + * [_buildRelease] + * [.gitattributes] + * [].gitignore] + * [*Readme.md] + * automated Readme.md -> Readme.htm + * Readme.htm now included in release + * Releases.layout.md +* [CONTRIBUTING.md] now included in repository +* [FieldTrainingLab.version] to be avc compliant +* Added + * avc github checker and badge +* Added + * json's + +--- + +## Verison 1.0.3.4.1 - `` edition + +* released Oct 1, 2019 +* for KSP 1.7.x +* removed SimpleLogistics.dll that stowed away. + +--- + +## Version 1.0.3.4 + +### Adoption by zer0Kerbal + +### Code 1.0.3.4 + +* Added + * PAW grouping (really needed for these mods) + * a blurb in the editor getInfo{} + * [InstallChecker.cs] + +### Compatibility 1.0.3.4 + +* Updated + * [FieldTrainingLab.cfg] + * now patches all parts with moduleScienceLab + * changed the [TrainingLab] to be [FieldTrainingLab] + * patches reflect this +* Removed + * other patch + +--- + +## Version 1.0.3.3 + +=--- original ---= + +* for Kerbal Space Program 1.6.1 +* Released on 2018-12-21 + +* Efour's last release +* Recompiled 1.6.0 + +--- + +## Version 1.0.3.2 + +* for Kerbal Space Program 1.5.1 +* Released on 2018-10-30 + +* Recompiled for 1.5.1 + +--- + +## Version 1.0.3.1 + +* for Kerbal Space Program 1.3.1 +* Released on 2017-11-27 + +* Recompiled KSP 1.3.1 + +--- + +## Version 1.0.3 + +* for Kerbal Space Program 1.2.2 +* Released on 2016-11-03 + +* Recompiled to 1.2.1 + +--- + +## Version 1.0.2.1 + +* for Kerbal Space Program 1.2 +* Released on 2016-10-22 + +* KPBS support + +--- + +## Version 1.0.2 + +* for Kerbal Space Program 1.2 +* Released on 2016-10-16 + +* Calculating Dead and respawned kerbalnaut + +--- + +## Version 1.0.1.0 + +* for Kerbal Space Program 1.2 +* Released on 2016-10-12 + +* Co-Work with Field Training Facility Mod + +--- + +## Version 1.0.0.0 + +* for Kerbal Space Program 1.2 +* Released on 2016-10-08 + +* No changelog provided + +--- + +## Version 1.0.0.0 + +* for Kerbal Space Program 1.1.3 +* Released on 2016-10-07 + +* No changelog provided + +--- From 7f449b09f9499a1a20fb1cc9fcfd3ecc403f0c09 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:33:46 -0600 Subject: [PATCH 69/84] Delete FieldTrainingLab.cfg --- .../Compatibility/FieldTrainingLab.cfg | 31 ------------------- 1 file changed, 31 deletions(-) delete mode 100644 GameData/FieldTrainingLab/Compatibility/FieldTrainingLab.cfg diff --git a/GameData/FieldTrainingLab/Compatibility/FieldTrainingLab.cfg b/GameData/FieldTrainingLab/Compatibility/FieldTrainingLab.cfg deleted file mode 100644 index 91e4b00..0000000 --- a/GameData/FieldTrainingLab/Compatibility/FieldTrainingLab.cfg +++ /dev/null @@ -1,31 +0,0 @@ -// FieldTrainingLab.cfg v1.1.3.0 -// Field Training Lab (FTL) -// created: 21 Sep 2019 -// updated: 10 Jan 2023 - -// This file: GPL-3.0 by zer0Kerbal - -@PART[*]:HAS[@MODULE[ModuleScienceLab]]:NEEDS[FieldFieldTrainingLab]:FOR[FieldFieldTrainingLab] -{ - tmp00 = \n<#6495ED> - tmp01 = #FTL-Agency-titl - tmp02 = - tmp03 = #FTL-tags - @description = #$description$$tmp00$$tmp01$$tmp02$ - // @description ^= :(.)$:$0\n<#6495ED>Field Training Lab. : - @tags = #$tags$ $tmp03$ - !tmp01 = DELETE - !tmp02 = DELETE - !tmp03 = DELETE - !tmp04 = DELETE - - %MODULE[FieldFieldTrainingLab] - { - // Science Cost = TrainingFactor * exp needed * conditions(inSpace, Landed on other planet) - // example : landed on minmus, level 4->5 : 20 * 32 * 0.25 = 160 - %TimeFactor = 9201600 // 4600800 - %TrainFactor = 20 - %inSpace = 0.5 - %Landed = 0.25 - } -} From 4d652c01ec6dabc31119bcec72fead9bae041e8d Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:33:48 -0600 Subject: [PATCH 70/84] Create FieldTrainingLab.cfg --- .../Config/FieldTrainingLab.cfg | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 GameData/FieldTrainingLab/Config/FieldTrainingLab.cfg diff --git a/GameData/FieldTrainingLab/Config/FieldTrainingLab.cfg b/GameData/FieldTrainingLab/Config/FieldTrainingLab.cfg new file mode 100644 index 0000000..d39b4db --- /dev/null +++ b/GameData/FieldTrainingLab/Config/FieldTrainingLab.cfg @@ -0,0 +1,31 @@ +// FieldTrainingLab.cfg v1.1.3.0 +// Field Training Lab (FTL) +// created: 21 Sep 2019 +// updated: 10 Jan 2023 + +// This file: GPL-3.0 by zer0Kerbal + +@PART[*]:HAS[@MODULE[ModuleScienceLab]]:NEEDS[FieldFieldTrainingLab]:FOR[FieldFieldTrainingLab] +{ + tmp00 = \n<#6495ED> + tmp01 = #FTL-titl + tmp02 = + tmp03 = #FTL-tags + @description = #$description$$tmp00$$tmp01$$tmp02$ + // @description ^= :(.)$:$0\n<#6495ED>Field Training Lab. : + @tags = #$tags$ $tmp03$ + !tmp01 = DELETE + !tmp02 = DELETE + !tmp03 = DELETE + !tmp04 = DELETE + + %MODULE[FieldTrainingLab] + { + // Science Cost = TrainingFactor * exp needed * conditions(inSpace, Landed on other planet) + // example : landed on minmus, level 4->5 : 20 * 32 * 0.25 = 160 + %TimeFactor = 9201600 // 4600800 + %TrainFactor = 20 + %inSpace = 0.5 + %Landed = 0.25 + } +} From 0ff04367c2f090da6c34bc1a8c2f52a29884f2b4 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:33:49 -0600 Subject: [PATCH 71/84] Create FieldTrainingLab.version --- .../FieldTrainingLab/FieldTrainingLab.version | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 GameData/FieldTrainingLab/FieldTrainingLab.version diff --git a/GameData/FieldTrainingLab/FieldTrainingLab.version b/GameData/FieldTrainingLab/FieldTrainingLab.version new file mode 100644 index 0000000..0079ba7 --- /dev/null +++ b/GameData/FieldTrainingLab/FieldTrainingLab.version @@ -0,0 +1,36 @@ +{ + "NAME" : "Field Training Lab (FTL) by Efour", + "URL" : "https://raw.githubusercontent.com/zer0Kerbal/FieldTrainingLab/master/FieldTrainingLab.version", + "DOWNLOAD" : "https://github.com/zer0Kerbal/FieldTrainingLab/releases/latest", + "CHANGE_LOG_URL" : "https://raw.githubusercontent.com/zer0Kerbal/FieldTrainingLab/master/changelog.md", + "GITHUB" : + { + "USERNAME" : "zer0Kerbal", + "REPOSITORY" : "FieldTrainingLab", + "ALLOW_PRE_RELEASE" : false + }, + "VERSION" : + { + "MAJOR" : 1, + "MINOR" : 2, + "PATCH" : 2, + "BUILD" : 0 + }, + "KSP_VERSION" : + { + "MAJOR" : 1, + "MINOR" : 12, + "PATCH" : 4 + }, + "KSP_VERSION_MIN" : + { + "MAJOR" : 1, + "MINOR" : 8, + "PATCH" : 1 + }, + "INSTALL_LOC" : + { + "NAME" : "FieldTrainingLab", + "DIRECTORY" : "FieldTrainingLab" + } +} \ No newline at end of file From 94afedeffcc17a158b48b3f5a2347081972f45f6 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:33:50 -0600 Subject: [PATCH 72/84] Create GPL-3.0.txt --- GameData/FieldTrainingLab/GPL-3.0.txt | 674 ++++++++++++++++++++++++++ 1 file changed, 674 insertions(+) create mode 100644 GameData/FieldTrainingLab/GPL-3.0.txt diff --git a/GameData/FieldTrainingLab/GPL-3.0.txt b/GameData/FieldTrainingLab/GPL-3.0.txt new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/GameData/FieldTrainingLab/GPL-3.0.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. From 43e7ddc98cbf15116aacffab42f4640df0aa5bbf Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:33:51 -0600 Subject: [PATCH 73/84] Update en-us.cfg --- .../FieldTrainingLab/Localization/en-us.cfg | 53 ++++++++++--------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/GameData/FieldTrainingLab/Localization/en-us.cfg b/GameData/FieldTrainingLab/Localization/en-us.cfg index 4c139e2..fcbc4bc 100644 --- a/GameData/FieldTrainingLab/Localization/en-us.cfg +++ b/GameData/FieldTrainingLab/Localization/en-us.cfg @@ -23,14 +23,35 @@ Localization // functions #FTL-max = <<1>> already had every training. - #FTL-insufficent = Insufficient <<1>>.\nNeed: <<2>>, Remain: <<3>> + #FTL-insufficent = Insufficient <<1>>.\nNeed: <<2>>, Available: <<3>> #FTL-complete = <<1>> Training Complete : <<2>> #FTL-editor = off + #FTL-1st = 1st + #FTL-2nd = 2nd + #FTL-3rd = 3rd + #FTL-4th = 4th + #FTL-5th = 5th + #FTL-null = null + + #FTL-status = Training Lab Status + #FTL-funds-sci = Science Points + #FTL-funds-rep = Reputation + #FTL-funds-fnd = Kerbal Bucks (Funds) + + #FTL-training-0 = Training0 + #FTL-training-1 = Training1 + #FTL-training-2 = Training2 + #FTL-training-3 = Training3 + #FTL-training-4 = Training4 + #FTL-training-5 = Training5 + #FTL-training-6 = Training6 + #FTL-training-7 = Training7 + // settings - #FTL-1000000 = [WIP] Field Training Lab (FTL) Settings - #FTL-1000001 = [WIP] Field Training (FTL) A - #FTL-1000002 = [WIP] Field Training (FTL) B + #FTL-settings-title-label = [WIP] Field Training Lab (FTL) + #FTL-settings-section = [WIP] Field Training (FTL) A + #FTL-settings-section-display-label = Field Training Lab (FTL) #FTL-settings-enable = Enable Field Training Lab? #FTL-settings-enable-tt = Field Training Labs are enabled if set to yes. @@ -64,29 +85,11 @@ Localization #FTL-settings-pawColor = PAW Color #FTL-settings-pawColor-tt = allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). + #FTL-settings-useStars = Use stars instead of numbers + #FTL-settings-useStars-tt = Use stars instead of numbers in the PAW + // constants #FTL-addon-nameFolder = FieldTrainingLab #FTL-addon-name = Field Training Lab - - #FTL-1st = 1st - #FTL-2nd = 2nd - #FTL-3rd = 3rd - #FTL-4th = 4th - #FTL-5th = 5th - #FTL-null = null - - #FTL-status = Training Lab Status - #FTL-funds-sci = Science Points - #FTL-funds-rep = Reputation - #FTL-funds-fnd = Kerbal Bucks - - #FTL-training-0 = Training0 - #FTL-training-1 = Training1 - #FTL-training-2 = Training2 - #FTL-training-3 = Training3 - #FTL-training-4 = Training4 - #FTL-training-5 = Training5 - #FTL-training-6 = Training6 - #FTL-training-7 = Training7 } } \ No newline at end of file From bc01ceb85af888337a878abbcad1887305277e51 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:33:52 -0600 Subject: [PATCH 74/84] Update zh-cn.cfg --- .../FieldTrainingLab/Localization/zh-cn.cfg | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/GameData/FieldTrainingLab/Localization/zh-cn.cfg b/GameData/FieldTrainingLab/Localization/zh-cn.cfg index 96c4ab1..869d4fe 100644 --- a/GameData/FieldTrainingLab/Localization/zh-cn.cfg +++ b/GameData/FieldTrainingLab/Localization/zh-cn.cfg @@ -20,6 +20,78 @@ Localization // Field Training Lab #FTL-titl = 实战演练实验室 + #FTL-nameV = 实战演练实验室 v <<1>> #FTL-desc = 使用科技点数来培训坎巴拉人 + + // functions + #FTL-max = <<1>> already had every training. + #FTL-insufficent = Insufficient <<1>>.\nNeed: <<2>>, Available: <<3>> + #FTL-complete = <<1>> Training Complete : <<2>> + #FTL-editor = off + + #FTL-1st = 1st + #FTL-2nd = 2nd + #FTL-3rd = 3rd + #FTL-4th = 4th + #FTL-5th = 5th + #FTL-null = null + + #FTL-status = Training Lab Status + #FTL-funds-sci = Science Points + #FTL-funds-rep = Reputation + #FTL-funds-fnd = Kerbal Bucks (Funds) + + #FTL-training-0 = Training0 + #FTL-training-1 = Training1 + #FTL-training-2 = Training2 + #FTL-training-3 = Training3 + #FTL-training-4 = Training4 + #FTL-training-5 = Training5 + #FTL-training-6 = Training6 + #FTL-training-7 = Training7 + + // settings + #FTL-settings-title-label = [WIP] Field Training Lab (FTL) + #FTL-settings-section = [WIP] Field Training (FTL) A + #FTL-settings-section-display-label = Field Training Lab (FTL) + + #FTL-settings-enable = Enable Field Training Lab? + #FTL-settings-enable-tt = Field Training Labs are enabled if set to yes. + + #FTL-settings-paymentLabel = Payment Label + #FTL-settings-paymentLabel-tt = Science/Reputation/Funds + + #FTL-settings-paymentType = How would you like to pay for your kerbal training? + #FTL-settings-paymentType-tt = Require Science Points to advance + + #FTL-settings-paymentScience = If enabled, requires expending Science points to gain experience. + #FTL-settings-paymentScience-tt = Science : Experience + + #FTL-settings-paymentScienceRatio = Ratio of Science Points per Experience Point. + #FTL-settings-paymentScienceRatio-tt = Require Reputation to advance + + #FTL-settings-paymentRep = If enabled, requires expending Reputation to gain experience. + #FTL-settings-paymentRep-tt = Reputation : Experience + + #FTL-settings-paymentRepRatio = Ratio of Reputation per Experience Point. + #FTL-settings-paymentRepRatio-tt = Require Funds to advance + + #FTL-settings-paymentFunds = If enabled, requires expending Funds to gain experience. + #FTL-settings-paymentFunds-tt = Funds : Experience + + #FTL-settings-paymentFundsRatio = Ratio of Funds per Experience Point. + #FTL-settings-paymentFundsRatio-tt = KSPMail + + #FTL-settings-mail-tt = Recieve a colorful Joyntmail announcing graduation to a new rank?. + + #FTL-settings-pawColor = PAW Color + #FTL-settings-pawColor-tt = allow color coding in Field Training Lab PAW (part action window) / RMB (right menu button). + + #FTL-settings-useStars = Use stars instead of numbers + #FTL-settings-useStars-tt = Use stars instead of numbers in the PAW + +// constants + #FTL-addon-nameFolder = FieldTrainingLab + #FTL-addon-name = Field Training Lab } } \ No newline at end of file From 87eb2549174efae8c5f9671f3bd028c5420674a4 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:33:53 -0600 Subject: [PATCH 75/84] Create ManualInstallation.htm --- .../FieldTrainingLab/ManualInstallation.htm | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 GameData/FieldTrainingLab/ManualInstallation.htm diff --git a/GameData/FieldTrainingLab/ManualInstallation.htm b/GameData/FieldTrainingLab/ManualInstallation.htm new file mode 100644 index 0000000..8805003 --- /dev/null +++ b/GameData/FieldTrainingLab/ManualInstallation.htm @@ -0,0 +1,99 @@ + + + + +

Field Training Lab (FTL)

+

Home

+

This addon provides training for your kerbalnauts by adding a +training center to all science laboratories. Training consumes Time and +Electric Charge. For Kerbal Space Program.

+

Installation Instructions

+

Using CurseForge/OverWolf +app or CKAN

+

You should be all good! (check for latest version on CurseForge)

+

If +Downloaded from CurseForge/OverWolf manual download

+

To install, place the FieldTrainingLab folder inside +your Kerbal Space Program's GameData folder:

+
    +
  • REMOVE ANY OLD VERSIONS OF THE PRODUCT BEFORE +INSTALLING +
      +
    • Delete `<KSP_ROOT>/GameData/FieldTrainingLab
    • +
  • +
  • Extract the package's FieldTrainingLab/ folder into +your KSP's GameData folder as follows: +
      +
    • <PACKAGE>/FieldTrainingLab --> +<KSP_ROOT>/GameData/ +
        +
      • Overwrite any preexisting folder/file(s).
      • +
    • +
    • you should end up with +<KSP_ROOT>/GameData/FieldTrainingLab
    • +
  • +
+

If Downloaded from +SpaceDock / GitHub / other

+

To install, place the GameData folder inside your Kerbal +Space Program folder:

+
    +
  • REMOVE ANY OLD VERSIONS OF THE PRODUCT BEFORE +INSTALLING, including any other fork: +
      +
    • Delete <KSP_ROOT>/GameData/FieldTrainingLab
    • +
  • +
  • Extract the package's GameData folder into your KSP's +root folder as follows: +
      +
    • <PACKAGE>/GameData --> +<KSP_ROOT> +
        +
      • Overwrite any preexisting file.
      • +
    • +
    • you should end up with +<KSP_ROOT>/GameData/FieldTrainingLab
    • +
  • +
+

The +following file layout must be present after installation

+
<KSP_ROOT>
+  + [GameData]
+    + [FieldTrainingLab]
+      + [Agencies]
+        ...
+      + [Compatibility]
+        ...
+      + [Contracts]
+        ...
+      + [Flags]
+        ...
+      + [Localization]
+        ...
+      + [Plugins]
+        ...
+      * #.#.#.#.htm
+      * Attributions.htm
+      * changelog.md
+      * FieldTrainingLab.version
+      * GPL-3.03.txt
+      * ManualInstallation.htm
+      * readme.htm
+    ...
+    * [Module Manager /L][mml] or [Module Manage][mm]
+    * ModuleManager.ConfigCache
+  * KSP.log
+  ...
+

Dependencies

+ From c8408e5d7b851e540044df37e3d3b16731c473a1 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:33:54 -0600 Subject: [PATCH 76/84] Create readme.htm --- GameData/FieldTrainingLab/readme.htm | 472 +++++++++++++++++++++++++++ 1 file changed, 472 insertions(+) create mode 100644 GameData/FieldTrainingLab/readme.htm diff --git a/GameData/FieldTrainingLab/readme.htm b/GameData/FieldTrainingLab/readme.htm new file mode 100644 index 0000000..3b295fb --- /dev/null +++ b/GameData/FieldTrainingLab/readme.htm @@ -0,0 +1,472 @@ + + + + +

KSP version License
+Curseforge GitHub SpaceDock CKAN
+Pages

+

Field Training Lab (FTL)

+

This mod provides training for your kerbalnauts by adding a Field +Training Lab into all science laboratories.

+

Field Training Lab provides a training method that consumes +science points to earn a kerbal experience (stars).

+

By zer0Kerbal, originally by Efour

+

adopted with express permission and brought to you by +KerbSimpleCo

+FieldTrainingLab Hero + +

Pay 20 science and your kerbal recieved 1 experience. Once your +kerbal has gained enough experience, they will level up (max of level +5). Must buy one entire level at a time.

+

Costs: 1

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LevelStarsAdditional XPTotal XPscience cost
0☆☆☆☆☆0020 science
1★☆☆☆☆22+40 science
2★★☆☆☆68+120 science
3★★★☆☆816+160 science
4★★★★☆1632+320 science
5★★★★★3264+640 science
+

Training costs will be +reduced

+
    +
  • by 50% when your Field Training Lab is in orbit
  • +
  • by 75% when your Field Training Lab is on other planet
  • +
+FieldTrainingLab Hero + +

Cabin notes

+
    +
  • You can tweak values by editing the part.cfg or using a +ModuleManager patch.
  • +
  • This module can be added to other crewed parts directly or using a +ModuleManager patch.
  • +
  • The code currently only works with the first eight kerbals in a +part.
  • +
+
+

Field Training Facility (FTF)

+
    +
  • If leveling up immediately is not realistic?
  • +
  • Do you think training needs time to complete?
  • +
  • then Field Training Facility will be the +answer for you.
  • +
  • The Field Training Facility (FTF) consumes Time and +Electric Charge in order to train (school) your +kerbalnauts.
  • +
+FieldTrainingFacility + +
+

And you can have both +installed

+ +

The longer you train with FTF, the less science it costs to level +immediately using the FTL.

+

For example:

+

Just using FTL, Level 4 -> Level 5 consumes 640p of Science point. +But Level 4(50% with FTF) -> Level 5 consumes just 320p of science +point. If 90% with FTF? Just pay 64p of science point or wait some more +days. you can get level 5 kerbalnaut.

+

More training means less science points needed, linearly.

+

These two addons can +cooperate

+

If you want one thing, you can install just one mod. If you install +both, they will cooperate and your kerbals profit!!

+
+

See More

+
    +
  • Discussions and news on this mod: See Discussions or KSP Forums
  • +
  • Changelog Summary for more details of changes: See ChangeLog
  • +
  • Known Issues for more details of feature requests and known issues : +See Known Issues
  • +
  • GitHub Pages : See Pages
  • +
+
+

Youtube review by Kottabos Gaming

+

+

Help Wanted

+
+
    +
  • A logo for this and Field Training Facility addons
  • +
  • Compatibility patches
  • +
  • Have a request? Glad to have them, kindly submit through GitHub.
  • +
+
+
+

Localization

+
+
    +
  • English English
  • +
  • 中文 Simplified Chinese (中文) thank you to @JFYoung01
  • +
  • your translation here
  • +
+

HELP WANTED - See the README in the Localization folder or the +Quickstart Guide for instructions for adding or +improving translations. GitHub push is the best way to contribute. +Additions and corrections welcome!

+
+
+

Installation Directions 2

+

Use CurseForge/OverWolf App

+ + CurseForge/OverWolf App + + +
+

Whilst I agree CKAN is a great mod for those that can't use zip +tools, I take no part, nor am interested in maintaining the CKAN mod +metadata for my mods.

+

Please don't ask me about it but refer to the CKAN mod thread if you +are having issues with CKAN or the metadata it maintains. Beware, CKAN +can really mess up though it tries very, very, very +hard not to.

+
+

or CKAN

+

Dependencies

+ +

Recommends

+ +

Suggests

+ +

Supports

+ +
+

red box below is a link to forum post on how to get support

+ +

How to get support

+

Be Kind: Lithobrake, not jakebrake! Keep your Module Manager up to date

+
+ +

Credits and Special Thanks

+
    +
  • Efour for creating these glorious Kerbonaut Training +addons!
  • +
  • see Attribution.md for more comprehensive list
  • +
+ +

Current (2) - zer0Kerbal

+
+

Forum: Thread - Source: GitHub
+License: License

+
Disclaimer(s)
+

All bundled mods are distributed under their own +licenses
+All art assets (textures, models, animations, sounds) are +distributed under their own licenses

+
+ +

Author (1) - Author: zer0Kerbal

+
+

Forum: Thread - Download: CurseForge - Source: GitHub
+License: License

+
+

Original (0) - Author: Efour

+
+

Forum: Thread - Download: Dropbox - +Source: Dropbox
+License: License

+
+
+

How to +support this and other great mods by zer0Kerbal

+

Support Github Sponsor Patreon Buy zer0Kerbal a snack

+ + + + + + + + + + + + + + + + + + + + + + +
+

Connect with me

+

Track progress: issues here and projects here +along with The Short +List

+

zer0Kerbal | kerbalspaceprogram.com +zer0Kerbal | CurseForge +zer0Kerbal | reddit +zer0Kerbal | Patreon +zer0Kerbal | YouTube +zer0Kerbal | Twitch +zer0Kerbal | PayPal +zer0Kerbal | Buy Me a Coffee +zer0Kerbal | Twitter

+ + +
+
+
    +
  1. KSP Wiki: Experience↩︎

  2. +
  3. this isn't a mod. ;P↩︎

  4. +
  5. may work on other versions +(YMMV)↩︎

  6. +
  7. Be Kind: Lithobrake, not jakebrake! Keep your Module +Manager up to date!↩︎

  8. +
+
From 6d75109fe094f7fab1438d96d25de2fcb8bc7da1 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:33:56 -0600 Subject: [PATCH 77/84] Update Constants.cs --- source/Constants.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/source/Constants.cs b/source/Constants.cs index aba67f6..9478457 100644 --- a/source/Constants.cs +++ b/source/Constants.cs @@ -1,6 +1,6 @@ /* Field Training Lab (FTL) * This addon adds a training center in the science laboratory. Paying science points gets kerbals experience. For Kerbal Space Program. - * Copyright (C) 2016 EFour + * Copyright (C) 2016 Efour * Copyright (C) 2019, 2022, 2023 zer0Kerbal (zer0Kerbal at hotmail dot com) * * This program is free software: you can redistribute it and/or modify @@ -22,14 +22,22 @@ using FieldTrainingLab; using KSP.Localization; +/// Constants public class Constants { +/// Constants: addon folder name public const string MODNAME = "#FTL-addon-nameFolder"; // #FTL-addon-nameFolder = FieldTrainingLab +/// Constants: addon name public const string MODTITLE = "#FTL-addon-name"; // #FTL-addon-name = Field Training Lab +/// Constants: root path public static readonly string ROOT_PATH = KSPUtil.ApplicationRootPath; +/// Constants: config base folder (GameData) public static readonly string CONFIG_BASE_FOLDER = ROOT_PATH + "GameData/"; +/// Constants: addon base folder public static string FTL_BASE_FOLDER { get { return CONFIG_BASE_FOLDER + MODNAME + "/"; } } +/// Constants: mod name public static string FTL_NODENAME = MODNAME; +/// Constants: location and name of configuration file public string FTL_CFG_FILE { get { return FTL_BASE_FOLDER + "PluginData/settings.ftl"; } } //public string FTL_CFG_FILE { get { return FTL_BASE_FOLDER + "PluginData/FTL_Settings.cfg"; } } } From 288e8457341f72c00afbeccad2e084342bfd8b67 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:33:57 -0600 Subject: [PATCH 78/84] Update FieldTrainingLab.csproj --- source/FieldTrainingLab.csproj | 209 ++++++++++++++++----------------- 1 file changed, 104 insertions(+), 105 deletions(-) diff --git a/source/FieldTrainingLab.csproj b/source/FieldTrainingLab.csproj index 57ef514..2380bff 100644 --- a/source/FieldTrainingLab.csproj +++ b/source/FieldTrainingLab.csproj @@ -1,100 +1,99 @@  - - - Debug - AnyCPU - {AD686AF3-DDDC-4991-909F-EAD9C16C469B} - Library - false - FieldTrainingLab - - v4.7.2 - 512 - true - latest - - - - true - full - false - ..\GameData\FieldTrainingLab\Plugins\ - DEBUG;TRACE - prompt - 4 - false - false - anycpu - ..\..\docs\Code\Code.xml - - - embedded - true - ..\GameData\FieldTrainingLab\Plugins\ - TRACE - true - prompt - 4 - false - anycpu - false - ..\..\docs\Code\Code.xml - - - false - true - true - false - - - - False - - - False - - - False - - - False - - - - - - - - - - - - - - - True - True - Version.tt - - - - - TextTemplatingFileGenerator - Version.cs - - - - - - - - - "$(DevEnvDir)\TextTransform.exe" "$(ProjectDir)Properties\Version.tt" + + + Debug + AnyCPU + {AD686AF3-DDDC-4991-909F-EAD9C16C469B} + Library + false + FieldTrainingLab + + v4.7.2 + 512 + true + latest + + + + true + full + false + ..\GameData\FieldTrainingLab\Plugins\ + DEBUG;TRACE + prompt + 4 + false + false + anycpu + ..\..\docs\Code\Code.xml + + + embedded + true + ..\GameData\FieldTrainingLab\Plugins\ + TRACE + true + prompt + 4 + false + anycpu + false + ..\..\docs\Code\Code.xml + + + false + true + true + false + + + + False + + + False + + + False + + + False + + + + + + + + + + + + + + True + True + Version.tt + + + + + TextTemplatingFileGenerator + Version.cs + + + + + + + + + "$(DevEnvDir)\TextTransform.exe" "$(ProjectDir)Properties\Version.tt" - - - + + + set K112=$(K112) IF "%25K112%25"=="" ( ECHO Configuration error - K112 not specified in project. @@ -108,15 +107,15 @@ if $(ConfigurationName) == Release start /D $(SolutionDir)..\ /WAIT _addonRelea del $(TargetDir)\*.tmp :DONE - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file From 8083a2cbf534331d887c2927eaadfb012b5f5fd7 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:33:58 -0600 Subject: [PATCH 79/84] Update FieldTrainingLabModule.cs --- source/FieldTrainingLabModule.cs | 508 ++----------------------------- 1 file changed, 19 insertions(+), 489 deletions(-) diff --git a/source/FieldTrainingLabModule.cs b/source/FieldTrainingLabModule.cs index 2c4cafe..ab3c587 100644 --- a/source/FieldTrainingLabModule.cs +++ b/source/FieldTrainingLabModule.cs @@ -1,6 +1,6 @@ /* Field Training Lab (FTL) * This addon adds a training center in the science laboratory. Paying science points gets kerbals experience. For Kerbal Space Program. - * Copyright (C) 2016 EFour + * Copyright (C) 2016 Efour * Copyright (C) 2019, 2022, 2023 zer0Kerbal (zer0Kerbal at hotmail dot com) * * This program is free software: you can redistribute it and/or modify @@ -23,255 +23,6 @@ namespace FieldTrainingLab { - -<<<<<<< Updated upstream - /// - /// - public class FieldTrainingLab : PartModule - { - ProtoCrewMember[] crewArr = new ProtoCrewMember[8]; - string[] eventArr = - { - "TrainKerbalInside0", - "TrainKerbalInside1", - "TrainKerbalInside2", - "TrainKerbalInside3", - "TrainKerbalInside4", - "TrainKerbalInside5", - "TrainKerbalInside6", - "TrainKerbalInside7", - }; - - string[] trainingArr = - { - "", - "Training1", - "Training2", - "Training3", - "Training4", - "Training5" - }; - - float[] levelUpExpTable = { 2, 6, 8, 16, 32, 0 }; - - string[] levelNumber = { "1st", "2nd", "3rd", "4th", "5th", "null"}; - - [KSPField] - public int TrainFactor = 20; - - [KSPField] - public float inSpace = 0.5f; - - [KSPField] - public float Landed = 0.25f; - - [KSPField] - public float TimeFactor = 426 * 6 * 60 * 60; // 1Year = 426day, 1day = 6hour, 1hour = 60minutes, 1min = 60sec - - [KSPField(isPersistant = true, guiActive = true, guiName = "Training Lab Status", groupName = "TrainingLab", groupDisplayName = "Training Lab v" + Version.SText, groupStartCollapsed = true)] - public bool TrainingStatus = false; - - [KSPField(guiActive = false, guiName = "Science Point", groupName = "TrainingLab", groupDisplayName = "Field Training Lab", groupStartCollapsed = true)] - public int SciRemain; - - [KSPEvent(guiActive = false, guiName = "Training0", groupName = "TrainingLab")] - public void TrainKerbalInside0() - { - TrainKerbal(0); - } - [KSPEvent(guiActive = false, guiName = "Training1", groupName = "TrainingLab")] - public void TrainKerbalInside1() - { - TrainKerbal(1); - } - [KSPEvent(guiActive = false, guiName = "Training2", groupName = "TrainingLab")] - public void TrainKerbalInside2() - { - TrainKerbal(2); - } - [KSPEvent(guiActive = false, guiName = "Training3", groupName = "TrainingLab")] - public void TrainKerbalInside3() - { - TrainKerbal(3); - } - [KSPEvent(guiActive = false, guiName = "Training4", groupName = "TrainingLab")] - public void TrainKerbalInside4() - { - TrainKerbal(4); - } - [KSPEvent(guiActive = false, guiName = "Training5", groupName = "TrainingLab")] - public void TrainKerbalInside5() - { - TrainKerbal(5); - } - [KSPEvent(guiActive = false, guiName = "Training6", groupName = "TrainingLab")] - public void TrainKerbalInside6() - { - TrainKerbal(6); - } - [KSPEvent(guiActive = false, guiName = "Training7", groupName = "TrainingLab")] - public void TrainKerbalInside7() - { - TrainKerbal(7); - } - - #region private functions - private void TrainKerbal(int index) - { - ProtoCrewMember crew = crewArr[index]; - - int lastLog = GetCrewTrainedLevel(crew); - - if (lastLog == 5) - { - ScreenMessages.PostScreenMessage(crew.name + " already had every training."); - return; - } - - float SciCost = CalculateSciCost(levelUpExpTable[lastLog], crew); - if (ResearchAndDevelopment.Instance.Science < SciCost) - { - ScreenMessages.PostScreenMessage("Insufficient Science Points.\n" + - "Needed : " + SciCost + ", Remain : " + ResearchAndDevelopment.Instance.Science); - return; - } - ResearchAndDevelopment.Instance.AddScience(-1 * SciCost, TransactionReasons.CrewRecruited); - RemoveKerbalTrainingExp(crew); - crew.flightLog.AddEntry(new FlightLog.Entry(crew.flightLog.Flight, trainingArr[lastLog+1], "Kerbin")); - ScreenMessages.PostScreenMessage(levelNumber[lastLog] + " Training Complete : " + crew.name); - - } -#endregion - -#region public functions - public override void OnUpdate() - { - if (HighLogic.CurrentGame.Mode != Game.Modes.CAREER) return; -======= -<<<<<<< Updated upstream - /// - /// - public class FieldTrainingLab : PartModule - { - ProtoCrewMember[] crewArr = new ProtoCrewMember[8]; - string[] eventArr = - { - "TrainKerbalInside0", - "TrainKerbalInside1", - "TrainKerbalInside2", - "TrainKerbalInside3", - "TrainKerbalInside4", - "TrainKerbalInside5", - "TrainKerbalInside6", - "TrainKerbalInside7", - }; - - string[] trainingArr = - { - "", - "Training1", - "Training2", - "Training3", - "Training4", - "Training5" - }; - - float[] levelUpExpTable = { 2, 6, 8, 16, 32, 0 }; - - string[] levelNumber = { "1st", "2nd", "3rd", "4th", "5th", "null"}; - - [KSPField] - public int TrainFactor = 20; - - [KSPField] - public float inSpace = 0.5f; - - [KSPField] - public float Landed = 0.25f; - - [KSPField] - public float TimeFactor = 426 * 6 * 60 * 60; // 1Year = 426day, 1day = 6hour, 1hour = 60minutes, 1min = 60sec - - [KSPField(isPersistant = true, guiActive = true, guiName = "Training Lab Status", groupName = "TrainingLab", groupDisplayName = "Training Lab v" + Version.Text, groupStartCollapsed = true)] - public bool TrainingStatus = false; - - [KSPField(guiActive = false, guiName = "Science Point", groupName = "TrainingLab", groupDisplayName = "Field Training Lab", groupStartCollapsed = true)] - public int SciRemain; - - [KSPEvent(guiActive = false, guiName = "Training0", groupName = "TrainingLab")] - public void TrainKerbalInside0() - { - TrainKerbal(0); - } - [KSPEvent(guiActive = false, guiName = "Training1", groupName = "TrainingLab")] - public void TrainKerbalInside1() - { - TrainKerbal(1); - } - [KSPEvent(guiActive = false, guiName = "Training2", groupName = "TrainingLab")] - public void TrainKerbalInside2() - { - TrainKerbal(2); - } - [KSPEvent(guiActive = false, guiName = "Training3", groupName = "TrainingLab")] - public void TrainKerbalInside3() - { - TrainKerbal(3); - } - [KSPEvent(guiActive = false, guiName = "Training4", groupName = "TrainingLab")] - public void TrainKerbalInside4() - { - TrainKerbal(4); - } - [KSPEvent(guiActive = false, guiName = "Training5", groupName = "TrainingLab")] - public void TrainKerbalInside5() - { - TrainKerbal(5); - } - [KSPEvent(guiActive = false, guiName = "Training6", groupName = "TrainingLab")] - public void TrainKerbalInside6() - { - TrainKerbal(6); - } - [KSPEvent(guiActive = false, guiName = "Training7", groupName = "TrainingLab")] - public void TrainKerbalInside7() - { - TrainKerbal(7); - } - - #region private functions - private void TrainKerbal(int index) - { - ProtoCrewMember crew = crewArr[index]; - - int lastLog = GetCrewTrainedLevel(crew); - - if (lastLog == 5) - { - ScreenMessages.PostScreenMessage(crew.name + " already had every training."); - return; - } - - float SciCost = CalculateSciCost(levelUpExpTable[lastLog], crew); - if (ResearchAndDevelopment.Instance.Science < SciCost) - { - ScreenMessages.PostScreenMessage("Insufficient Science Points.\n" + - "Needed : " + SciCost + ", Remain : " + ResearchAndDevelopment.Instance.Science); - return; - } - ResearchAndDevelopment.Instance.AddScience(-1 * SciCost, TransactionReasons.CrewRecruited); - RemoveKerbalTrainingExp(crew); - crew.flightLog.AddEntry(new FlightLog.Entry(crew.flightLog.Flight, trainingArr[lastLog+1], "Kerbin")); - ScreenMessages.PostScreenMessage(levelNumber[lastLog] + " Training Complete : " + crew.name); - - } -#endregion - -#region public functions - public override void OnUpdate() - { - if (HighLogic.CurrentGame.Mode != Game.Modes.CAREER) return; -======= /// public class FieldTrainingLab : PartModule { @@ -320,14 +71,8 @@ public class FieldTrainingLab : PartModule [KSPField] public float TimeFactor = 426 * 6 * 60 * 60; // 1Year = 426day, 1day = 6hour, 1hour = 60minutes, 1min = 60sec - /// PAW Group Status Label - [KSPField(isPersistant = false, guiActive = true, guiActiveEditor = true, groupStartCollapsed = true, - guiName = " ", - groupDisplayName = "Training Lab v" + Version.SText)] - public string PAWStatus = Localizer.Format("#FTL-nameV", Version.SText); - /// Training Lab Status - [KSPField(isPersistant = true, guiActive = true, groupName = __GroupName__, guiName = "#FTL-status")] + [KSPField(isPersistant = true, guiActive = true, groupStartCollapsed = true, groupName = __GroupName__, guiName = "#FTL-status")] public bool TrainingStatus = false; /// Science Points Remaining @@ -383,15 +128,15 @@ private void TrainKerbal(int index) if (lastLog == 5) { - ScreenMessages.PostScreenMessage(Localizer.Format("FTL-max", crew.name)); + ScreenMessages.PostScreenMessage(Localizer.Format("#FTL-max", crew.name)); // ScreenMessages.PostScreenMessage(crew.name + " already had every training."); return; } float SciCost = CalculateSciCost(levelUpExpTable[lastLog], crew); if (ResearchAndDevelopment.Instance.Science < SciCost) - { - ScreenMessages.PostScreenMessage(Localizer.Format("FTL-insufficent", Localizer.Format("#FTL-funds-sci"), SciCost, ResearchAndDevelopment.Instance.Science)); + { + ScreenMessages.PostScreenMessage(Localizer.Format("#FTL-insufficent", Localizer.Format("#FTL-funds-sci"), SciCost, ResearchAndDevelopment.Instance.Science)); // ScreenMessages.PostScreenMessage("Insufficient Science Points.\n" + "Needed : " + SciCost + ", Remain : " + ResearchAndDevelopment.Instance.Science); return; } @@ -409,6 +154,17 @@ private void TrainKerbal(int index) /// OnAwake public override void OnAwake() { base.OnAwake(); } + /// OnStart + public override void OnStart(StartState state) + { + base.OnStart(state); + + if (HighLogic.CurrentGame.Parameters.CustomParams().coloredPAW) + Fields["TrainingStatus"].group.displayName = System.String.Format("" + Localizer.Format("#FTL-nameV", Version.SText) + ""); + else + Fields["TrainingStatus"].group.displayName = Localizer.Format("#FTL-nameV", Version.SText); + } + /// OnInactive public override void OnInactive() { base.OnInactive(); } @@ -417,18 +173,12 @@ private void TrainKerbal(int index) /// OnFixedUpdate public override void OnFixedUpdate() - { - base.OnFixedUpdate(); - UpdatePAWLabel(); - } + { base.OnFixedUpdate(); } /// OnUpdate public override void OnUpdate() { if (HighLogic.CurrentGame.Mode != Game.Modes.CAREER) return; ->>>>>>> Stashed changes ->>>>>>> Stashed changes - Fields["SciRemain"].guiActive = true; SciRemain = (int) ResearchAndDevelopment.Instance.Science; @@ -452,120 +202,12 @@ public override void OnUpdate() for(; index < eventArr.Length; index++) Events[eventArr[index]].guiActive = false; } - #endregion -<<<<<<< Updated upstream -======= -<<<<<<< Updated upstream - private int CalculateSciCost(float baseValue, ProtoCrewMember crew) - { - double calculated = baseValue * TrainFactor * (1 - (GetKerbalTrainingExp(crew) / (TimeFactor * baseValue / 64))); - int ret = 0; - - if (this.vessel.mainBody.bodyName == "Kerbin" && this.vessel.LandedOrSplashed) ret = ((int) (calculated + 0.5)); - else if (this.vessel.LandedOrSplashed) ret = ((int) (calculated * Landed + 0.5)); - else ret = ((int)(calculated * inSpace + 0.5)); - - if (ret < 1) ret = 1; - return ret; - } - - private double GetKerbalTrainingExp(ProtoCrewMember crew) - { - string lastExpStr = "0"; - - FlightLog totalLog = crew.careerLog.CreateCopy(); - totalLog.MergeWith(crew.flightLog.CreateCopy()); - foreach (FlightLog.Entry entry in totalLog.Entries) - if (entry.type == "TrainingExp") lastExpStr = entry.target; - - return double.Parse(lastExpStr); - } - - private void RemoveKerbalTrainingExp(ProtoCrewMember crew) - { - foreach (FlightLog.Entry entry in crew.careerLog.Entries.ToArray()) - if (entry.type == "TrainingExp") - crew.careerLog.Entries.Remove(entry); - foreach (FlightLog.Entry entry in crew.flightLog.Entries.ToArray()) - if (entry.type == "TrainingExp") - crew.flightLog.Entries.Remove(entry); - } - - private int GetCrewTrainedLevel(ProtoCrewMember crew) - { - int lastLog = 0; - FlightLog totalLog = crew.careerLog.CreateCopy(); - totalLog.MergeWith(crew.flightLog.CreateCopy()); - - int deadFlight = -1; - foreach (FlightLog.Entry entry in totalLog.Entries) - { - if (entry.flight <= deadFlight) continue; - if (entry.type == "Die") deadFlight = entry.flight; - } - foreach (FlightLog.Entry entry in totalLog.Entries) - { - if (entry.flight <= deadFlight) continue; - if (lastLog < 1 && entry.type == "Training1") lastLog = 1; - if (lastLog < 2 && entry.type == "Training2") lastLog = 2; - if (lastLog < 3 && entry.type == "Training3") lastLog = 3; - if (lastLog < 4 && entry.type == "Training4") lastLog = 4; - if (lastLog < 5 && entry.type == "Training5") lastLog = 5; - } - - return lastLog; - } - - /// Converts consumption rate into /s /m /hour and returns a formate string. - /// The rate. - /// RateString="Rate" - private static string RateString(double rate) - { - // double rate = double.Parse(value.value); - string sfx = "/s"; - if (rate <= 0.004444444f) - { - rate *= 3600; - sfx = "/h"; - } - else if (rate < 0.2666667f) - { - rate *= 60; - sfx = "/m"; - } - // limit decimal places to 10 and add sfx - //return String.Format(FuelRateFormat, Rate, sfx); - return rate.ToString("###.#####") + " EC" + sfx; - } - /// Module information shown in editors - private string info = string.Empty; - - public override string GetInfo() - { - //? this is what is show in the editor - //? As annoying as it is, pre-parsing the config MUST be done here, because this is called during part loading. - //? The config is only fully parsed after everything is fully loaded (which is why it's in OnStart()) - if (info == string.Empty) - { - info += Localizer.Format("#FTL-manu"); // #FTL-manu = Kerbalnaut Training Industries, Inc. - info += "\n v" + Version.SText; // FTL Version Number text - info += "\n" + Localizer.Format("#FTL-desc"); // #FTL-desc = Train Kerbals using Science Points - } - // #autoLOC_252004 = ElectricCharge - // #FieldTrainingFacility_titl = FieldTrainingFacility - // #FTL-manu = Kerbalnaut Training Industries, Inc. - // #FTL-desc = Train Kerbals using time and Electric Charge - return info; - } - } -======= /// Calculate Science Cost /// /// /// ->>>>>>> Stashed changes private int CalculateSciCost(float baseValue, ProtoCrewMember crew) { double calculated = baseValue * TrainFactor * (1 - (GetKerbalTrainingExp(crew) / (TimeFactor * baseValue / 64))); @@ -579,14 +221,10 @@ private int CalculateSciCost(float baseValue, ProtoCrewMember crew) return ret; } -<<<<<<< Updated upstream - private double GetKerbalTrainingExp(ProtoCrewMember crew) -======= /// GetKerbalTrainingExp /// /// private double GetKerbalTrainingExp(ProtoCrewMember crew) ->>>>>>> Stashed changes { string lastExpStr = "0"; @@ -598,13 +236,9 @@ private double GetKerbalTrainingExp(ProtoCrewMember crew) return double.Parse(lastExpStr); } -<<<<<<< Updated upstream - private void RemoveKerbalTrainingExp(ProtoCrewMember crew) -======= /// RemoveKerbalTrainingExp /// private void RemoveKerbalTrainingExp(ProtoCrewMember crew) ->>>>>>> Stashed changes { foreach (FlightLog.Entry entry in crew.careerLog.Entries.ToArray()) if (entry.type == "TrainingExp") @@ -614,14 +248,10 @@ private void RemoveKerbalTrainingExp(ProtoCrewMember crew) crew.flightLog.Entries.Remove(entry); } -<<<<<<< Updated upstream - private int GetCrewTrainedLevel(ProtoCrewMember crew) -======= /// GetCrewTrainedLevel /// /// private int GetCrewTrainedLevel(ProtoCrewMember crew) ->>>>>>> Stashed changes { int lastLog = 0; FlightLog totalLog = crew.careerLog.CreateCopy(); @@ -646,103 +276,6 @@ private int GetCrewTrainedLevel(ProtoCrewMember crew) return lastLog; } -<<<<<<< Updated upstream - /// Converts consumption rate into /s /m /hour and returns a formate string. - /// The rate. - /// RateString="Rate" -======= - /// Updates the PAW label. - internal void UpdatePAWLabel() // private - { - string begStr = String.Empty; - string endStr = String.Empty; - - if (HighLogic.CurrentGame.Parameters.CustomParams().coloredPAW) - { - begStr = "<#FEDD00>"; // banana - endStr = ""; - } - - switch (HighLogic.LoadedScene) - { - case GameScenes.FLIGHT: - { - PAWStatus = begStr + Localizer.Format("FTL-nameV", Version.SText) + endStr; - break; - } - case GameScenes.EDITOR: - { - PAWStatus = begStr + Localizer.Format("FTL-nameV", Version.SText) + endStr; - break; - } -/* case GameScenes.LOADING: - break; - case GameScenes.LOADINGBUFFER: - break; - case GameScenes.MAINMENU: - break; - case GameScenes.SETTINGS: - break; - case GameScenes.CREDITS: - break; - case GameScenes.SPACECENTER: - break; - case GameScenes.TRACKSTATION: - break; - case GameScenes.PSYSTEM: - break; - case GameScenes.MISSIONBUILDER: - break; - default: - break;*/ - } - } - - /// Converts consumption rate into /s /m /hour and returns a formate string. - /// The rate.RateString="Rate" ->>>>>>> Stashed changes - private static string RateString(double rate) - { - // double rate = double.Parse(value.value); - string sfx = "/s"; - if (rate <= 0.004444444f) - { - rate *= 3600; - sfx = "/h"; - } - else if (rate < 0.2666667f) - { - rate *= 60; - sfx = "/m"; - } - // limit decimal places to 10 and add sfx - //return String.Format(FuelRateFormat, Rate, sfx); - return rate.ToString("###.#####") + " EC" + sfx; - } -<<<<<<< Updated upstream - /// Module information shown in editors - private string info = string.Empty; - - public override string GetInfo() - { - //? this is what is show in the editor - //? As annoying as it is, pre-parsing the config MUST be done here, because this is called during part loading. - //? The config is only fully parsed after everything is fully loaded (which is why it's in OnStart()) - if (info == string.Empty) - { - info += Localizer.Format("#FTL-Agency-titl"); // #FTF-manu = Kerbalnaut Training Industries, Inc. - info += "\n v" + Version.SText; // FTL Version Number text - info += "\n" + Localizer.Format("#FTL-desc"); // #FTL-desc = Train Kerbals using Science Points - } - // #autoLOC_252004 = ElectricCharge - // #FieldTrainingFacility_titl = FieldTrainingFacility - // #FTL-manu = Kerbalnaut Training Industries, Inc. - // #FTL-desc = Train Kerbals using time and Electric Charge - return info; - } - } -======= - /// Module information shown in editors private string info = string.Empty; @@ -752,9 +285,9 @@ public override string GetInfo() if (info == string.Empty) { info += Localizer.Format("#FTL-Agency-titl"); - info += "\n" + Localizer.Format("#FTL-Agency-desc") + "\n"; + info += "\n\n" + Localizer.Format("#FTL-Agency-desc") + "\n"; info += "\n" + Localizer.Format("#FTL-nameV", Version.SText); - info += "\n" + Localizer.Format("#FTL-desc"); + info += "\n" + Localizer.Format("#FTL-desc"); info += "\n\n"; } // #FTL-Agency-titl = Kerbalnaut Training Industries, Inc. @@ -762,9 +295,6 @@ public override string GetInfo() // #FTL-nameV = Field Training Lab v#.#.#.# // #FTL-desc = Train Kerbals using Science Points return info; - // #autoLOC_252004 = ElectricCharge } } ->>>>>>> Stashed changes ->>>>>>> Stashed changes } From 5c2f005fb01c76d0bd11e4a09288c982fc8a1a81 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:33:59 -0600 Subject: [PATCH 80/84] Delete KACWrapper.cs --- source/KACWrapper.cs | 617 ------------------------------------------- 1 file changed, 617 deletions(-) delete mode 100644 source/KACWrapper.cs diff --git a/source/KACWrapper.cs b/source/KACWrapper.cs deleted file mode 100644 index 8c95f3e..0000000 --- a/source/KACWrapper.cs +++ /dev/null @@ -1,617 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Reflection; - -namespace KSPPreciseManeuver { - - /////////////////////////////////////////////////////////////////////////////////////////// - // BELOW HERE SHOULD NOT BE EDITED - this links to the loaded KAC module without requiring a Hard Dependancy - /////////////////////////////////////////////////////////////////////////////////////////// - - /// - /// The Wrapper class to access KAC from another plugin - /// - public class KACWrapper { - protected static System.Type KACType; - protected static System.Type KACAlarmType; - - protected static Object actualKAC = null; - - /// - /// This is the Kerbal Alarm Clock object - /// - /// SET AFTER INIT - /// - public static KACAPI KAC = null; - /// - /// Whether we found the KerbalAlarmClock assembly in the loadedassemblies. - /// - /// SET AFTER INIT - /// - public static Boolean AssemblyExists { get { return (KACType != null); } } - /// - /// Whether we managed to hook the running Instance from the assembly. - /// - /// SET AFTER INIT - /// - public static Boolean InstanceExists { get { return (KAC != null); } } - /// - /// Whether we managed to wrap all the methods/functions from the instance. - /// - /// SET AFTER INIT - /// - private static Boolean _KACWrapped = false; - - /// - /// Whether the object has been wrapped and the APIReady flag is set in the real KAC - /// - public static Boolean APIReady { get { return _KACWrapped && KAC.APIReady && !NeedUpgrade; } } - - - public static Boolean NeedUpgrade { get; private set; } - - /// - /// This method will set up the KAC object and wrap all the methods/functions - /// - /// This option will force the Init function to rebind everything - /// - public static Boolean InitKACWrapper () { - //if (!_KACWrapped ) - //{ - //reset the internal objects - _KACWrapped = false; - actualKAC = null; - KAC = null; - LogFormatted ("Attempting to Grab KAC Types..."); - - //find the base type - KACType = AssemblyLoader.loadedAssemblies - .Select (a => a.assembly.GetExportedTypes ()) - .SelectMany (t => t) - .FirstOrDefault (t => t.FullName == "KerbalAlarmClock.KerbalAlarmClock"); - - if (KACType == null) { - return false; - } - - LogFormatted ("KAC Version:{0}", KACType.Assembly.GetName ().Version.ToString ()); - if (KACType.Assembly.GetName ().Version.CompareTo (new System.Version (3, 0, 0, 5)) < 0) { - //No TimeEntry or alarmchoice options = need a newer version - NeedUpgrade = true; - } - - //now the Alarm Type - KACAlarmType = AssemblyLoader.loadedAssemblies - .Select (a => a.assembly.GetExportedTypes ()) - .SelectMany (t => t) - .FirstOrDefault (t => t.FullName == "KerbalAlarmClock.KACAlarm"); - - if (KACAlarmType == null) { - return false; - } - - //now grab the running instance - LogFormatted ("Got Assembly Types, grabbing Instance"); - - try { - actualKAC = KACType.GetField ("APIInstance", BindingFlags.Public | BindingFlags.Static).GetValue (null); - } catch (Exception) { - NeedUpgrade = true; - LogFormatted ("No APIInstance found - most likely you have KAC v2 installed"); - //throw; - } - if (actualKAC == null) { - LogFormatted ("Failed grabbing Instance"); - return false; - } - - //If we get this far we can set up the local object and its methods/functions - LogFormatted ("Got Instance, Creating Wrapper Objects"); - KAC = new KACAPI (actualKAC); - //} - _KACWrapped = true; - return true; - } - - /// - /// The Type that is an analogue of the real KAC. This lets you access all the API-able properties and Methods of the KAC - /// - public class KACAPI { - - internal KACAPI (Object KAC) { - //store the actual object - actualKAC = KAC; - - //these sections get and store the reflection info and actual objects where required. Later in the properties we then read the values from the actual objects - //for events we also add a handler - LogFormatted ("Getting APIReady Object"); - APIReadyField = KACType.GetField ("APIReady", BindingFlags.Public | BindingFlags.Static); - LogFormatted ("Success: " + (APIReadyField != null).ToString ()); - - //WORK OUT THE STUFF WE NEED TO HOOK FOR PEOPEL HERE - LogFormatted ("Getting Alarms Object"); - AlarmsField = KACType.GetField ("alarms", BindingFlags.Public | BindingFlags.Static); - actualAlarms = AlarmsField.GetValue (actualKAC); - LogFormatted ("Success: " + (actualAlarms != null).ToString ()); - - //Events - LogFormatted ("Getting Alarm State Change Event"); - onAlarmStateChangedEvent = KACType.GetEvent ("onAlarmStateChanged", BindingFlags.Public | BindingFlags.Instance); - LogFormatted_DebugOnly ("Success: " + (onAlarmStateChangedEvent != null).ToString ()); - LogFormatted_DebugOnly ("Adding Handler"); - AddHandler (onAlarmStateChangedEvent, actualKAC, AlarmStateChanged); - - //Methods - LogFormatted ("Getting Create Method"); - CreateAlarmMethod = KACType.GetMethod ("CreateAlarm", BindingFlags.Public | BindingFlags.Instance); - LogFormatted_DebugOnly ("Success: " + (CreateAlarmMethod != null).ToString ()); - - LogFormatted ("Getting Delete Method"); - DeleteAlarmMethod = KACType.GetMethod ("DeleteAlarm", BindingFlags.Public | BindingFlags.Instance); - LogFormatted_DebugOnly ("Success: " + (DeleteAlarmMethod != null).ToString ()); - - LogFormatted ("Getting DrawAlarmAction"); - DrawAlarmActionChoiceMethod = KACType.GetMethod ("DrawAlarmActionChoiceAPI", BindingFlags.Public | BindingFlags.Instance); - LogFormatted_DebugOnly ("Success: " + (DrawAlarmActionChoiceMethod != null).ToString ()); - - //LogFormatted ("Getting DrawTimeEntry"); - //DrawTimeEntryMethod = KACType.GetMethod ("DrawTimeEntryAPI", BindingFlags.Public | BindingFlags.Instance); - //LogFormatted_DebugOnly("Success: " + (DrawTimeEntryMethod != null).ToString ()); - - //Commenting out rubbish lines - //MethodInfo[] mis = KACType.GetMethods (BindingFlags.Public | BindingFlags.Instance); - //foreach (MethodInfo mi in mis) { - // LogFormatted ("M:{0}-{1}", mi.Name, mi.DeclaringType); - //} - } - - private Object actualKAC; - - private FieldInfo APIReadyField; - /// - /// Whether the APIReady flag is set in the real KAC - /// - public Boolean APIReady { - get { - if (APIReadyField == null) - return false; - - return (Boolean)APIReadyField.GetValue (null); - } - } - - #region Alarms - private Object actualAlarms; - private FieldInfo AlarmsField; - - /// - /// The list of Alarms that are currently active in game - /// - internal KACAlarmList Alarms { get { return ExtractAlarmList (actualAlarms); } } - - /// - /// This converts the KACAlarmList actual object to a new List for consumption - /// - /// - /// - private KACAlarmList ExtractAlarmList (Object actualAlarmList) { - KACAlarmList ListToReturn = new KACAlarmList (); - try { - //iterate each "value" in the dictionary - - foreach (var item in (IList)actualAlarmList) { - KACAlarm r1 = new KACAlarm (item); - ListToReturn.Add (r1); - } - } catch (Exception) { - //LogFormatted("Arrggg: {0}", ex.Message); - //throw ex; - // - } - return ListToReturn; - } - - #endregion - - #region Events - /// - /// Takes an EventInfo and binds a method to the event firing - /// - /// EventInfo of the event we want to attach to - /// actual object the eventinfo is gathered from - /// Method that we are going to hook to the event - protected void AddHandler (EventInfo Event, Object KACObject, Action Handler) { - //build a delegate - Delegate d = Delegate.CreateDelegate (Event.EventHandlerType, Handler.Target, Handler.Method); - //get the Events Add method - MethodInfo addHandler = Event.GetAddMethod (); - //and add the delegate - addHandler.Invoke (KACObject, new System.Object[] { d }); - } - - //the info about the event; - private EventInfo onAlarmStateChangedEvent; - - /// - /// Event that fires when the State of an Alarm changes - /// - public event AlarmStateChangedHandler OnAlarmStateChanged; - /// - /// Structure of the event delegeate - /// - /// - public delegate void AlarmStateChangedHandler (AlarmStateChangedEventArgs e); - /// - /// This is the structure that holds the event arguments - /// - public class AlarmStateChangedEventArgs { - public AlarmStateChangedEventArgs (System.Object actualEvent, KACAPI kac) { - Type type = actualEvent.GetType (); - this.alarm = new KACAlarm (type.GetField ("alarm").GetValue (actualEvent)); - this.eventType = (KACAlarm.AlarmStateEventsEnum)type.GetField ("eventType").GetValue (actualEvent); - - } - - /// - /// Alarm that has had the state change - /// - public KACAlarm alarm; - /// - /// What the state was before the event - /// - public KACAlarm.AlarmStateEventsEnum eventType; - } - - - /// - /// private function that grabs the actual event and fires our wrapped one - /// - /// actual event from the KAC - private void AlarmStateChanged (object actualEvent) { - OnAlarmStateChanged?.Invoke (new AlarmStateChangedEventArgs (actualEvent, this)); - } - #endregion - - - #region Methods - private MethodInfo CreateAlarmMethod; - - /// - /// Create a new Alarm - /// - /// What type of alarm are we creating - /// Name of the Alarm for the display - /// Universal Time for the alarm - /// ID of the newly created alarm - internal String CreateAlarm (AlarmTypeEnum AlarmType, String Name, Double UT) { - return (String)CreateAlarmMethod.Invoke (actualKAC, new System.Object[] { (Int32)AlarmType, Name, UT }); - } - - - private MethodInfo DeleteAlarmMethod; - /// - /// Delete an Alarm - /// - /// Unique ID of the alarm - /// Success of the deletion - internal Boolean DeleteAlarm (String AlarmID) { - return (Boolean)DeleteAlarmMethod.Invoke (actualKAC, new System.Object[] { AlarmID }); - } - - - private MethodInfo DrawAlarmActionChoiceMethod; - /// - /// Delete an Alarm - /// - /// Unique ID of the alarm - /// Success of the deletion - internal Boolean DrawAlarmActionChoice (ref AlarmActionEnum Choice, String LabelText, Int32 LabelWidth, Int32 ButtonWidth) { - Int32 InValue = (Int32)Choice; - Int32 OutValue = (Int32)DrawAlarmActionChoiceMethod.Invoke (actualKAC, new System.Object[] { InValue, LabelText, LabelWidth, ButtonWidth }); - - Choice = (AlarmActionEnum)OutValue; - return (InValue != OutValue); - } - - //Remmed out due to it borking window layout - //private MethodInfo DrawTimeEntryMethod; - ///// - ///// Delete an Alarm - ///// - ///// Unique ID of the alarm - ///// Success of the deletion - - //internal Boolean DrawTimeEntry(ref Double Time, TimeEntryPrecisionEnum Prec, String LabelText, Int32 LabelWidth) - //{ - // Double InValue = Time; - // Double OutValue = (Double)DrawTimeEntryMethod.Invoke(actualKAC, new System.Object[] { InValue, (Int32)Prec, LabelText, LabelWidth }); - - // Time = OutValue; - // return (InValue != OutValue); - //} - - - #endregion - - public class KACAlarm { - internal KACAlarm (Object a) { - actualAlarm = a; - VesselIDField = KACAlarmType.GetField ("VesselID"); - IDField = KACAlarmType.GetField ("ID"); - NameField = KACAlarmType.GetField ("Name"); - NotesField = KACAlarmType.GetField ("Notes"); - AlarmTypeField = KACAlarmType.GetField ("TypeOfAlarm"); - AlarmTimeProperty = KACAlarmType.GetProperty ("AlarmTimeUT"); - AlarmMarginField = KACAlarmType.GetField ("AlarmMarginSecs"); - AlarmActionField = KACAlarmType.GetField ("AlarmAction"); - RemainingField = KACAlarmType.GetField ("Remaining"); - - XferOriginBodyNameField = KACAlarmType.GetField ("XferOriginBodyName"); - //LogFormatted("XFEROrigin:{0}", XferOriginBodyNameField == null); - XferTargetBodyNameField = KACAlarmType.GetField ("XferTargetBodyName"); - - RepeatAlarmField = KACAlarmType.GetField ("RepeatAlarm"); - RepeatAlarmPeriodProperty = KACAlarmType.GetProperty ("RepeatAlarmPeriodUT"); - - //PropertyInfo[] pis = KACAlarmType.GetProperties (); - //foreach (PropertyInfo pi in pis) - //{ - // LogFormatted ("P:{0}-{1}", pi.Name, pi.DeclaringType); - //} - //FieldInfo[] fis = KACAlarmType.GetFields (); - //foreach (FieldInfo fi in fis) - //{ - // LogFormatted ("F:{0}-{1}", fi.Name, fi.DeclaringType); - //} - } - private Object actualAlarm; - - private FieldInfo VesselIDField; - /// - /// Unique Identifier of the Vessel that the alarm is attached to - /// - public String VesselID { - get { - return (String)VesselIDField.GetValue (actualAlarm); - } - set { - VesselIDField.SetValue (actualAlarm, value); - } - } - - private FieldInfo IDField; - /// - /// Unique Identifier of this alarm - /// - public String ID { - get { - return (String)IDField.GetValue (actualAlarm); - } - } - - private FieldInfo NameField; - /// - /// Short Text Name for the Alarm - /// - public String Name { - get { - return (String)NameField.GetValue (actualAlarm); - } - set { - NameField.SetValue (actualAlarm, value); - } - } - - private FieldInfo NotesField; - /// - /// Longer Text Description for the Alarm - /// - public String Notes { - get { - return (String)NotesField.GetValue (actualAlarm); - } - set { - NotesField.SetValue (actualAlarm, value); - } - } - - private FieldInfo XferOriginBodyNameField; - /// - /// Name of the origin body for a transfer - /// - public String XferOriginBodyName { - get { - return (String)XferOriginBodyNameField.GetValue (actualAlarm); - } - set { - XferOriginBodyNameField.SetValue (actualAlarm, value); - } - } - - private FieldInfo XferTargetBodyNameField; - /// - /// Name of the destination body for a transfer - /// - public String XferTargetBodyName { - get { - return (String)XferTargetBodyNameField.GetValue (actualAlarm); - } - set { - XferTargetBodyNameField.SetValue (actualAlarm, value); - } - } - - private FieldInfo AlarmTypeField; - /// - /// What type of Alarm is this - affects icon displayed and some calc options - /// - public AlarmTypeEnum AlarmType { - get { - return (AlarmTypeEnum)AlarmTypeField.GetValue (actualAlarm); - } - } - - private PropertyInfo AlarmTimeProperty; - /// - /// In game UT value of the alarm - /// - public Double AlarmTime { - get { - return (Double)AlarmTimeProperty.GetValue (actualAlarm, null); - } - set { - AlarmTimeProperty.SetValue (actualAlarm, value, null); - } - } - - private FieldInfo AlarmMarginField; - /// - /// In game seconds the alarm will fire before the event it is for - /// - public Double AlarmMargin { - get { - return (Double)AlarmMarginField.GetValue (actualAlarm); - } - set { - AlarmMarginField.SetValue (actualAlarm, value); - } - } - - private FieldInfo AlarmActionField; - /// - /// What should the Alarm Clock do when the alarm fires - /// - public AlarmActionEnum AlarmAction { - get { - return (AlarmActionEnum)AlarmActionField.GetValue (actualAlarm); - } - set { - AlarmActionField.SetValue (actualAlarm, (Int32)value); - } - } - - private FieldInfo RemainingField; - /// - /// How much Game time is left before the alarm fires - /// - public Double Remaining { - get { - return (Double)RemainingField.GetValue (actualAlarm); - } - } - - - private FieldInfo RepeatAlarmField; - /// - /// Whether the alarm will be repeated after it fires - /// - public Boolean RepeatAlarm { - get { - return (Boolean)RepeatAlarmField.GetValue (actualAlarm); - } - set { - RepeatAlarmField.SetValue (actualAlarm, value); - } - } - private PropertyInfo RepeatAlarmPeriodProperty; - /// - /// Value in Seconds after which the alarm will repeat - /// - public Double RepeatAlarmPeriod { - get { - try { - return (Double)RepeatAlarmPeriodProperty.GetValue (actualAlarm, null); - } catch (Exception) { - return 0; - } - } - set { - RepeatAlarmPeriodProperty.SetValue (actualAlarm, value, null); - } - } - - public enum AlarmStateEventsEnum { - Created, - Triggered, - Closed, - Deleted, - } - } - - public enum AlarmTypeEnum { - Raw, - Maneuver, - ManeuverAuto, - Apoapsis, - Periapsis, - AscendingNode, - DescendingNode, - LaunchRendevous, - Closest, - SOIChange, - SOIChangeAuto, - Transfer, - TransferModelled, - Distance, - Crew, - EarthTime, - Contract, - ContractAuto - } - - public enum AlarmActionEnum { - [Description ("Do Nothing-Delete When Past")] - DoNothingDeleteWhenPassed, - [Description ("Do Nothing")] - DoNothing, - [Description ("Message Only-No Affect on warp")] - MessageOnly, - [Description ("Kill Warp Only-No Message")] - KillWarpOnly, - [Description ("Kill Warp and Message")] - KillWarp, - [Description ("Pause Game and Message")] - PauseGame, - } - - public enum TimeEntryPrecisionEnum { - Seconds = 0, - Minutes = 1, - Hours = 2, - Days = 3, - Years = 4 - } - - public class KACAlarmList : List { - - } - } - #region Logging Stuff - /// - /// Some Structured logging to the debug file - ONLY RUNS WHEN DLL COMPILED IN DEBUG MODE - /// - /// Text to be printed - can be formatted as per String.format - /// Objects to feed into a String.format - [System.Diagnostics.Conditional ("DEBUG")] - internal static void LogFormatted_DebugOnly (String Message, params Object[] strParams) { - LogFormatted (Message, strParams); - } - - /// - /// Some Structured logging to the debug file - /// - /// Text to be printed - can be formatted as per String.format - /// Objects to feed into a String.format - internal static void LogFormatted (String Message, params Object[] strParams) { - Message = String.Format (Message, strParams); - String strMessageLine = String.Format ("{0},{2}-{3},{1}", - DateTime.Now, Message, System.Reflection.Assembly.GetExecutingAssembly ().GetName ().Name, - System.Reflection.MethodBase.GetCurrentMethod ().DeclaringType.Name); - UnityEngine.Debug.Log (strMessageLine); - } - #endregion - } -} From 5f56d628772e39530339a94729e866a9aa03e938 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:34:00 -0600 Subject: [PATCH 81/84] Update AssemblyInfo.cs --- source/Properties/AssemblyInfo.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/source/Properties/AssemblyInfo.cs b/source/Properties/AssemblyInfo.cs index 2fd8a46..f2f7a60 100644 --- a/source/Properties/AssemblyInfo.cs +++ b/source/Properties/AssemblyInfo.cs @@ -1,6 +1,6 @@ /* Field Training Lab (FTL) * This addon adds a training center in the science laboratory. Paying science points gets kerbals experience. For Kerbal Space Program. - * Copyright (C) 2016 EFour + * Copyright (C) 2016 Efour * Copyright (C) 2019, 2022, 2023 zer0Kerbal (zer0Kerbal at hotmail dot com) * * This program is free software: you can redistribute it and/or modify @@ -28,8 +28,7 @@ [assembly: AssemblyProduct("Field Training Lab (FTL)")] [assembly: AssemblyCopyright("Copyright (c) 2016 Efour (c) 2019, 2022 zer0Kerbal")] [assembly: AssemblyTrademark("Trademark (tm) 2016 Efour (c) 2019, 2023 zer0Kerbal")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("Kerbal")] +[assembly: AssemblyCulture("")] [assembly: ComVisible(false)] [assembly: Guid("AD686AF3-DDDC-4991-909F-EAD9C16C469B")] \ No newline at end of file From 9e26527db94d9257b30366f354a0e78c9ba5c08c Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:34:01 -0600 Subject: [PATCH 82/84] Update Version.cs --- source/Properties/Version.cs | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/source/Properties/Version.cs b/source/Properties/Version.cs index e0da523..90eeba0 100644 --- a/source/Properties/Version.cs +++ b/source/Properties/Version.cs @@ -1,11 +1,11 @@ -//14 +//22 // // This code was generated by a tool. Any changes made manually will be lost // the next time this code is regenerated. // /* Field Training Lab (FTL) * This addon adds a training center in the science laboratory. Paying science points gets kerbals experience. For Kerbal Space Program. - * Copyright (C) 2016 EFour + * Copyright (C) 2016 Efour * Copyright (C) 2019, 2022, 2023 zer0Kerbal (zer0Kerbal at hotmail dot com) * * This program is free software: you can redistribute it and/or modify @@ -21,29 +21,37 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - - using System.Reflection; -[assembly: AssemblyFileVersion("1.2.1.14")] -[assembly: AssemblyVersion("1.2.1.0")] -[assembly: AssemblyInformationalVersion("1.2.1")] -[assembly: KSPAssembly("FieldTrainingLab", 1,2,1)] +[assembly: AssemblyFileVersion("1.2.2.22")] +[assembly: AssemblyVersion("1.2.2.0")] +[assembly: AssemblyInformationalVersion("1.2.2")] +[assembly: KSPAssembly("FieldTrainingLab", 1,2,2)] namespace FieldTrainingLab { + /// Version - retrieved at compile from FieldTrainingLab.version public static class Version { + /// Major revision public const int major = 1; + /// Minor revision public const int minor = 2; - public const int patch = 1; + /// Patch revision + public const int patch = 2; + /// Build revision public const int build = 0; - public const string Number = "1.2.1.0"; + /// Version String const + public const string Number = "1.2.2.0"; #if DEBUG + /// Debug Version String const public const string Text = Number + "-zed'K BETA DEBUG"; + /// Debug SVersion String const public const string SText = Number + "-zed'K BETA DEBUG"; #else + /// Text Version String const public const string Text = Number + "-zed'K"; + /// Plain Text Version String const public const string SText = Number; #endif } From 29e4ff410b09c644d7418ba456eaddf71dbac0bd Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:34:02 -0600 Subject: [PATCH 83/84] Update Version.tt --- source/Properties/Version.tt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/Properties/Version.tt b/source/Properties/Version.tt index e80bf6d..0000f96 100644 --- a/source/Properties/Version.tt +++ b/source/Properties/Version.tt @@ -6,7 +6,7 @@ /* Field Training Lab (FTL) * This addon adds a training center in the science laboratory. Paying science points gets kerbals experience. For Kerbal Space Program. - * Copyright (C) 2016 EFour + * Copyright (C) 2016 Efour * Copyright (C) 2019, 2022, 2023 zer0Kerbal (zer0Kerbal at hotmail dot com) * * This program is free software: you can redistribute it and/or modify @@ -117,7 +117,7 @@ // /* Field Training Lab (FTL) * This addon adds a training center in the science laboratory. Paying science points gets kerbals experience. For Kerbal Space Program. - * Copyright (C) 2016 EFour + * Copyright (C) 2016 Efour * Copyright (C) 2019, 2022, 2023 zer0Kerbal (zer0Kerbal at hotmail dot com) * * This program is free software: you can redistribute it and/or modify From a7db8f7470894ada8f9b9358f1b8ad6b21f1b2f2 Mon Sep 17 00:00:00 2001 From: zer0Kerbal <39887717+zer0Kerbal@users.noreply.github.com> Date: Thu, 12 Jan 2023 02:34:04 -0600 Subject: [PATCH 84/84] Update Settings.cs --- source/Settings.cs | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/source/Settings.cs b/source/Settings.cs index bb49b68..3f958c8 100644 --- a/source/Settings.cs +++ b/source/Settings.cs @@ -1,6 +1,6 @@ /* Field Training Lab (FTL) * This addon adds a training center in the science laboratory. Paying science points gets kerbals experience. For Kerbal Space Program. - * Copyright (C) 2016 EFour + * Copyright (C) 2016 Efour * Copyright (C) 2019, 2022, 2023 zer0Kerbal (zer0Kerbal at hotmail dot com) * * This program is free software: you can redistribute it and/or modify @@ -33,16 +33,20 @@ namespace FieldTrainingLab public class FTL_Options : GameParameters.CustomParameterNode { /// Settings Title - public override string Title { get { return "#FTL-1000000"; } } // #FTL-1000000 = [WIP] Field Training Lab Settings - /// Settings Game Mode - public override GameParameters.GameMode GameMode { get { return GameParameters.GameMode.ANY; } } + public override string Title { get { return "#FTL-settings-title-label"; } } // #FTL-settings-title-label = [WIP] Field Training Lab Settings + /// Settings Section - public override string Section { get { return "#FTL-1000001"; } } // #FTL-1000001 = [WIP] Field Training + public override string Section { get { return "#FTL-settings-section"; } } // #FTL-settings-section = [WIP] Field Training + /// Settings Display Section - public override string DisplaySection { get { return "#FTL-1000002"; } } // #FTL-1000002 = [WIP] Field Training + public override string DisplaySection { get { return "#FTL-settings-section-display-label"; } } // #FTL-settings-section-display-label = [WIP] Field Training + /// Settings Section Order public override int SectionOrder { get { return 1; } } + /// Settings Game Mode + public override GameParameters.GameMode GameMode { get { return GameParameters.GameMode.ANY; } } + /// Settings module master enable/disable [GameParameters.CustomParameterUI("#FTL-settings-enable", // #FTL-settings-enable = Enable Field Training Lab? toolTip = "#FTL-settings-enable-tt", // #FTL-settings-enable-tt = Field Training Labs are enabled if set to yes. @@ -180,9 +184,21 @@ public override void SetDifficultyPreset(GameParameters.Preset preset) public override bool HasPresets { get { return false; } } public override void SetDifficultyPreset(GameParameters.Preset preset) { } #endif - + /// Enabled? + /// + /// + /// public override bool Enabled(MemberInfo member, GameParameters parameters) { return true; } + + /// Interactible? + /// + /// + /// public override bool Interactible(MemberInfo member, GameParameters parameters) { return true; } + + /// ValidValues + /// + /// public override IList ValidValues(MemberInfo member) { return null; } } } \ No newline at end of file