Documentation
¶
Overview ¶
Package panorama compiles Panorama layouts, scripts and style sheets into the resources the game loads, without Valve's resource compiler, and decompiles layouts back to XML and style sheets back to CSS. The output follows what the resource compiler writes, so the game reads it the same way on every platform.
Index ¶
- func Compile(addon, path string, source []byte) ([]byte, error)
- func CompileTree(addon string, tree fs.FS) (fstest.MapFS, error)
- func Compiled(source string) (string, bool)
- func Decompile(compiled []byte) (string, error)
- func DecompileStyle(compiled []byte) (string, error)
- func SheetLayout(name string) (string, []byte, bool)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Compile ¶
Compile builds the source at path, such as panorama/layout/hud.xml, panorama/scripts/hud.js or panorama/styles/hud.css inside the addon named addon, into its compiled resource. A layout is parsed into the tree the game reads, a style sheet is minified with its paths rewritten, and a script is stored as it is.
func CompileTree ¶
CompileTree compiles the addon content directory tree, such as content/citadel_addons/<addon>, into the addon's game files: each layout, script and style sheet under panorama/ becomes its compiled resource, and every other file is kept as it is, so already compiled resources, such as images, ship beside them. Each style sheet under panorama/styles/<dir>/ also gets its sheet layout (see SheetLayout).
func Compiled ¶
Compiled returns the path of the resource the game loads for a source path, such as panorama/layout/hud.vxml_c for panorama/layout/hud.xml, and whether Compile builds that kind of source.
func Decompile ¶
Decompile prints a compiled .vxml_c layout as XML that Compile builds back to the same tree, apart from source positions. A layout is the only Panorama resource that needs it; a compiled script's DATA block is its source.
func DecompileStyle ¶ added in v0.1.59
DecompileStyle prints a compiled .vcss_c style sheet with one declaration per line, which Compile builds back to the same text.
func SheetLayout ¶ added in v0.1.63
SheetLayout returns the layout the build writes beside the style sheet at name, such as panorama/layout/<dir>/hud.css.xml for panorama/styles/<dir>/hud.css, with its source, and whether name is such a sheet. The layout includes the sheet and draws nothing, so loading it into a panel styles the panels a script adds beneath it; Modlock's interface renderer loads a mod's sheets this way.
Types ¶
This section is empty.