Fix apv2, WIP
This commit is contained in:
+124
-48
@@ -3,19 +3,17 @@ import { registerSettings } from "./system/settings.mjs";
|
||||
import { GroupLink } from "./system/group-link.mjs";
|
||||
|
||||
// Import document classes.
|
||||
import { VermineActor } from "./documents/actor.mjs";
|
||||
|
||||
import { VermineCharacterSheet } from "./sheets/character-sheet.mjs";
|
||||
import { VermineNpcSheet } from "./sheets/npc-sheet.mjs";
|
||||
import { VermineGroupSheet } from "./sheets/npc-group.mjs";
|
||||
import { VermineCreatureSheet } from "./sheets/creature-sheet.mjs";
|
||||
|
||||
import { VermineItem } from "./documents/item.mjs";
|
||||
import { VermineItemSheet } from "./sheets/item-sheet.mjs";
|
||||
import * as documents from "./documents/_module.mjs";
|
||||
|
||||
import { VermineUtils } from "./system/roll.mjs";
|
||||
import { VermineCombat, VermineCombatant, VermineCombatTracker } from "./system/fight.mjs";
|
||||
|
||||
// Import DataModels
|
||||
import * as models from "./models/_module.mjs"
|
||||
|
||||
// Import ApplicationV2 sheets
|
||||
import * as sheets from "./applications/sheets/_module.mjs"
|
||||
|
||||
// Import helper/utility classes and constants.
|
||||
import { preloadHandlebarsTemplates, registerHandlebarsHelpers } from "./system/handlebars-manager.mjs";
|
||||
import { VERMINE } from "./system/config.mjs";
|
||||
@@ -26,51 +24,109 @@ import { VERMINE } from "./system/config.mjs";
|
||||
|
||||
Hooks.once('init', async function () {
|
||||
|
||||
// System stylesheet is automatically loaded by Foundry from system.json
|
||||
// No need to manually inject it - this was causing MIME type issues
|
||||
// If you need to ensure fresh CSS, use cache-busting in the filename or system.json version
|
||||
|
||||
// Register GroupLink hooks for automatic synchronization
|
||||
GroupLink.registerHooks();
|
||||
|
||||
// Register ALL DataModels FIRST - this is crucial for Foundry V2
|
||||
// Use individual assignments like Celestopol for compatibility
|
||||
CONFIG.Actor.dataModels.character = models.VermineCharacterData;
|
||||
CONFIG.Actor.dataModels.npc = models.VermineNpcData;
|
||||
CONFIG.Actor.dataModels.group = models.VermineGroupData;
|
||||
CONFIG.Actor.dataModels.creature = models.VermineCreatureData;
|
||||
|
||||
CONFIG.Item.dataModels.item = models.VermineItemData;
|
||||
CONFIG.Item.dataModels.weapon = models.VermineWeaponData;
|
||||
CONFIG.Item.dataModels.defense = models.VermineDefenseData;
|
||||
CONFIG.Item.dataModels.vehicle = models.VermineVehicleData;
|
||||
CONFIG.Item.dataModels.ability = models.VermineAbilityData;
|
||||
CONFIG.Item.dataModels.specialty = models.VermineSpecialtyData;
|
||||
CONFIG.Item.dataModels.background = models.VermineBackgroundData;
|
||||
CONFIG.Item.dataModels.trauma = models.VermineTraumaData;
|
||||
CONFIG.Item.dataModels.evolution = models.VermineEvolutionData;
|
||||
CONFIG.Item.dataModels.rumor = models.VermineRumorData;
|
||||
CONFIG.Item.dataModels.target = models.VermineTargetData;
|
||||
CONFIG.Item.dataModels.rite = models.VermineRiteData;
|
||||
|
||||
// Define custom Document classes AFTER ALL DataModels are registered
|
||||
CONFIG.Actor.documentClass = documents.VermineActor;
|
||||
CONFIG.Item.documentClass = documents.VermineItem;
|
||||
|
||||
// Add utility classes to the global game object so that they're more easily
|
||||
// accessible in global contexts.
|
||||
// Note: Do NOT expose Document classes here as it can cause issues with DataModel initialization
|
||||
game.vermine2047 = {
|
||||
VermineActor,
|
||||
VermineItem,
|
||||
VermineUtils,
|
||||
VermineCombat,
|
||||
GroupLink
|
||||
};
|
||||
|
||||
// Register GroupLink hooks for automatic synchronization
|
||||
GroupLink.registerHooks();
|
||||
|
||||
// Define custom Document classes
|
||||
CONFIG.Actor.documentClass = VermineActor;
|
||||
CONFIG.Item.documentClass = VermineItem;
|
||||
|
||||
CONFIG.ui.combat = VermineCombatTracker;
|
||||
CONFIG.Combatant.documentClass = VermineCombatant;
|
||||
CONFIG.Combat.documentClass = VermineCombat;
|
||||
|
||||
|
||||
// Register sheet application classes
|
||||
Actors.unregisterSheet("core", ActorSheet);
|
||||
Actors.registerSheet('vermine2047', VermineCharacterSheet, {
|
||||
types: ['character'],
|
||||
makeDefault: true,
|
||||
});
|
||||
// Register sheet application classes (ApplicationV2)
|
||||
// Unregister core sheets
|
||||
foundry.applications.sheets.ActorSheetV2?.unregisterSheet?.("core", "Actor", {
|
||||
types: ["character", "npc", "group", "creature"]
|
||||
})
|
||||
foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1?.sheets?.ItemSheet)
|
||||
|
||||
Actors.registerSheet('vermine2047', VermineNpcSheet, {
|
||||
types: ['npc'],
|
||||
makeDefault: true,
|
||||
});
|
||||
// Actor sheets
|
||||
foundry.documents.collections.Actors.registerSheet("vermine2047", sheets.VermineCharacterSheetV2, {
|
||||
types: ["character"], makeDefault: true, label: "VERMINE.Sheet.character"
|
||||
})
|
||||
foundry.documents.collections.Actors.registerSheet("vermine2047", sheets.VermineNpcSheetV2, {
|
||||
types: ["npc"], makeDefault: true, label: "VERMINE.Sheet.npc"
|
||||
})
|
||||
foundry.documents.collections.Actors.registerSheet("vermine2047", sheets.VermineCreatureSheetV2, {
|
||||
types: ["creature"], makeDefault: true, label: "VERMINE.Sheet.creature"
|
||||
})
|
||||
foundry.documents.collections.Actors.registerSheet("vermine2047", sheets.VermineGroupSheetV2, {
|
||||
types: ["group"], makeDefault: true, label: "VERMINE.Sheet.group"
|
||||
})
|
||||
|
||||
Actors.registerSheet('vermine2047', VermineCreatureSheet, {
|
||||
types: ['creature'],
|
||||
makeDefault: true,
|
||||
});
|
||||
|
||||
Actors.registerSheet('vermine2047', VermineGroupSheet, {
|
||||
types: ['group'],
|
||||
makeDefault: true,
|
||||
});
|
||||
Items.unregisterSheet("core", ItemSheet);
|
||||
Items.registerSheet("vermine2047", VermineItemSheet, { makeDefault: true });
|
||||
// Item sheets — un par type
|
||||
foundry.documents.collections.Items.registerSheet("vermine2047", sheets.VermineItemSheetV2, {
|
||||
types: ["item"], makeDefault: true
|
||||
})
|
||||
foundry.documents.collections.Items.registerSheet("vermine2047", sheets.VermineWeaponSheetV2, {
|
||||
types: ["weapon"], makeDefault: true
|
||||
})
|
||||
foundry.documents.collections.Items.registerSheet("vermine2047", sheets.VermineDefenseSheetV2, {
|
||||
types: ["defense"], makeDefault: true
|
||||
})
|
||||
foundry.documents.collections.Items.registerSheet("vermine2047", sheets.VermineVehicleSheetV2, {
|
||||
types: ["vehicle"], makeDefault: true
|
||||
})
|
||||
foundry.documents.collections.Items.registerSheet("vermine2047", sheets.VermineAbilitySheetV2, {
|
||||
types: ["ability"], makeDefault: true
|
||||
})
|
||||
foundry.documents.collections.Items.registerSheet("vermine2047", sheets.VermineSpecialtySheetV2, {
|
||||
types: ["specialty"], makeDefault: true
|
||||
})
|
||||
foundry.documents.collections.Items.registerSheet("vermine2047", sheets.VermineBackgroundSheetV2, {
|
||||
types: ["background"], makeDefault: true
|
||||
})
|
||||
foundry.documents.collections.Items.registerSheet("vermine2047", sheets.VermineTraumaSheetV2, {
|
||||
types: ["trauma"], makeDefault: true
|
||||
})
|
||||
foundry.documents.collections.Items.registerSheet("vermine2047", sheets.VermineEvolutionSheetV2, {
|
||||
types: ["evolution"], makeDefault: true
|
||||
})
|
||||
foundry.documents.collections.Items.registerSheet("vermine2047", sheets.VermineRumorSheetV2, {
|
||||
types: ["rumor"], makeDefault: true
|
||||
})
|
||||
foundry.documents.collections.Items.registerSheet("vermine2047", sheets.VermineTargetSheetV2, {
|
||||
types: ["target"], makeDefault: true
|
||||
})
|
||||
foundry.documents.collections.Items.registerSheet("vermine2047", sheets.VermineRiteSheetV2, {
|
||||
types: ["rite"], makeDefault: true
|
||||
})
|
||||
|
||||
registerHandlebarsHelpers(); // Register Handlebars helpers
|
||||
registerHooks(); // register Hooks
|
||||
@@ -79,13 +135,8 @@ Hooks.once('init', async function () {
|
||||
// Add custom constants for configuration.
|
||||
CONFIG.VERMINE = VERMINE;
|
||||
|
||||
// Set up model templates - must be done after system templates are loaded
|
||||
if (game.system?.template?.Actor && game.system?.template?.Item) {
|
||||
CONFIG.VERMINE.model = {
|
||||
Actor: game.system.template.Actor,
|
||||
Item: game.system.template.Item
|
||||
};
|
||||
}
|
||||
// Les DataModels sont déjà enregistrés dans CONFIG.Actor.dataModels et
|
||||
// CONFIG.Item.dataModels. On expose leurs définitions pour compatibilité.
|
||||
|
||||
/**
|
||||
* Set an initiative formula for the system
|
||||
@@ -116,8 +167,33 @@ Hooks.once('init', async function () {
|
||||
document.querySelector('#ui-left').prepend(el);
|
||||
|
||||
|
||||
// Preload Handlebars templates.
|
||||
return preloadHandlebarsTemplates();
|
||||
// Preload templates (ApplicationV2 + legacy)
|
||||
await preloadHandlebarsTemplates();
|
||||
await foundry.applications.handlebars.loadTemplates([
|
||||
"systems/vermine2047/templates/actor/appv2/character-header.hbs",
|
||||
"systems/vermine2047/templates/actor/appv2/character-main.hbs",
|
||||
"systems/vermine2047/templates/actor/appv2/character-abilities.hbs",
|
||||
"systems/vermine2047/templates/actor/appv2/character-totem.hbs",
|
||||
"systems/vermine2047/templates/actor/appv2/character-equipment.hbs",
|
||||
"systems/vermine2047/templates/actor/appv2/character-stories.hbs",
|
||||
"systems/vermine2047/templates/actor/appv2/character-combat.hbs",
|
||||
"systems/vermine2047/templates/actor/appv2/npc-main.hbs",
|
||||
"systems/vermine2047/templates/actor/appv2/npc-characteristics.hbs",
|
||||
"systems/vermine2047/templates/actor/appv2/npc-skills.hbs",
|
||||
"systems/vermine2047/templates/actor/appv2/npc-threat.hbs",
|
||||
"systems/vermine2047/templates/actor/appv2/npc-combat.hbs",
|
||||
"systems/vermine2047/templates/actor/appv2/npc-notes.hbs",
|
||||
"systems/vermine2047/templates/actor/appv2/group-main.hbs",
|
||||
"systems/vermine2047/templates/actor/appv2/group-info.hbs",
|
||||
"systems/vermine2047/templates/actor/appv2/group-gear.hbs",
|
||||
"systems/vermine2047/templates/actor/appv2/group-road.hbs",
|
||||
"systems/vermine2047/templates/actor/appv2/group-reserve.hbs",
|
||||
"systems/vermine2047/templates/actor/appv2/creature-main.hbs",
|
||||
"systems/vermine2047/templates/actor/appv2/creature-info.hbs",
|
||||
"systems/vermine2047/templates/actor/appv2/creature-stats.hbs",
|
||||
"systems/vermine2047/templates/actor/appv2/creature-combat.hbs",
|
||||
"systems/vermine2047/templates/actor/appv2/creature-effects.hbs"
|
||||
]);
|
||||
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user