[#35] Use different ID attributes for sidebar documents depending on foundry version.

This commit is contained in:
fyorl 2021-12-13 17:14:53 +00:00
parent e966775723
commit 84562bd9c2
No known key found for this signature in database
GPG key ID: 3A4E57DAE36AC3C4
3 changed files with 15 additions and 12 deletions

View file

@ -532,7 +532,7 @@ export class EntitySheetHelper {
}
// Render the document creation form
const useEntity = foundry.utils.isNewerVersion("9", game.version ?? game.data.version);
const useEntity = game.worldbuilding.useEntity;
const template = `templates/sidebar/${useEntity ? "entity" : "document" }-create.html`;
const html = await renderTemplate(template, {
name: data.name || game.i18n.format("DOCUMENT.New", {type: label}),

View file

@ -32,7 +32,8 @@ Hooks.once("init", async function() {
game.worldbuilding = {
SimpleActor,
createWorldbuildingMacro
createWorldbuildingMacro,
useEntity: foundry.utils.isNewerVersion("9", game.version ?? game.data.version)
};
// Define custom Document classes
@ -104,16 +105,17 @@ Hooks.on("hotbarDrop", (bar, data, slot) => createWorldbuildingMacro(data, slot)
* Adds the actor template context menu.
*/
Hooks.on("getActorDirectoryEntryContext", (html, options) => {
const idAttr = game.worldbuilding.useEntity ? "entityId" : "documentId";
// Define an actor as a template.
options.push({
name: game.i18n.localize("SIMPLE.DefineTemplate"),
icon: '<i class="fas fa-stamp"></i>',
condition: li => {
const actor = game.actors.get(li.data("documentId"));
const actor = game.actors.get(li.data(idAttr));
return !actor.getFlag("worldbuilding", "isTemplate");
},
callback: li => {
const actor = game.actors.get(li.data("documentId"));
const actor = game.actors.get(li.data(idAttr));
actor.setFlag("worldbuilding", "isTemplate", true);
}
});
@ -123,11 +125,11 @@ Hooks.on("getActorDirectoryEntryContext", (html, options) => {
name: game.i18n.localize("SIMPLE.UnsetTemplate"),
icon: '<i class="fas fa-times"></i>',
condition: li => {
const actor = game.actors.get(li.data("documentId"));
const actor = game.actors.get(li.data(idAttr));
return actor.getFlag("worldbuilding", "isTemplate");
},
callback: li => {
const actor = game.actors.get(li.data("documentId"));
const actor = game.actors.get(li.data(idAttr));
actor.setFlag("worldbuilding", "isTemplate", false);
}
});
@ -137,16 +139,17 @@ Hooks.on("getActorDirectoryEntryContext", (html, options) => {
* Adds the item template context menu.
*/
Hooks.on("getItemDirectoryEntryContext", (html, options) => {
const idAttr = game.worldbuilding.useEntity ? "entityId" : "documentId";
// Define an item as a template.
options.push({
name: game.i18n.localize("SIMPLE.DefineTemplate"),
icon: '<i class="fas fa-stamp"></i>',
condition: li => {
const item = game.items.get(li.data("documentId"));
const item = game.items.get(li.data(idAttr));
return !item.getFlag("worldbuilding", "isTemplate");
},
callback: li => {
const item = game.items.get(li.data("documentId"));
const item = game.items.get(li.data(idAttr));
item.setFlag("worldbuilding", "isTemplate", true);
}
});
@ -156,11 +159,11 @@ Hooks.on("getItemDirectoryEntryContext", (html, options) => {
name: game.i18n.localize("SIMPLE.UnsetTemplate"),
icon: '<i class="fas fa-times"></i>',
condition: li => {
const item = game.items.get(li.data("documentId"));
const item = game.items.get(li.data(idAttr));
return item.getFlag("worldbuilding", "isTemplate");
},
callback: li => {
const item = game.items.get(li.data("documentId"));
const item = game.items.get(li.data(idAttr));
item.setFlag("worldbuilding", "isTemplate", false);
}
});

View file

@ -2,7 +2,7 @@
"name": "worldbuilding",
"title": "Simple World-Building",
"description": "A minimalist game system which provides configurable Actor and Item templates to support free-form system agnostic game-play.",
"version": "0.6.0",
"version": "0.6.1",
"minimumCoreVersion": "0.8.9",
"compatibleCoreVersion": "9",
"author": "Atropos",
@ -22,6 +22,6 @@
"secondaryTokenAttribute": "power",
"url": "https://gitlab.com/foundrynet/worldbuilding/",
"manifest": "https://gitlab.com/foundrynet/worldbuilding/raw/0.6.x/system.json",
"download": "https://gitlab.com/foundrynet/worldbuilding/-/archive/release-060/worldbuilding-release-060.zip",
"download": "https://gitlab.com/foundrynet/worldbuilding/-/archive/release-061/worldbuilding-release-061.zip",
"license": "LICENSE.txt"
}