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