Releases: KSP-KOS/KOS
1.5.0.0
New Features
- New crewmember suffixes commit
- Added
COM
suffix to parts to get the accurate center of mass (thanks SofieBrink) commit - 3rd party addons can now add custom suffixes to PartModules commit
- Integrated KSPBuildTools for easier local setup and automated build process commit
Bug Fixes
- Documentation: renamed
gui
tomy_gui
to avoid conflict with global commit - Fixed an issue where probe cores in RP-1 would get incorrect cost and mass commit 1 commit 2
- Quicksaveto no longer checks ClearToSave commit
- Several memory leak fixes
- Invoke UI field change callbacks when settings fields (thanks ricmatsui) commit
Catch-up for over a year of little things
v1.4.0.0 - Catch-up for over a year of little things
It's been 3 years since the last kOS release, and a lot of
small changes have trickled in. None were big enough on
their own for a full release but there's been enough of
them and it's been long enough that a release has been
needed for a while now. Since KSP 2 is about to start
hitting early access, it seemed right to get all these little
things out for kOS for KSP 1 just before that happens.
This will also make it so people won't have to keep
overriding the complaints of CKAN for trying to use
kOS on KSP 1.11.x or KSP 1.12.x. (Which it worked for
but CKAN didn't know that. Now it should know that.)
BREAKING CHANGES
-
The bugfix to prevent a local variable from clobbering a
builtin name could make existing scripts have to rename
a variable or two.Previously if you tried to create a variable that matches
the name of a built-in variable, it would let you but then
the built-in variable would be permanently masked and
unreachable.Now by default it won't let you. BUT you can get the old
behavior back again if you use the @CLOBBERBUILTINS directive,
if you really want to let yourself do that.
pull request
NEW FEATURES
-
kOS parts are now findable by typing "kos" into the
VAB's part search bar.
pull request -
kOS parts can be placed inside the KSP cargo inventory system.
pull request -
Comma-separated list of LOCAL or SET declarations can
now be parsed. Example:old:
local a is 3. local b is 5. local c is 10.
can now be:local a is 3, b is 5, c is 10.
This is similar to how it works with PARAMETER.
pull request -
Added VESSEL:THRUST, VESSEL:ENGINES, VESSEL:RCS.
VESSEL:THRUST
is the sum of the engine:THRUST of all
the engines.VESSEL:ENGINES
is the same list returned by LIST ENGINES,
but using a somewhat nicer syntax.VESSEL:RCS
is the list of all the RCS parts on the vessel.
pull request -
Added OPCODESLEFT bound variable. This bound variable
returns the number of instructions yet to execute (how
much of CONFIG:IPU's instructions there are to go in
this fixedupdate). Intended to help decide if aWAIT 0.
would be prudent before entering a critical section of
code.
pull request -
Better integration with RP-1's avionics tech progression.
(No longer have to buy into the tech from the R&D building
to cause the kOS cores in avionics parts to get the upgrade.)
pull request -
Better integration with RP-1's avionics lockouts when the
avionics doesn't support the mass. (Previously kOS couldn't
use ANY of the controls when avionics were insufficient, even
ones RP-1 meant to still work with insuficient avionics,
like RCS fore and aft.)
pull request -
kOS parts are now findable by typing "kos" into the
VAB's part search bar.
pull request -
Can now read a binary file as a LIST of numeric values (one
per byte).
pull request
BUG FIXES
-
Documentation: Many small one-line documentation fixes that are
too numerous to mention all of them one by one.
pull request
pull request
pull request
pull request
pull request
pull request -
A change to make it backward compatible with a call
kOSPropMonitor was doing.
pull request -
Cause the mod RocketSoundEnhancement to stop muffling
kOS's sounds. (By explicitly telling Unity those
sounds don't emit from the kOS Part's "location" and
instead are ambient.)
pull request -
Make PART:DECOUPLER behave more consistently with what the
documentation says about docking ports.
pull request -
Reduce excessive repeats of GUI ONCONFIRM calls being triggered
when they werent' supposed to be triggered.
pull request -
Remove legacy old version of kOS's computer from the parts
definition file so it can't appear by accident in the parts bin.
This is no longer needed for backward compatibility like it
was before because this version of kOS cannot run on the
very old versions of KSP that part was for anyway.
pull request -
When reporting the terrainheight of a geoposition, it no
longer returns false results caused by seeing certain
stock parts that put trigger colliders on the "terrain layer".
pull request -
Fix SteeringManager believing RCS blocks were capable of
more thrust than they were (causing steering to be tuned
wrong when steering via RCS). Problem was caused when stock
parts now have multiple alternate RCS nozzle arrangements,
and kOS was summing up all the thrust all the nozzle variants
can do even though only a subset of those nozzles actually
exist in any given variant.
pull request
pull request -
When setting the volume name for a disk drive by copying the
vessel's name to the volume's name, it now strips out
characters that are not allowed in volume names (but are
in vessel names, thus the bug).
pull request -
BOUNDS now does a better job of calculating based on
part's colliders rather than their visual meshes which
don't always agree with the colliders.
pull request -
No longer bogs down as much when someone creates the same
LOCK expression repeatedly in a loop. (Still not a good idea,
but kOS tolerates it better now.)
pull request -
Performance: No longer pays the cost of tracking a stopwatch
when the user doesn't even have profiling turned on so they're
not looking at the timings anyway.
pull request -
A VOICE's volume is now persisting properly after playing a
NOTE. Previously playing the NOTE caused the VOICE volume
setting to get clobbered by the NOTE's volume.
pull request -
Make it so kOS's ModuleCargoPart settings don't break in
older KSP 1.10.x (which doesn't have ModuleCargoPart).
pull request -
Fix a bug when a thing that is locked is used as the
left side of a suffix when setting the suffix.
pull request -
Prevent a local variable from clobbering a builtin name
pull request -
Allow kOS code to "see" a change to a manuever node's ETA
made outside the script, after having obtained the node
in a variable.
pull request -
Fix Compiler exceptions not showing the filename correctly.
pull request -
Fix ALT:RADAR sometimes wrong when high above ground.
pull request -
Fix race condition that caused terminal to spam the log
on scene changes and sometimes spam the log enough to
lag the game for some people.
pull request -
Fix throwing exception when setting SASMODE while the
navball is hidden.
pull request -
Made the doc generation scripts work on python 3.x
pull request
Dont Steer Me Wronger
A quick patch to v1.3.0.0 that fixes issue #2857 that would
zero controls for just a brief single physics frame if
raw control neutralize had been previously used or if a
reboot had occurred while raw controls were in use. Most
players won't notice a single physics frame of zeroed
controls, but if you're using realism mods with limited
engine ignitions, it would unfairly consume an engine
ignition when the throttle zeroed for an instant. (Which
was a disaster if the engine only gets to have one
ignition.)
Normally one bug fix wouldn't warrant a release, but this
bug was caused by changes in v1.3.0.0, and the consumed
ignition was unfair.
See release v1.3.0.0 below for the long changelog with all the things in 1.3.0.0.
Dont Steer Me Wrong, This Time
See release v1.3.0.0 below for the long changelog.
There were about a year of changes. This v1.3.1.0 release is just a minor patch on top of the big changes in v1.3.0.0 that fixed one bug with the change from TimeSpan to TimeStamp that wasn't quite right in the v1.3.0.0 release (issue: #2850).
Don't Steer Me Wrong
v1.3.0.0 - Don't Steer Me Wrong
If you want to download this, please download https://github.com/KSP-KOS/KOS/releases/tag/v1.3.2.0 instead, as it has a hot patch to fix an important error. The ZIP file for this release has been taken down in favor of the v1.3.1.0 release.
There's a lot of small changes over the last year that have added
up to a big release. This release supports KSP 1.10 and KSP 1.11.
It has no specific KSP 1.11 changes but it has been tested and it does
work with KSP 1.11.
(NOTE ABOUT KSP 1.11 - If you want to put a kOS part into one of
the new cargo inventory slots that came with KSP 1.11, you can do so
but remember to FIRST attach it to the vessel in the VAB/SPH so you can
adjust the disk space and boot file settings, then detach it from the
vessel and drag it into the cargo slot - that way it has the settings you
gave it. If you just drag it directly into the cargo slot from the parts
bin then it only has the default values.)
The most important changes are probably in steering and control.
Cooked steering shouldn't waste as much RCS as it used to, and if you
are using raw control you now have the ability to set the player's trim
settings for yaw, pitch, and roll so you can steer using those and
not completely lock the player out of control. There is also a
panic button for telling kOS to suppress all of its controls if the
player needs to take over the controls regardless of what the script
is doing.
As always, recompile KSM files with this release. Especially as there
was an important KSM bugfix.
BREAKING CHANGES
TimeSpan
used to mean a fixed stamp in time (the name was not
really accurate). Now there are two types,TimeStamp
and
TimeSpan
, and the one that USED to be calledTimeSpan
is now calledTimeStamp
, withTimeSpan
now being a new
type that didn't exist before. This could affect scripts if
you ever did a check for:istype("TimeSpan")
(because of
the rename) but shouldn't affect anything else.- Even more than usual it's important to recompile any KSM files.
A major bug in how KSM files were written was discovered that this
release fixes. There's a chance your existing KSM files may
already be wrong. If you have any bug reports about a KSM file
not working right, please try testing again with this release by
recreating the KSM file. There's a small chance you might have
had the bug this release fixes. (Look for "KSM" in the bug section
below.) - If you are using the output of
SteeringManager:WRITECSVFILES
,
be warned that output now has a new column in the second-to-last
position, the MinOutput column. That means the MaxOutput column
has shifted one position to the right. This should only affect
people who are analyzing that data with external software. - In order to support Kerbal Alarm Clock version 3.0.0.2 or higher
it was necessary to break compatibiltiy with versions of Kerbal
Alarm Clock that are older than that. The API wrapper changed
enough that backward compatibility is too messy to maintain. - The
:LIST
suffix ofVOLUME
said in the documentation
that it returns aLIST
when in reality it always returned
aLEXICON
. If you relied on this and wanted the lexicon
not the list, you need to now use the new suffix:LEXICON
because the old suffix:LIST
has been changed to match the
documentation and be a real actual LIST now. - Temperature tolerance for the kOS parts was way too high, making
them effective heat shields when they shouldn't be. If you had been
taking advantage of this before that might not work anymore. - CREATEORBIT() used to take mean anomaly at epoch as a value in
radians, which didn't match how everything else in kOS works.
It is now expecting it in degrees as described in BUG FIXES
below. - If you ever happend to have a string literal with a backslash
followed by a quote mark (\"
) that has now become a special
escaped quote char and is no longer literally a backslash and
quote mark.
NEW FEATURES
- Maneuver Nodes can now be constructed with either ETA time or
with UT time, and you can read their time either as UT (:TIME
)
or as ETA (:ETA
). They also can take in the newTimestamp
orTimeSpan
types instead of just a Scalar number of seconds if
you like.
pull request - There's a new button, "Reread Boot Folder", on the kOS toolbar
window when you're in the VAB or the SPH. This button lets you
tell kOS to re-read the boot directory when you've just added
a new file to it, so you don't have to leave the VAB and come
back for it to show up in the list of boot files.
pull request - The old
TimeSpan
type has been renamed toTimeStamp
and
a newTimeSpan
type has been made in its place. This is to
fit the design pattern where a "stamp" is a fixed point in time (a
date and a time of day) and a "span" is a time offset. The main
difference in Kerbal is whether you count years and days
starting at 1 or at 0.
pull request - Suffixes
:PARTSTAGGED
,:PARTSNAMED
, and:PARTSDUBBED
can now be used with parts instead of with entire vessels. Doing
so searches just the sub-branch of the ship starting from that
part, instead of the whole ship.
pull reqeust - Added a new Suffix to RCS parts,
:DEADBAND
that lets you
finally override the game's enforced 5% deadband on RCS
controls. It turns out the deadband isn't in the controls,
but rather it's in the RCS Parts themselves and doesn't apply
to other torque sources like reaction wheels. That's why
you notice it when translating (where only RCS works) and not
when rotating (where reaction wheels do something and take
up the slack left by the RCS thrusters not responding).
pull request - Big overhaul to SteeringManager's internals:
There's been some important refactoring in SteeringManager that
should reduce the control vibrations and consequently the
RCS fuel wastage especially in Realism Overhaul (which relies
more on RCS than stock does). Also, there's some
user-settable epsilon values - if you want to change the tuning
you can adjustSteeringManger:ROTATIONEPSILONMIN
and
SteeringManager:ROTATIPONEPSILONMAX
.- Dynamic Epsilon logic to reduce control jitter: pull request 2810 pull request 2813
- The stock KSP's available torque calculations are random wrong values for RCS parts. kOS now replaces that with its own calculation instead: pull request 2820
- The random number generator now can be fed a seed.
pull request - PIDLoop is now a serializable structure so you can save
your PID's settings and bring them back from a file. Also
PIDloop's CSV output now has a Minoutput column.
pull request - Enlarged max allowed terminal font size to 48, to benefit
people with tiny pixels (i.e. 4k monitors).
pull request - Uses the changes to Kerbal Alarm Clock's API that started
with Kerbal Alarm Clock v3.0.0.2. (This does break compatibility
with older versions of Kerbal Alarm Clock, though.)
pull reqeust - On-Screen warning when SAS is fighting kOS: The message
appears when both SAS and lock stering have been active for a
few seconds and goes away when one or the other is turned off.
pull request 2780
pull request 2783 - Emergency Suppress Autopilot: You can now click an emergency
toggle button on the kOS toolbar dialog window that will
temporarily suppress all of kOS's locked steering so you have
manual control. If you use this, the script will still keep
running and think it's moving the controls, but the steering
manager will ignore the script's commands until you turn the
suppression toggle off. This can also be bound to an
action group for the kOS PartModule if you want a fast hotkey
for it.
pull request Part
suffixes that allow you to traverse the symmetrical
sets of parts. (i.e. if you place 4 fins in radial symmetry,
and have a reference to one of the fins, you can find the other
3 fins that it is symmetrical with.)in the same symmetry set)
pull request- The player's own TRIM controls are now settable by script.
(Example use case: You want an autopilot to control an
airplane by moving the trim but not the main controls so
the player is still free to push the main control stick at
any time).
pull request ETA:NEXTNODE
now an alias forNEXTNODE:ETA
pull request- Trajectories Addon updated to support Trajectories v2.4 changes.
(Thanks PiezPiedPy)
pull request - Kuniverse:launchcraftwithcrewfrom()
(Thanks Jonny...
hotfix for DDS loading on UNIX
v1.2.1.0 Get Backslash to where you once belonged.
((UPDATE - edited the version file to tell CKAN it works up to KSP 1.9.1. Hoping CKAN's crawler will pick up on the change))
Just a hot fix to solve the problem where the new DDS texture loading routine in v1.2 broke on UNIX platforms because of the path separator being hardcoded to backslashes.
Unity update for KSP 1.8.x
v1.2 Unity Update
This update is mostly to make kOS compatible with KSP 1.8.x, which
started using a newer version of Unity, and a newer version of .Net,
which have some consequent changes in the code and build process.
BREAKING CHANGES
None that are known about, other than the usual reminder that
KSM files need a recompile after every version update of kOS.
NEW FEATURES
- Now forces both the toolbar window and the telnet welcome menu
to list the kOS CPUs in a consistent unchanging sort order.
Previously, it was pretty much random what order you would
see kOS CPU's listed in the menu, which made it hard for
JonnyOThan's Twitch-Plays-KSP chatbot to know which CPU it
was attaching to when it sent commands to kOS. This has been
changed to a predictable sort order as follows: (1) Sort by
which vessel the CPU is on, starting from the active vessel,
and then for other vessels, sorting by distance from the active
vessel, closest first. (2) When the same vessel has more than
one CPU, break that tie by number of "hops" from the root part,
such that CPU's attached closer to the root come first. This
is by "number of parts to walk through to reach root" rather
than by actual physical distance, since using physical distance
might have led to inconsistent sort order given that some ship
parts can hinge and extend, changing that distance.
pull request - New suffixes
Dockingport:PARTNER
andDockingport:HASPARTER
will tell you which docking port this docking port is docked with.
issue
pull request - HEADING() Now allows optional 3rd argument, "roll".
issue
pull request - Let user-made GUIs toggle IMGUI's wordwrap flag with a
new suffix:Style:WORDWRAP
. This should let you fix
that annoying problem where a GUI Label would insist on
wrapping even when it could have fit by making the window
wide enough. Setting wordwrap to false will force the
GUI layout engine to keep the label's area wide enough
to not wrap the text.
issue
pull request - Add BODYEXISTS test
issue
pull request - Allow FLOOR() and CEILING() to specify a decimal place other
than the one's place, like ROUND() can do.
issue
pull request - Add a constructor,
CREATEORBIT()
that will make a new
Orbit
object for any hypothetical orbit given Keplerian
parameters, without it coming from a vessel or a body that
already exists.
issue
pull request - Added new suffix to waypoint:
:ISSELECTED
, which will
tell you if the waypoint is the one the user has selected
for their navball.
issue
pull request
BUG FIXES
- Bound variables like SHIP, UP, VELOCITY, etc stopped existing
in the KSP 1.8.x update. This was because kOS makes use of
reflection techniques to store information about C# Attributes
that help it find the bound variables in its code, and .Net 4.x
changed the meaning of Attribute.Equals() in such a way that it
broke what kOS was doing to store this reflection information.
A Dictionary that kOS was using to track bound variables by Attributes
started having key clashes because of that change to what it means
for an Attribute to be Equal to another Attribute.
((No link to a github issue because this was part of the general
KSP 1.8 update PR and didn't have an issue.)) - Prevent waypoints with bogus body names.
pull request - Fix a problem that made the GUI terminal sometimes get stuck
refusing to repaint when resized to a size too small to
hold all the text it previously had showing.
issue
pull request - Several minor doc typos
pull request
pull request - The startup message about default font and "if you want the old look" was
quite obsolete by now and needed to be removed.
issue
pull request - Changed the technique used to load DDS icons used in the
kOS GUI terminal and the kOS toolbars, to bypass KSP's
strange API and go directly to Unity. This may or may
not help people who had the purple square icon problem.
((No issue - SlimJimDodger contributed PR out of the blue.))
pull request
Breaking Bounds
v1.1.9.0 Breaking Bounds
This update is a mix of new features, mostly
BREAKING CHANGES
NEW FEATURES
- Bounding box information for parts and for the vessel as
a whole is now exposed for scripts to read.
pull request 1.
pull request 2. - The above bounding box feature also came with some new suffixes
for Vecdraw so you can now draw plain lines (suppress the
arrowhead, suppress the opacity fade) with them. - Lexicons can now use the suffix syntax. i.e. where you
saymylex["key1"]
you can now saymylex:key1
,
provided the key is something that works as a valid identifier
string (no spaces, etc).
pull request. - Can now set the default terminal Width and Height for all
newly spawned terminals.
pull request 1. - A ternary conditional operator exists in kerboscript now,
using the syntaxCHOOSE expr1 IF bool_expr ELSE expr2
.
If bool_expr is true, it returns expr1. If it's false,
it returns expr2.
pull request. - Added support to read more atmospheric values from KSP.
pull request.
BUG FIXES
- TimeSpan now peeks at the KSP game to learn its notion of
how long a day is, and how long a year is, rather than hardcoding
the values.
pull request. - Fix cooked control triggers not working during a WHEN/ON trigger.
pull request. - Fix mangled state if kOS is out of electricity when scenes switch
or the game is saved.
pull request. - Obsolete list command documentation removed.
pull request. - Allow part modules'd fields to work even when no GUI name is defined.
It seems that the main game allows the GUI name to be left out and if
so it inherits from the base name under tne hood. Now kOS follows
this behaviour.
pull request. - Prevent using UNSET on built-in variable names like SHIP, ALTITUDE,
and so on.
pull request. - RP-1 used a different technique to lock out controls due to
insufficient avionics that kOS didn't know about. kOS bypassed
this lockout and still controlled the vessel anyway. This is no
longer the case.
pull request. - PartModule:SETFIELD now works properly with the new type of slider
widget that robotic parts use in KSP 1.7.x. KSP introduced a new
type of slider widget that presents false information when kOS tried
to obey its min, max, and detent values, those being only dummy
placeholders for these types of sliders, not actually populated with
the real values. For these sliders, the real limit values come from
another field, requiring a more indirect method call to get the information.
pull request. - GUI windows no longer use the KSP control lock system to emulate
keyboard focus, instead relying on the built-in Unity IMGUI
focus rules for widgets, thus they won't 'steal focus' as much.
pull request.
Breaking Bounds
BREAKING CHANGES
(None known about, other than the usual "make sure you recompile any KSM files.")
NEW FEATURES
- Bounding box information for parts and for the vessel as
a whole is now exposed for scripts to read.
pull request 1.
pull request 2. - The above bounding box feature also came with some new suffixes
for Vecdraw so you can now draw plain lines (suppress the
arrowhead, suppress the opacity fade) with them. - Lexicons can now use the suffix syntax. i.e. where you
saymylex["key1"]
you can now saymylex:key1
,
provided the key is something that works as a valid identifier
string (no spaces, etc).
pull request. - Can now set the default terminal Width and Height for all
newly spawned terminals.
pull request 1. - A ternary conditional operator exists in kerboscript now,
using the syntaxCHOOSE expr1 IF bool_expr ELSE expr2
.
If bool_expr is true, it returns expr1. If it's false,
it returns expr2.
pull request. - Added support for reading Principia's flight planning nodes,
from contributor RCrockford.
pull request. - Added support to read more atmospheric values from KSP.
pull request.
BUG FIXES
- Fix cooked control triggers not working during a WHEN/ON trigger.
pull request. - Fix mangled state if kOS is out of electricity when scenes switch
or the game is saved.
pull request. - Obsolete list command documentation removed.
pull request. - Allow part modules'd fields to work even when no GUI name is defined.
It seems that the main game allows the GUI name to be left out and if
so it inherits from the base name under tne hood. Now kOS follows
this behaviour.
pull request. - Prevent using UNSET on built-in variable names like SHIP, ALTITUDE,
and so on.
pull request. - RP-1 used a different technique to lock out controls due to
insufficient avionics that kOS didn't know about. kOS bypassed
this lockout and still controlled the vessel anyway. This is no
longer the case.
pull request. - PartModule:SETFIELD now works properly with the new type of slider
widget that robotic parts use in KSP 1.7.x. KSP introduced a new
type of slider widget that presents false information when kOS tried
to obey its min, max, and detent values, those being only dummy
placeholders for these types of sliders, not actually populated with
the real values. For these sliders, the real limit values come from
another field, requiring a more indirect method call to get the information.
pull request. - GUI windows no longer use the KSP control lock system to emulate
keyboard focus, instead relying on the built-in Unity IMGUI
focus rules for widgets, thus they won't 'steal focus' as much.
pull request.
Engines and KSP 1.7 compatibility
Mostly this was motivated by a need to get an officially
recompiled-for-KSP-1.7 version out there (even though the previous
version worked on KSP 1.7, it wasn't officially compiled for KSP
1.7.)
Along the way there were one or two bug fixes and documenation
cleanups.
BREAKING CHANGES
- Not that we know of, unless you were unaware that some of
the bugs fixed were in fact bugs and had written a script
to expect that behaviour as normal. (Read the bug fixes
below to be sure.)
NEW FEATURES
- Support of multiple-at-the-same-time engines that exist in
some mods (but not in stock, as far as we can tell). Stock
contains single engines in a part, and multi-mode engines
in a part (where only one of the engines in the part is
active at a time, i.e. wet/dry mode engines or jet/rocket
mode engines). But some mods contain parts that have more
than one engine in them that are selected at the same time,
rather than toggle-switched like the stock multi-mode engines.
One example is the RD-108 engine that the RealEngines mod
provides. Its main "straight" engines are one Engine Module,
and its smaller "gimbal" engines around the edge are a second
Engine Module. Both modules are active at once and need their
information aggregated to work with kOS's "an engine part is
just one module" system. This PR does so.
pull request
Special thanks to first time contributer RCrockford for doing
all the legwork on this.
BUG FIXES
- The behaviour of
LIST ENGINES
in regards to multi-mode engines
was restored to what it was supposed to have been. Becuase of a
small change KSP made, it's been wrong since KSP 1.5, apparently.
Prior to KSP 1.5 it worked correctly by giving a list that contains
one entry in the LIST ENGINES per engine. But since then it has been
returning 3 duplicate instances in the list per each multi-mode engine.
This release fixes it, and the previous correct behavior is restored
(just returning one, not three).
The problem was discovered during regression testing of
the pull request,
so the fix is inside that same pull request. - kOS could be rendered completely inert and broken if other mods not
under kOS's control had broken DLL files. Specifically, kOS would
abort partway through initializing itself if any other DLL file in the
entire KSP game had failed to load during the KSP loading screen. kOS
has a "reflection" walk through all the classes that hadn't accounted
for the fact that .net apparently keeps a null stub of a class in memory
after a class fails to load, rather than it just not existing at all
like one would expect.
pull request
(This was discovered with KSP 1.7 because KSP 1.7 broke some other
mod's DLLs making them not load, but the problem was actually there
all along waiting for some DLL file to trigger it.) - Reworking the position of the Connectivity Manager Dialog box.
Our exploratory reverse-engineering of just what the undocumented
arguments to KSP's MultiOptionDialog mean, which was used to move the
box to fix issue 2456
were still wrong. They didn't do exactly what we thought they did.
(The misinterpretation became relevant when the player has UI scaling
set higher than 100% and that pushed the dialog box off screen.)
Thanks to contributor madman2003 for doing more reverse-engineering
on this and submitting the fix.
pull request - Fix to bug where kOS scripts could no longer
SET TARGET
to a
Celestial Body and could only set targets to vessels or parts.
This bug was introduced in the previous release of kOS by a
hamfisted typing error while fixing the fact that Body wasn't
serializable. It was an error that unfortunately didn't result
in any noticable problem when compiling or testing, as it
only removed the Body's declaration that "I am the kind of class
that knows how to be a target" and it affected nothing else.
pull request - Several small documentation edits:
pull request,
pull request,
pull request - Trying to toggle the
panels
value on or off would result
in infinite log spam if the ship contained a fixed undeployable
solar panel like the OX-STAT. kOS was watching for the existence
of ModuleDeployableSolarPanel to see if the part could be deployed
or not, but apparently at some point KSP started defining all
solar panels as having ModuleDeployableSolarPanel, even if they're
not actually deployable. Now kOS doesn't treat the panel as
deployable unless it also has its animation property defined in
addition to claiming to be a ModuleDeployableSolarPanel.
pull request