|
|
- import { CharacterSheetContext, getSetting, ModuleSetting, QuickInsert, setSetting } from './quick-insert.js';
- import './vendor.js';
-
- // Savage Worlds Adventure Edition integration
- const SYSTEM_NAME = "swade";
- const defaultSheetFilters = {
- skill: "swade.skills",
- hindrance: "swade.hindrances",
- edge: "swade.edges",
- ability: "",
- weapon: "",
- armor: "",
- shield: "",
- gear: "",
- "character.choice": "",
- "vehicle.choice": "",
- mod: "",
- "vehicle-weapon": "",
- };
- class SwadeSheetContext extends CharacterSheetContext {
- constructor(documentSheet, anchor, sheetType, insertType, equipped) {
- super(documentSheet, anchor);
- this.equipped = false;
- this.equipped = Boolean(equipped);
- if (sheetType && insertType) {
- const sheetFilters = getSetting(ModuleSetting.FILTERS_SHEETS).baseFilters;
- this.filter =
- sheetFilters[`${sheetType}.${insertType}`] || sheetFilters[insertType];
- }
- }
- onSubmit(item) {
- const res = super.onSubmit(item);
- if (this.equipped && res) {
- res.then((items) => {
- const item = items.length && items[0];
- if (!item)
- return;
- //@ts-ignore
- if (item?.data?.equippable) {
- item.update({ "data.equipped": true });
- }
- });
- }
- return res;
- }
- }
- function sheetSwadeRenderHook(app, sheetType) {
- if (app.element.find(".quick-insert-link").length > 0) {
- return;
- }
- // Legacy sheets
- const link = `<a class="quick-insert-link" title="Quick Insert"><i class="fas fa-search"></i></a>`;
- app.element.find("a.item-create").each((i, el) => {
- const type = el.dataset.type || "";
- const equipped = el.dataset.equipped === "true";
- const linkEl = $(link);
- $(el).after(linkEl);
- linkEl.on("click", () => {
- const context = new SwadeSheetContext(app, linkEl, sheetType, type, equipped);
- QuickInsert.open(context);
- });
- });
- // New character sheet
- app.element.find("button.item-create").each((i, el) => {
- const type = el.dataset.type || "";
- const linkEl = $(link);
- $(el).after(linkEl);
- linkEl.on("click", () => {
- const context = new SwadeSheetContext(app, linkEl, sheetType, type);
- QuickInsert.open(context);
- });
- });
- }
- function init() {
- if (game.user?.isGM) {
- const customFilters = getSetting(ModuleSetting.FILTERS_SHEETS).baseFilters;
- setSetting(ModuleSetting.FILTERS_SHEETS, {
- baseFilters: {
- ...defaultSheetFilters,
- ...customFilters,
- },
- });
- }
- Hooks.on("renderCharacterSheet", (app) => {
- getSetting(ModuleSetting.FILTERS_SHEETS_ENABLED) &&
- sheetSwadeRenderHook(app, "character");
- });
- Hooks.on("renderSwadeNPCSheet", (app) => {
- getSetting(ModuleSetting.FILTERS_SHEETS_ENABLED) &&
- sheetSwadeRenderHook(app, "npc");
- });
- Hooks.on("renderSwadeVehicleSheet", (app) => {
- getSetting(ModuleSetting.FILTERS_SHEETS_ENABLED) &&
- sheetSwadeRenderHook(app, "vehicle");
- });
- console.log("Quick Insert | swade system extensions initiated");
- }
-
- export { SYSTEM_NAME, SwadeSheetContext, defaultSheetFilters, init, sheetSwadeRenderHook };
- //# sourceMappingURL=swade.js.map
|