Respackopts/README.md
2020-11-26 20:11:38 +01:00

2.4 KiB

Respackopts

Respackopts provides resource packs with config menus
By default it integrates with frex (canvas shaders) and libcd (use this as reference)
An example for the frex/canvas integration can be found here

Using Respackopts

Users

You will just need to install Respackopts. A menu button will appear besides all supported resourcepacks.

Resource pack authors

You will need to define a respackopts conf as seen here

This config may include:

  • boolean values, expressed as Json bools
  • number values, expressed as Json numbers
  • string values (not accessible from default integrations), expressed as Json strings
  • enums, expressed as Json arrays containing simple strings

The version property defines the format version. It will be incremented if changes to the layout of the config are made
I will likely attempt to support older versions if I decide to make an incompatible change.
To use the information from the config you will need to use and integration module/plugin.
For the ones included by default:

Canvas

Respackopts defines a config supplier, you can include it with #include respackopts:config_supplier
Values can be accessed with packId_entryId for basic elements.
Enum values can be accessed with packId_entryId_enumKey.
Examples of using these are available here

LibCD

The LibCD integration defines a condition named respackopts:cfg that takes a string describing the location of a bool as packId:entryId

There have been issues with LibCD in development, so it might be smart not to use it.

Mod developers

All data is available in static HashMaps in io.gitlab.jfronny.respackopts.Respackopts.
To save information, call Respackopts.save(), Respackopts.load() to load. boolVals, numVals, strVals and enumKeys use the resource pack ID as their first key, then the property name. After that you get the value. Enums are expressed as numbers with enum key names in enumKeys.
If you need code to be ran after changes are made to the state, add an action to saveActions.
This is currently used for the Canvas/FREX integration, which uses it to generate shader code.