Files
fvtt-les-oublies/modules/les-oublies-main.js
T
uberwald 552731bc3b
Release Creation / build (release) Successful in 3m58s
Divers petits fixs
2026-05-04 20:39:43 +02:00

92 lines
3.9 KiB
JavaScript

import { LESOUBLIES_CONFIG } from "./les-oublies-config.js"
import { LesOubliesUtility } from "./les-oublies-utility.js"
import { LesOubliesActor } from "./les-oublies-actor.js"
import { LesOubliesItem } from "./les-oublies-item.js"
import { LesOubliesRolls } from "./les-oublies-rolls.js"
import * as models from "./models/index.mjs"
import * as sheets from "./applications/sheets/_module.mjs"
const DEFAULT_PERSONNAGE_TOKEN_TEXTURE = "systems/fvtt-les-oublies/assets/tokens/border_token_oublies.webp"
function ensureSystemStyles() {
const href = `systems/${game.system.id}/css/les-oublies.css`
const existingLink = document.querySelector(`link[href$="${href}"]`)
if (existingLink) return
const link = document.createElement("link")
link.rel = "stylesheet"
link.type = "text/css"
link.href = href
link.dataset.systemStyle = game.system.id
document.head.append(link)
}
function usesFoundryDefaultTokenTexture(actor, data) {
const tokenTexture = foundry.utils.getProperty(data, "prototypeToken.texture.src")
?? foundry.utils.getProperty(actor, "prototypeToken.texture.src")
?? ""
return !tokenTexture || tokenTexture === CONST.DEFAULT_TOKEN || tokenTexture === "icons/svg/mystery-man.svg"
}
Hooks.once("init", function () {
console.info("Les Oubliés | Initialisation du système")
ensureSystemStyles()
CONFIG.Actor.documentClass = LesOubliesActor
CONFIG.Actor.dataModels = {
personnage: models.PersonnageDataModel,
compagnie: models.CompagnieDataModel,
creature: models.CreatureDataModel,
}
CONFIG.Item.documentClass = LesOubliesItem
CONFIG.Item.dataModels = {
race: models.RaceDataModel,
tribu: models.TribuDataModel,
metier: models.MetierDataModel,
competence: models.CompetenceDataModel,
sortilege: models.SortilegeDataModel,
arme: models.ArmeDataModel,
armure: models.ArmureDataModel,
equipement: models.EquipementDataModel,
pouvoircompagnie: models.PouvoirCompagnieDataModel,
}
CONFIG.LESOUBLIES = LESOUBLIES_CONFIG
game.system.lesOublies = {
config: LESOUBLIES_CONFIG,
models,
sheets,
rolls: LesOubliesRolls,
utility: LesOubliesUtility,
}
foundry.documents.collections.Actors.registerSheet("fvtt-les-oublies", sheets.LesOubliesPersonnageSheet, { types: ["personnage"], makeDefault: true })
foundry.documents.collections.Actors.registerSheet("fvtt-les-oublies", sheets.LesOubliesCompagnieSheet, { types: ["compagnie"], makeDefault: true })
foundry.documents.collections.Actors.registerSheet("fvtt-les-oublies", sheets.LesOubliesCreatureSheet, { types: ["creature"], makeDefault: true })
foundry.documents.collections.Items.registerSheet("fvtt-les-oublies", sheets.LesOubliesReferenceItemSheet, { types: ["race", "tribu", "metier"], makeDefault: true })
foundry.documents.collections.Items.registerSheet("fvtt-les-oublies", sheets.LesOubliesCompetenceSheet, { types: ["competence"], makeDefault: true })
foundry.documents.collections.Items.registerSheet("fvtt-les-oublies", sheets.LesOubliesSortilegeSheet, { types: ["sortilege"], makeDefault: true })
foundry.documents.collections.Items.registerSheet("fvtt-les-oublies", sheets.LesOubliesArmeSheet, { types: ["arme"], makeDefault: true })
foundry.documents.collections.Items.registerSheet("fvtt-les-oublies", sheets.LesOubliesArmureSheet, { types: ["armure"], makeDefault: true })
foundry.documents.collections.Items.registerSheet("fvtt-les-oublies", sheets.LesOubliesEquipementSheet, { types: ["equipement"], makeDefault: true })
foundry.documents.collections.Items.registerSheet("fvtt-les-oublies", sheets.LesOubliesPouvoirCompagnieSheet, { types: ["pouvoircompagnie"], makeDefault: true })
LesOubliesUtility.registerHandlebarsHelpers()
})
Hooks.on("preCreateActor", function (actor, data) {
if (actor.type !== "personnage") return
if (!usesFoundryDefaultTokenTexture(actor, data)) return
actor.updateSource({
prototypeToken: {
texture: {
src: DEFAULT_PERSONNAGE_TOKEN_TEXTURE,
},
},
})
})