QDResLoader
A dead-simple resource loader that reuses existing functionality.
QDResLoader
So, you know how there's this really nice, battle-tested, and fast resource loading system in QSL? It's used for every mod. Wouldn't it be great if we could just reuse that, instead of needing a bloated Architectury-requiring overengineered mess that breaks when you so much as breathe on it?
That's what this is. 1.0 is 10 lines of Java code, including formatting: ```java new File("resources").mkdirs(); for (var t : ResourceType.values()) { ResourceLoader.get(t).getRegisterTopResourcePackEvent().register((ctx) -> { ctx.addResourcePack(new ModNioResourcePack( "QDResLoader resources", mod.metadata(), null, ResourcePackActivationType.ALWAYS_ENABLED, new File("resources").toPath(), t, null )); }); } ```
Since 1.0, some more features have been added to make it nicer to use and have some extra functionality, but it's still tiny regardless; just not "put the whole mod in your description" levels of tiny.
Harness the power of QSL Resource Loader in the `resources` directory. You already know the format; data goes in `data`, assets go in `assets`. Maybe you've got some zips you don't want to extract, maybe since you're managing them with Packwiz to update packs someone else manages? Cool, drop them in `packs`.
On first run, a `QDResLoader-README.txt` file will be dropped into `resources` to give you a quick explainer on how to use the mod. Here's what it says:
> This directory is created and handled by QDResLoader. You can delete this README > once any of the following things exist. > > This directory itself is loaded as a datapack *and* resourcepack, so any pack.mcmeta > will be considered (using a default provided by QSL if not present) and any data in > "data", as well as resources in "assets" on the client, will be loaded. > > You may also create a "packs" directory, and put directories, zips, or jars in there > that will all be loaded as packs. For organization purposes, you may also create a > "datapacks" or "resourcepacks" directory -- packs in those directories will only be > loaded as one type instead of both. > > The resources in the main directory cannot be disabled by users, but will be visible > in the "Resource Packs" and "Data Packs" menu, and can be reordered. Packs in all > three pack directories can be disabled as the user pleases, but are all enabled by > default. > > Jars are recognized as packs so you can take "datapack-as-mod" JARs and drop them > here instead of in mods, if that's something you would like to do.