static IResourceLoader resourceLoaderFromJar(File mainJar) { SS titles = cast safeUnstructure(loadTextFileFromZip(mainJar, "snippet-titles.struct")); assertNempty("Snippet titles", titles); Map types = cast safeUnstructure(loadTextFileFromZip(mainJar, "snippet-types.struct")); ret new IResourceLoader { public S loadSnippet(S snippetID) { ret loadTextFileFromZip(mainJar, psI(snippetID) + ".text"); } public S getTranspiled(S snippetID) { S src = loadTextFileFromZip(mainJar, psI(snippetID) + ".transpiled"); if (empty(src)) print("Warning: Transpilation for " + snippetID + " not found"); ret src; } public int getSnippetType(S snippetID) { ret or0(types.get(fsI(snippetID))); } public S getSnippetTitle(S snippetID) { ret titles.get(fsI(snippetID)); } public File loadLibrary(S snippetID) { long id = psI(snippetID); if (isImageServerSnippet(id)) ret unpackResource(id + ".png"); else ret unpackResource(id + ".bin"); } public File pathToJavaXJar() { ret mainJar; } public File getSnippetJar(S snippetID, S transpiledSrc) { null; // just compile through CompilerBot } }; }