Add initial pack definitions
This commit is contained in:
parent
5b9e808ea9
commit
8f206baf46
5 changed files with 146 additions and 1 deletions
7
.gitignore
vendored
7
.gitignore
vendored
|
|
@ -13,3 +13,10 @@ jspm_packages/
|
|||
.env.test.local
|
||||
.env.production.local
|
||||
.env.local
|
||||
|
||||
# Ignore all of the binaries and stuff that gets built for Foundry from the raw
|
||||
# JSON data because it's annoying seeing it in my git changes when it isn't actually
|
||||
# needed.
|
||||
/packs/**/*
|
||||
!/packs/**/*/
|
||||
!/packs/**/*.json
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@
|
|||
"eslint": "^9.16.0"
|
||||
},
|
||||
"scripts": {
|
||||
"data:build": "node scripts/buildCompendia.mjs",
|
||||
"data:extract": "node scripts/extractCompendia.mjs",
|
||||
"link": "node scripts/linkFoundry.mjs",
|
||||
"lint": "eslint --fix",
|
||||
"lint:nofix": "eslint"
|
||||
|
|
|
|||
36
scripts/buildCompendia.mjs
Normal file
36
scripts/buildCompendia.mjs
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
import { existsSync } from "fs";
|
||||
import { readFile } from "fs/promises";
|
||||
import { join } from "path";
|
||||
import { compilePack } from "@foundryvtt/foundryvtt-cli";
|
||||
import { pathToFileURL } from "url";
|
||||
|
||||
export async function buildCompendia() {
|
||||
const manifest = JSON.parse(await readFile(`./system.json`, `utf-8`));
|
||||
|
||||
if (!manifest.packs || manifest.packs.length === 0) {
|
||||
console.log(`No compendium packs defined`);
|
||||
process.exit(0);
|
||||
};
|
||||
console.log(`Packing compendia`);
|
||||
|
||||
for (const compendium of manifest.packs) {
|
||||
console.debug(`Packing ${compendium.label} (${compendium.name})`);
|
||||
let src = join(process.cwd(), compendium.path, `_source`);
|
||||
if (!existsSync(src)) {
|
||||
console.warn(`${compendium.path} doesn't exist, skipping.`)
|
||||
continue;
|
||||
};
|
||||
await compilePack(
|
||||
src,
|
||||
join(process.cwd(), compendium.path),
|
||||
{ recursive: true },
|
||||
);
|
||||
console.debug(`Finished packing compendium: ${compendium.name}`);
|
||||
};
|
||||
|
||||
console.log(`Finished packing all compendia`)
|
||||
};
|
||||
|
||||
if (import.meta.url === pathToFileURL(process.argv[1]).href) {
|
||||
buildCompendia();
|
||||
};
|
||||
31
scripts/extractCompendia.mjs
Normal file
31
scripts/extractCompendia.mjs
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
import { readFile } from "fs/promises";
|
||||
import { join } from "path";
|
||||
import { extractPack } from "@foundryvtt/foundryvtt-cli";
|
||||
import { pathToFileURL } from "url";
|
||||
|
||||
export async function extractCompendia() {
|
||||
const manifest = JSON.parse(await readFile(`./system.json`, `utf-8`));
|
||||
|
||||
if (!manifest.packs || manifest.packs.length === 0) {
|
||||
console.log(`No compendium packs defined`);
|
||||
process.exit(0);
|
||||
};
|
||||
console.log(`Extracting compendia`);
|
||||
|
||||
for (const compendium of manifest.packs) {
|
||||
console.debug(`Unpacking ${compendium.label} (${compendium.name})`);
|
||||
let src = join(process.cwd(), compendium.path, `_source`);
|
||||
await extractPack(
|
||||
join(process.cwd(), compendium.path),
|
||||
src,
|
||||
{ recursive: true },
|
||||
);
|
||||
console.debug(`Finished unpacking compendium: ${compendium.name}`);
|
||||
};
|
||||
|
||||
console.log(`Finished unpacking all compendia`);
|
||||
};
|
||||
|
||||
if (import.meta.url === pathToFileURL(process.argv[1]).href) {
|
||||
extractCompendia();
|
||||
};
|
||||
69
system.json
69
system.json
|
|
@ -53,5 +53,74 @@
|
|||
"skill": {},
|
||||
"weapon": {}
|
||||
}
|
||||
},
|
||||
"packs": [
|
||||
{
|
||||
"name": "protection",
|
||||
"label": "Armour & Shields",
|
||||
"system": "ripcrypt",
|
||||
"path": "packs/protection",
|
||||
"type": "Item",
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "weapons",
|
||||
"label": "Weapons & Ammo",
|
||||
"system": "ripcrypt",
|
||||
"path": "packs/weapons",
|
||||
"type": "Item",
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "skills",
|
||||
"label": "Skills",
|
||||
"system": "ripcrypt",
|
||||
"path": "packs/skills",
|
||||
"type": "Item",
|
||||
"ownership": {
|
||||
"PLAYER": "OBSERVER",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "geist",
|
||||
"label": "Geist",
|
||||
"system": "ripcrypt",
|
||||
"path": "packs/geist",
|
||||
"type": "Actor",
|
||||
"ownership": {
|
||||
"PLAYER": "NONE",
|
||||
"ASSISTANT": "OWNER"
|
||||
}
|
||||
}
|
||||
],
|
||||
"packFolders": [
|
||||
{
|
||||
"name": "RipCrypt Sprint Start",
|
||||
"color": "#04262a",
|
||||
"sorting": "m",
|
||||
"folders": [
|
||||
{
|
||||
"name": "Character Options",
|
||||
"color": "#06393f",
|
||||
"sorting": "m",
|
||||
"folders": [],
|
||||
"packs": [
|
||||
"protection",
|
||||
"weapons",
|
||||
"skills"
|
||||
]
|
||||
}
|
||||
],
|
||||
"packs": [
|
||||
"geist"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue