QDResLoader
A dead-simple resource loader that reuses existing functionality.
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
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.