Jebnix Documentation - griderd/Jebnix GitHub Wiki

This document is intended for people who are either writing plugins for Jebnix, or are writing scripting engines for Jebnix.

Jebnix is a DLL written in C# that contains all of the core code for creating an interactive software environment for Kerbal Space Program.

Jebnix has the following architecture:

  • Jebnix Namespace
    • Functions Class - Stores and invokes all external function delegates, as well as the function delegates of the Standard Library. Plugin writers will be interacting with this class.
    • Interpreter Class - The base class of your scripting engine interpreter. Scripting engine writers will interact with this class.
    • FileSystem Namespace - Contains classes describing the Jebnix file system.
      • File Class - Contains functions and properties for creating, saving, opening, and using files, with a physical backing.
      • Folder Class - Contains functions and properties for creating, saving, opening, and using folders, with or without a physical backing.
      • VirtualFile Class - Contains functions and properties for creating, saving, and using files without a physical backing. Inherits File. Can be converted to a real File.
    • Graphics Namespace - Contains classes for drawing onto the screen.
      • Graphics Class - Contains static functions to manipulate the current graphics mode of the Jebnix machine, and change what the screen is displaying.
      • TextMemory Class - Internal class which stores characters to be displayed on the screen.
    • stdlib Namespace - Jebnix Standard Library
      • stdint Class - Contains static functions for working with hardware interrupts.
      • stdio Class - Contains static functions for doing basic I/O.
      • stdmath Class - Contains static math functions.
      • stdtime Class - Contains functions for working with KSP time.
      • stdvessel Class - Contains functions for working with a KSP Vessel object.