Skip to content

Latest commit

 

History

History
66 lines (46 loc) · 1.99 KB

README.md

File metadata and controls

66 lines (46 loc) · 1.99 KB

Vircadia Assets

Static files used by Vircadia Web.

This repo is optimized to be used as a submodule.
Here are some handy instructions for working with Git submodules.

Programmatic Access

Each directory contains an index.ts file listing the files and sub-directories within. This allows you to read the contents of any directory without using node-only modules like fs. For example, to check if the /models/avatars directory contains a given file:

import * as assets from "vircadia-assets";

console.log(assets.directories.models.directories.avatars.files.includes("awesome_avatar.glb"));
//      ^- true

Adding New Directories

When adding a new directory to this repo, please give it an index.ts file using the following template:

export const directories = {} as const;

export const files = [] as const;

Then, in the parent directory, add a reference to the new index file you just created:

/*  the parent index.ts file  */

import * as audio from "./audio/index.js";
import * as images from "./images/index.js";
import * as new_directory from "./new directory/index.js";  // Import the directory's index.
import * as video from "./video/index.js";

export const directories = {
    audio,
    images,
    new_directory,        // Add the directory reference to the `directories` list.
    video
} as const;

...

Note: The path to the directory's index file must end in .js, despite it being a TypeScript file.

Adding New Files

When adding a new file to this repo, please make sure to include its name in the parent directory's index.
For example, when adding cat.png to the /images directory:

/*  /images/index.ts  */

...

export const files = [
	"apple.jpg",
	"banana.png",
	"cat.png",        // Add the file name (with extension) to the `files` list.
	"mouse.webp"
] as const;