feat: import automatique des anomalies au premier lancement

- Réglage monde 'anomaliesImported' (caché) pour import unique
- _setupAnomaliesFolder() : crée dossier 'Anomalies' (Items) + importAll
- Appelé dans le hook ready, GM uniquement, une seule fois

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-03-31 13:38:19 +02:00
parent b48f2b1504
commit 1e57242b2b

View File

@@ -145,6 +145,7 @@ Hooks.once("ready", () => {
if (game.user.isGM) { if (game.user.isGM) {
_migrateObsoleteItems() _migrateObsoleteItems()
_migrateIntegerTracks() _migrateIntegerTracks()
_setupAnomaliesFolder()
} }
}) })
@@ -294,6 +295,13 @@ function _registerSettings() {
type: Boolean, type: Boolean,
default: false, default: false,
}) })
// Suivi de l'import des anomalies (caché)
game.settings.register(SYSTEM_ID, "anomaliesImported", {
scope: "world",
config: false,
type: Boolean,
default: false,
})
} }
/* ─── Template preload ───────────────────────────────────────────────────── */ /* ─── Template preload ───────────────────────────────────────────────────── */
@@ -334,6 +342,38 @@ function _onSocketMessage(data) {
} }
} }
/* ─── Import initial des anomalies du compendium dans le monde ─────────── */
/**
* Au premier lancement (GM uniquement), crée le dossier « Anomalies » dans
* les Items du monde et y importe tous les items du compendium anomalies.
*/
async function _setupAnomaliesFolder() {
if (game.settings.get(SYSTEM_ID, "anomaliesImported")) return
const pack = game.packs.get(`${SYSTEM_ID}.anomalies`)
if (!pack) {
console.warn(`${SYSTEM_ID} | Compendium anomalies introuvable`)
return
}
console.log(`${SYSTEM_ID} | Premier lancement : import des anomalies dans le monde`)
// Créer le dossier « Anomalies » dans les Items
const folder = await Folder.create({
name: "Anomalies",
type: "Item",
color: "#1b3828",
})
// Importer tous les items du compendium dans ce dossier
await pack.importAll({ folderId: folder.id, keepId: true })
await game.settings.set(SYSTEM_ID, "anomaliesImported", true)
console.log(`${SYSTEM_ID} | Anomalies importées avec succès dans le dossier "${folder.name}"`)
ui.notifications.info("Célestopol 1922 | Anomalies importées dans le dossier Items.")
}
/* ─── Nom par défaut des items à la création ─────────────────────────────── */ /* ─── Nom par défaut des items à la création ─────────────────────────────── */
Hooks.on("preCreateItem", (item, data) => { Hooks.on("preCreateItem", (item, data) => {