Hooks.once("init", async function () {
|
|
game.settings.register(AECONSTS.MN, "companions", {
|
|
name: "",
|
|
hint: "",
|
|
scope: "client",
|
|
config: false,
|
|
type: Array,
|
|
default: [],
|
|
});
|
|
game.settings.register(AECONSTS.MN, "customautospells", {
|
|
name: "",
|
|
hint: "",
|
|
scope: "world",
|
|
config: false,
|
|
type: Object,
|
|
default: {},
|
|
onChange: (obj) => {
|
|
game.automatedevocations[game.system.id] = deepClone(game.automatedevocations.originalBindings);
|
|
game.automatedevocations[game.system.id] = mergeObject(game.automatedevocations[game.system.id],game.settings.get(AECONSTS.MN, "customautospells"))
|
|
},
|
|
});
|
|
game.settings.register(AECONSTS.MN, "customanimations", {
|
|
name: "",
|
|
hint: "",
|
|
scope: "world",
|
|
config: false,
|
|
type: Object,
|
|
default: {},
|
|
});
|
|
|
|
if(game.system.id === "dnd5e") {
|
|
|
|
game.settings.registerMenu(AECONSTS.MN, "configBindings", {
|
|
name: game.i18n.localize("AE.custombindings.sett.name"),
|
|
label: game.i18n.localize("AE.custombindings.sett.label"),
|
|
hint: game.i18n.localize("AE.custombindings.sett.hint"),
|
|
icon: "fas fa-cogs",
|
|
scope: "world",
|
|
restricted: true,
|
|
type: AutomatedEvocationsCustomBindings,
|
|
});
|
|
|
|
};
|
|
|
|
game.settings.register(AECONSTS.MN, "autoclose", {
|
|
name: game.i18n.localize(`AE.settings.autoclose.title`),
|
|
hint: game.i18n.localize(`AE.settings.autoclose.hint`),
|
|
scope: "world",
|
|
config: true,
|
|
type: Boolean,
|
|
default: false,
|
|
});
|
|
game.settings.register(AECONSTS.MN, "enableautomations", {
|
|
name: game.i18n.localize(`AE.settings.enableautomations.title`),
|
|
hint: game.i18n.localize(`AE.settings.enableautomations.hint`),
|
|
scope: "world",
|
|
config: true,
|
|
type: Boolean,
|
|
default: true,
|
|
});
|
|
game.settings.register(AECONSTS.MN, "storeonactor", {
|
|
name: game.i18n.localize(`AE.settings.storeonactor.title`),
|
|
hint: game.i18n.localize(`AE.settings.storeonactor.hint`),
|
|
scope: "world",
|
|
config: true,
|
|
type: Boolean,
|
|
default: false,
|
|
});
|
|
game.settings.register(AECONSTS.MN, "hidebutton", {
|
|
name: game.i18n.localize(`AE.settings.hidebutton.title`),
|
|
hint: game.i18n.localize(`AE.settings.hidebutton.hint`),
|
|
scope: "world",
|
|
config: true,
|
|
type: Boolean,
|
|
default: false,
|
|
});
|
|
game.settings.register(AECONSTS.MN, "restrictOwned", {
|
|
name: game.i18n.localize(`AE.settings.restrictOwned.title`),
|
|
hint: game.i18n.localize(`AE.settings.restrictOwned.hint`),
|
|
scope: "world",
|
|
config: true,
|
|
type: Boolean,
|
|
default: false,
|
|
});
|
|
});
|
|
|
|
Hooks.once("ready", async function () {
|
|
AECONSTS.animationFunctions = mergeObject(
|
|
AECONSTS.animationFunctions,
|
|
game.settings.get(AECONSTS.MN, "customanimations")
|
|
);
|
|
console.log("Automated Evocations: Animation Functions Loaded - ",AECONSTS.animationFunctions);
|
|
let sortedAnims = Object.keys(AECONSTS.animationFunctions).sort();
|
|
for (let k of sortedAnims) {
|
|
const group = AECONSTS.animationFunctions[k].group || "z-none";
|
|
AECONSTS.animations[group] = AECONSTS.animations[group] || [];
|
|
AECONSTS.animations[group].push({
|
|
name:
|
|
AECONSTS.animationFunctions[k]?.name ||
|
|
game.i18n.localize(`AE.animations.${k}`),
|
|
key: k,
|
|
});
|
|
}
|
|
AECONSTS.animations = Object.keys(AECONSTS.animations).sort().reduce(
|
|
(obj, key) => {
|
|
obj[key] = AECONSTS.animations[key];
|
|
return obj;
|
|
},
|
|
{}
|
|
);
|
|
//new CompanionManager().render(true)
|
|
});
|
|
|
|
Hooks.on("getActorSheetHeaderButtons", (app, buttons) => {
|
|
if(game.settings.get(AECONSTS.MN, "hidebutton")) return;
|
|
buttons.unshift({
|
|
icon: "fas fa-users",
|
|
class: "open-cm",
|
|
label: game.i18n.localize("AE.actorSheetBtn"),
|
|
onclick: function openCM(event) {
|
|
const actor = app.object;
|
|
new CompanionManager(actor).render(true);
|
|
},
|
|
});
|
|
});
|