Skip to content

Latest commit

 

History

History
40 lines (34 loc) · 2.48 KB

DevelopmentReadme.md

File metadata and controls

40 lines (34 loc) · 2.48 KB

Sub-Projects

The RedOnion project is divided into multiple sub-projects:

  • Kerbalua - A MoonSharp-based Lua scripting engine.
  • KerbaluaNUnit - Tests for the Kerbalua project.
  • Kerbalui - An imgui-based ui lib used to create LiveRepl. Not designed to be used by as a general ui library. Only implemented what I needed for LiveRepl and left it to be refactored later if it is ever intended to be used as a general ui lib (no plans for this).
  • Kerbnlua - An experimental Lua scripting engine based on NLua. I'm developing this in a different branch, nlua-experiments. It is disabled in the main development branches.
  • LiveRepl - The main GUI. It's LiveReplMain class extends MonoBehaviour, manages this project's toolbar button, and handles UnityEngine's Update, FixedUpdate, and OnGUI calls.
  • RedOnion.Build - The project that builds releases and documentation.
  • RedOnion.KSP - Contains features used by both ROS and Kerbalua, including the Common API
  • RedOnion.KSP.Tests - Tests specific to the RedOnion.KSP project.
  • RedOnion.ROS - The Red Onion Script custom language.
  • RedOnion.ROS.Tests - Tests for RedOnion.ROS
  • RedOnion.Shell - A shell where RedOnionScript can be ran independently of KSP.
  • RedOnion.UI - A ui lib that uses Unity UI. Can be used in scripting.

The two orignal developers on this project, Evan and Firda (Lukáš Fireš) are generally responsible for different sub-projects. For example, Firda is responsible for most of the "RedOnion.X" projects. The exception is "RedOnion.KSP", which is our sub-project for things that bring our scripting language sub-projects together.

Sub-Project Reference Structure

Since C# doesn't allow cyclic dependencies, this structure is important for figuring out where to implement what.

LiveRepl
    RedOnion.KSP
        RedOnion.ROS
        RedOnion.UI
    RedOnion.ROS
    RedOnion.UI
    Kerbalua
        RedOnion.KSP
        RedOnion.ROS
        RedOnion.UI
    Kerbalui
        RedOnion.KSP
        RedOnion.ROS

In other words, LiveRepl references RedOnion.KSP, RedOnion.ROS, etc.

Kerbalua references RedOnion.KSP, RedOnion.ROS, etc.