Skip to content

Latest commit

 

History

History
66 lines (49 loc) · 3.6 KB

File metadata and controls

66 lines (49 loc) · 3.6 KB

Source files

Everything in src/. Gets packaged into the .love/.exe file

Modules

Independent pieces with their own goal. Have their own top level tab.

Most(/all?) of these files are extensions of UI classes

  • levelEditor/: Module for editing levels and running scripts on them. Tab is called "Workshop".
    • workshop/: All the code that doesn't deal with an individual level.
    • details/: All the stuff that appears in the left pane of the level editor.
  • dataExplorer/: Module for investigating/reverse engineering misc. stuff in the PlatformerBuilder folder.
    • viewers/: The lasses that display the contents of a file in various ways.
  • campaignEditor/: Module for editing campaigns.
    • overview/: All the code that doesn't deal with editing an individual campaign

Core systems

The stuff on which the rest of CH is built.

  • chaoshead/: All the top-level/module-independent UI stuff.
  • levelhead/: All the code for integrating with Levelhead stuff
    • data/: Wrappers around the data files.
    • lhs/: All the code directly dealing with a .lhs file.
      • read & write convert between the file and a direct representation in Lua
      • parse & serialize convert between that direct representation and usable representations of actual levels
    • level/: Everything dealing with the Lua representation of a LH level.
      • limits.lua: A list of functions for checking various limits imposed by several different things.
  • ui/: The main UI system. Has its own design.md describing (some of) the design of the UI system.

Misc code

  • script/: The scripting system. Probably shouldn't be its own folder in its current state.
  • exePatch/: Stuff related to patching the executable.
    • noCache.md: Description of how te recreate the patch to disable level caching
    • noCache.1337: Actual file saying which bytes to change. File format is from x64dbg.
  • tools/: Code that should be accessible from user scripts.
  • scripts/: Built-in scripts. Limited to /.built-in/ to keep them apart from user scripts.
  • libs/: Contains external libraries
  • utils/: Other code that didn't fit anywhere else.

Resources

  • data/: Contains .tsv data files based on the spreadsheet
  • settings/: The default settings.
  • resources/: Contains non code misc. stuff (font)

Non source-stuff

  • docs/: Documentation for user scripts.
  • licenses/: All the licenses of third-party stuff used by Chaoshead. Has a naming scheme for the licenses.
  • .github/: Contains the release Github Action.
  • scripts/: Scripts for packaging and releasing Chaoshead. Scripts are made to be run with Deno.
  • build/: where the build script does its work

HTTPS libraries

Have to be top-level because dynamic libraries are weird. CH will report a nice error modal on what to do if it fails to load. Grabbed on 2025-09-20 from https://github.com/qixils/lua-https/commit/973119c15c8c0f62b23f446f35474613ed47355c which is only some minor changes away from https://github.com/love2d/lua-https/commit/e1b77046dd3cf1a9f61ddeb63cb39d47c844c089

  • https.dll: HTTPS library for x64 bits Windows. Gets the name that gets searched because this is the version I expect Windows developers would need.
  • https32.dll: HTTPS library for x32 bits Windows. Does not have to be top-level because its different name prevents it being easily loaded, but that is where the other HTTPS libraries are.
  • https.so: HTTPS library for Linux. Was made on Ubuntu, and is probably for x64 bits.