LibJF/docs/libjf-base.md

15 lines
923 B
Markdown

# libjf-base
libjf-base is a dependency of all other modules and provides common functionality between them.
It has no dependencies.
It includes:
- a Gson strategy to ignore fields annotated with GsonHidden, ClientOnly and ServerOnly
- LazySupplier, a supplier that caches the result of another supplier to which it delegates
- ThrowingRunnable and ThrowingSupplier, counterparts of their default lambdas which allow exceptions
- a "flags" system to allow dynamically enabling LibJF features through system properties and fabric.mod.json
- a shared logger and Gson instance
- the ResourcePath abstraction to describe locations of resources as simple strings
- the CoProcess system used internally to control threads separate from the game thread
- an HTTP abstraction from Inceptum
All of these are implemented in one reusable class (except the Gson strategy, whose annotation is separate), which should be simple to read