- New user-centric system for managing scripts. Will be a file-selection dialog or the completion area will do this.
- Editor/Repl reimplementation in new library. Hopefully allowing multiple editors/repls open at a time.
- Lots of new user interfaces for various features built on new gui library.
- Ingame testing framework.
- Ingame debugging.
- Provide editors that can be used for editing files in contexts unrelated to our scripting engines.
- More UI library features.
Just had a release (0.5.2)
- fixed part tags (e.g. "noauto", required "noauto=" or "noauto x=y" before)
- reworked autopilot override + "pylink" for better 2D/3D control
- Science API, science.ros (supports DMagic's Orbital Science and DMModuleScienceAnimateGeneric)
- OS/Process API (early version of MunOS API for scripts)
- UI: ScollBox and Scrollbar (early versions, some improvements shall come soon)
- Fixed lua completion bug for array literals.
- Built-in functions and objects (added collections, documentation)
- Fixed break in (nested) foreach (for var e in list)
- ModuleManager required for part-values/tags to work
- user can now override/correct the autopilot (
autopilot.userFactor
) - universal staging logic (mono, ion, LH2, ...), resources and propellants
OrbitInfo
,orbitAt
and changes topositionAt
andvelocityAt
TimeStamp
andTimeDelta
- launch.ros and control.ros: decouplers marked with
noauto
tag won't be auto-staged - control.ros: auto-staging disabled until throttling or executing node
- control.ros: srf-retro landing assist and hohmann improved, can now circularize in different SOI
- lua tutorial scripts removed: This was done to remove clutter. You can copy in the tutorial code if you want the tutorials back.
- fixed shadowing by loop variable (
var i; for var i...
) - string comparision is case-insensitive, new identity operator (
===
) added for case-sensitive compare - comparing anything to string first converts it to string (including enums)
- strings now have
.format
,.substring
,.equals
,.compare
and.contains
methods (case-sensitive)
- Initial version of our system for running multiple scripts at a time, called MunOS.
- autopilot.disable now also resets killRot to false (was often locking roll in control.ros)
- api for maneuver nodes, sas, rcs and some other orbit-related properties
- Fixed bug where the
new
function was causing errors when it recieved no argument except the type to instantiate.
- control.ros: maneuver executor, circularize, Hohmann planner, inclination match
- control.ros: srf-retro throttle limiter (below 10km) as landing helper (full throttle makes the ship hover)
- launch.ros: fixed the wobble at the end of circularization
- ROS: fixed problem with variables with same name
- launch.ros: pitch-down logic for tilted/off-center engines (Dynawing)
- target and ship.target - works for bodies, ships and parts (docks)
- control.ros: targeting, rendezvous and docking assist
- Changed Kerbalui to use GetControlID to get a unique controlid for each window.
- Fixed issue where LiveRepl was making modifications to the fontsize of the default GUI.Label style instead of making those changes to a copy of that style.
- Hitting run will only save the file if it has been modified in the editor. Otherwise it loads the file from disk into the editor. This will allow you to more conveniently use an outside editor.
- Scene changes, including revert, now terminate any windows or vecdraws.
- time.warp.ready improved
- added GameSettings and GameEvents into KSP namespace
- launch.ros and control.ros now use try..finally
- fixed delay in repl for native events in ROS
- Fixed bug where LiveRepl cleared all Input ControlLocks instead of just the one it had set.
- Stopped using the ControlTypes.KEYBOARDINPUT lock. Now keyboard input (except camera control) is only locked to the window when the window is focused. Still have to lock ControlTypes.CAMERACONTROLS when mouse is in the window bounds, as otherwise scrolling the mouse zooms KSP in and out regardless of the mouse being over a window and that window being focused.
- Try/Catch/Finally for handling errors. Kerbalua has Lua's pcall.
- Fixed an issue where the global keybindings of LiveRepl could be activated when the input is not locked to the window. (input is locked when the mouse is inside the window bounds)
- Made LiveRepl use KSP's UI_SCALE setting. Hard for me to test this thoroughly as I don't have a monitor with a high enough resolution, but from what I can see it is working. I could add an additional scaling factor in some other setting later, if desired, to make it even larger. One thing I did not find how to scale was the scrollbar. But I was able to scale the part of the scrollbar that accepts mouse dragging.
- CompletionArea resets the scroll position each time the completion results list gets updated.
- Lua reflection api was a bit confusing. I'm changing the terminology to
type
andruntime type
instead ofstatic
andtype
. So what was once astatic
will now be called atype
, and what was once atype
will now be called aruntime type
. (runtime types
are for reflection whereastypes
are for accessingstatic members
of clr classes or passing as the first argument tonew
to create a new object.) - Removed
dofile
,loadfile
, andloadfilesafe
as they do not use the Scripts directory as the base directory and cannot be configured to do so. Versions of these (at leastdofile
) will be implemented in the future.
require can be used because it allowed me to specify the base path. However, require
will only run something the first time you call it on some filepath
. To make it run that file again again you have to do packages[filepath]=nil
first.
- My apologies about 0.4.4. I believe I dropped in an unchanged zip.
- Fixed a problem with Lua engine not resetting.
- Also the terminate button now will destroy ui's and vectors that were created by a script.
- Undo/Redo for LiveRepl Editor. Stores at least 50 of the last changes.
- Fixed bug where Lua was outputting strings twice
- Renamed KerbaluaMoonSharp assembly (our modified version of MoonSharp) to MunSharp.
- Fixed MoonSharp issue where some classes could not be automatically registered because of having members that hide base class members without overriding them.
- Improved format for CommonAPI docs.
- Removed OtherDLLs folder and switched to using nuget for the MunSharp.dll, so we can potentially make more changes in the future.
- Tutorial showing how to iterate over the parts and modules of a ship.
- Lua constructor improved. (Firda found an already implemented, but undocumented version in MoonSharp)
- Bug in ship.parts relating to explode functionality fixed.
- Tutorial of how to fallback to native functionality.
- Tutorial for selfDestruct.lua
- Tutorial for using the ui in Lua code (uibasics.lua)
- More docs.
- Fixed a problem with
new(ui.Button,"buttontext",function() end)
where thenew
function wasn't properly converting a lua function to the Action<Button> that the ui.Button constructor requires. - Removed randomPartDestruct.ros as its code was outdated.
- Fixed bug with autoloading the last scriptname.
- Fixed bug where outputting a lot of things quickly (with something like
while true do print(1) end
takes more and more memory and is very slow. - Fixed a bug where misformatted lua code would run anyway and just repeat an error message.
- Intellisense works for enums.
- Fixed a bug where completion on CommonAPI properties (like the globals
body
) wasn't working properly.
- Updated for KSP 1.8.1
- Automatic documentation for our Common API
- In general much better documentation.
- Better Autopilot.
- Completing the Scriptname Input Area with a file name now loads the related file automatically
- LiveRepl can be dragged while executing a file.
- LiveRepl Overhaul: Much simpler UI code.
- Scriptname Input Area now uses a TextField instead of TextArea so that newlines are automatically disallowed.
- Tabs removed. They were kinda clunky. The new way the Scriptname Input Area works makes it less necessary.
- Clicking Scriptname Input Area now empties it so you can easily click on completion area to select the scriptname you want. And it automatically loads that script into the editor when you select it.
- Loading a file automatically selects the appropriate engine based on the extension
- Saving when Scriptname Input Area is empty, now creates an "untitled.X" where X is the current engines proper extension.
- You can now set the font that will be used for the Repl, Output Area, and Editor. All other text uses the default font.
- ROS redesign. Allowing pause and continue features (something similar to the way the Lua example code uses coroutine.yield())
- Removed Kerbalua specific global
import
. It is now available as the globalnative
to be consistent with ROS. - Removed auto conversions from function to CLR Actions and CLR Funcs. Reason is that the execution system doesn't allow script code sent into the CLR to yield in the normal way. This affects attempts to use functions like CLR's
List.Foreach
. Using foreach on a large collection is not interruptible. Any calls to CLR code are not interruptible so they must finish quickly, and in generalList.Foreach
will not.