Skip to content

USER Program Structure

Jan Fic edited this page Sep 27, 2020 · 2 revisions

Every USER Program has a structure that is required by the OS Kernel ( or base program ) in order to load successfully with the Java ClassLoader. NOTE: To have a program be loaded by the OS there are simple, but further requirements that need to be met. They will be discussed later on this page.

The USER Kernel is that base program that loads every program and handles files. It is the layer between the USER OS and your operating system that you use now. It contains a System that starts programs in the USER Format. By default the USER Kernel loads the program contained in the 'os' folder so that it can find and load the OS for the virtual machine.

Every USER Program has these requirements to be loaded by the Kernel: 0. A root directory reflecting the programs name

  1. A Components Folder
    • The components folder holds .groovy files that contain java/groovy code that will compile into a class that implements AshleyECS's Component interface. Only .groovy files will be attempted to be compiled in this folder
  2. A Systems Folder
    • The systems folder holds .groovy files that contain java/groovy code that will compile into a class that extends one of AshleyECS's EntitySystem class.
    • Only .groovy files will be attempted to be compiled in this folder.
    • A required BootSystem.groovy file will be required in order to start and run your program. It should add all required systems and entities to your program to get it started
  3. An Assets Folder
    • Though this folder is required it can be empty. This folder is meant for resources specific to your program

USER OS Requirements:

  1. All the requirements for a USER Program met
  2. An icon.png in the assets folder to display an icon for your program in the OS interface

Navigation

USER Programs

  • Entity-Component-Systems
  • USER Program Structure

USER OS

  • Built-In Programs
  • API
    • Asset Management
    • Rendering
      • Textures, TextureRegions, NinePatch, Fonts
      • Positioning and Sizing
      • Colors
    • Mouse and Keyboard

Clone this wiki locally