diff --git a/README.md b/README.md index 926d497..9fe7488 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,10 @@ ΩConfig is a hyper-minimal config library based on [Auto Config](https://github.com/shedaniel/AutoConfig). It aims to achieve the following goals: -- Be lightweight (<10 KB) for JIJ usage +- Be lightweight (<25 KB) for JIJ usage - Exceedingly simple design & API for developers - Intuition and usability for players +- Bonus annotations for advanced config options (syncing values) The following is an example of a simple ΩConfig setup: @@ -39,6 +40,67 @@ public class MyModInitializer { } ``` +Looking for a simple config screen? Talk about easy! +```java +public class ClientInitializer implements ClientModInitializer { + + @Override + public void onInitializeClient() { + // Make sure you implement getModid in your config class! + OmegaConfigGui.registerConfigScreen(MainInitializer.CONFIG); + } +} +``` + +--- + +### Pulling Omega Config into Development + +To use Omega Config, you will have to add it to your build.gradle file. + +What you pull in depends on whether you want GUI functionality. For basic config files using the base module (~20KB), +you can use the following gradle declarations: + +```groovy +repositories { + maven { url 'https://jitpack.io' } +} + +dependencies { + include("com.github.Draylar.omega-config:omega-config-base:${project.omega_config_version}") + modImplementation("com.github.Draylar.omega-config:omega-config-base:${project.omega_config_version}") +} +``` + +Easy - you now have a bundled configuration library. Use the examples in the first section to implement your config. + +If you want to add GUI functionality (most likely Mod Menu support), you can pull in the GUI module (~25 KB): +```groovy +repositories { + ... + + // Needed to retrieve Cloth Config Lite for Omega Config in development environments. + maven { + name = "Shedaniel's Maven" + url = "https://maven.shedaniel.me/" + } + + // Optional dependency for Mod Menu - recommended for viewing your screen in development + maven { + name = "TerraformersMC" + url = "https://maven.terraformersmc.com/releases/" + } +} + +dependencies { + ... (including the base declarations) + + include("com.github.Draylar.omega-config:omega-config-gui:${project.omega_config_version}") + modImplementation("com.github.Draylar.omega-config:omega-config-gui:${project.omega_config_version}") + modRuntimeOnly ("com.terraformersmc:modmenu:${project.modmenu_version}") // 3.0.1 for 1.18.1 +} +``` + --- ### Extra API Utilities @@ -52,8 +114,11 @@ MyModInitializer.CONFIG.value=false; MyModInitializer.CONFIG.save(); // writes the new value to disk ``` + +**@Syncing** - *configuration options marked with this annotation will automatically sync to the client when they join a server.* + --- ### License -ΩConfig is available under Public Domain. You are encouraged to utilize the code in this repository in any way you wish. \ No newline at end of file +ΩConfig is available under MIT. Omega Config will bundle the MIT license inside the jar you pull as a dependency, which means you can distribute it as a bundled dependency without any additional steps. \ No newline at end of file