720 lines
26 KiB
JavaScript
720 lines
26 KiB
JavaScript
import * as MODULE from "../MaterialDeck.js";
|
|
import {streamDeck} from "../MaterialDeck.js";
|
|
|
|
export class OtherControls{
|
|
constructor(){
|
|
this.active = false;
|
|
this.offset = 0;
|
|
}
|
|
|
|
async updateAll(){
|
|
if (this.active == false) return;
|
|
for (let i=0; i<32; i++){
|
|
let data = streamDeck.buttonContext[i];
|
|
if (data == undefined || data.action != 'other') continue;
|
|
await this.update(data.settings,data.context);
|
|
}
|
|
}
|
|
|
|
update(settings,context){
|
|
this.active = true;
|
|
let mode = settings.otherMode;
|
|
if (mode == undefined) mode = 0;
|
|
|
|
if (mode == 0) { //pause
|
|
this.updatePause(settings.pauseFunction,context);
|
|
}
|
|
else if (mode == 1) { //scene selection
|
|
this.updateScene(settings,context);
|
|
}
|
|
else if (mode == 2){ //control buttons
|
|
this.updateControl(settings,context);
|
|
}
|
|
else if (mode == 3){ //darkness
|
|
this.updateDarkness(settings,context);
|
|
}
|
|
else if (mode == 4){ //roll tables
|
|
this.updateRollTable(settings,context);
|
|
}
|
|
else if (mode == 5) { //open sidebar tab
|
|
this.updateSidebar(settings,context);
|
|
}
|
|
else if (mode == 6) { //open compendium
|
|
this.updateCompendium(settings,context);
|
|
}
|
|
else if (mode == 7) { //open journal
|
|
this.updateJournal(settings,context);
|
|
}
|
|
}
|
|
|
|
keyPress(settings){
|
|
let mode = settings.otherMode;
|
|
if (mode == undefined) mode = 0;
|
|
|
|
if (mode == 0) { //pause
|
|
this.keyPressPause(settings.pauseFunction);
|
|
}
|
|
else if (mode == 1) { //scene
|
|
this.keyPressScene(settings);
|
|
}
|
|
else if (mode == 2) { //control buttons
|
|
this.keyPressControl(settings);
|
|
}
|
|
else if (mode == 3) { //darkness controll
|
|
this.keyPressDarkness(settings);
|
|
}
|
|
else if (mode == 4) { //roll tables
|
|
this.keyPressRollTable(settings);
|
|
}
|
|
else if (mode == 5) { //sidebar
|
|
this.keyPressSidebar(settings);
|
|
}
|
|
else if (mode == 6) { //open compendium
|
|
this.keyPressCompendium(settings);
|
|
}
|
|
else if (mode == 7) { //open journal
|
|
this.keyPressJournal(settings);
|
|
}
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
updatePause(pauseFunction,context){
|
|
let src = "";
|
|
if (pauseFunction == undefined) pauseFunction = 0;
|
|
|
|
let background = settings.background;
|
|
if(background == undefined) background = '#000000';
|
|
|
|
let ringColor = "#000000";
|
|
|
|
let ringOffColor = settings.offRing;
|
|
if (ringOffColor == undefined) ringOffColor = '#000000';
|
|
|
|
let ringOnColor = settings.onRing;
|
|
if (ringOnColor == undefined) ringOnColor = '#00FF00';
|
|
|
|
let playlistType = settings.playlistType;
|
|
if (playlistType == undefined) playlistType = 0;
|
|
|
|
if (pauseFunction == 0){ //Pause game
|
|
if (game.paused) ringColor = ringOnColor;
|
|
else ringColor = ringOffColor;
|
|
src = 'action/images/other/pause/pause.png';
|
|
}
|
|
else if (pauseFunction == 1){ //Resume game
|
|
if (game.paused == false) ringColor = ringOnColor;
|
|
else ringColor = ringOffColor;
|
|
src = 'action/images/other/pause/resume.png';
|
|
}
|
|
else if (pauseFunction == 2) { //toggle
|
|
if (game.paused == false) ringColor = ringOnColor;
|
|
else ringColor = ringOffColor;
|
|
src = 'action/images/other/pause/playpause.png';
|
|
}
|
|
streamDeck.setIcon(0,context,src,background,2,ringColor);
|
|
}
|
|
|
|
keyPressPause(pauseFunction){
|
|
if (pauseFunction == undefined) pauseFunction = 0;
|
|
if (pauseFunction == 0){ //Pause game
|
|
if (game.paused) return;
|
|
game.togglePause();
|
|
}
|
|
else if (pauseFunction == 1){ //Resume game
|
|
if (game.paused == false) return;
|
|
game.togglePause();
|
|
}
|
|
else if (pauseFunction == 2) { //toggle
|
|
game.togglePause();
|
|
}
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
updateScene(settings,context){
|
|
if (canvas.scene == null) return;
|
|
let func = settings.sceneFunction;
|
|
if (func == undefined) func = 0;
|
|
|
|
let background = settings.background;
|
|
if(background == undefined) background = '#000000';
|
|
|
|
let ringColor = "#000000";
|
|
|
|
let ringOffColor = settings.offRing;
|
|
if (ringOffColor == undefined) ringOffColor = '#000000';
|
|
|
|
let ringOnColor = settings.onRing;
|
|
if (ringOnColor == undefined) ringOnColor = '#00FF00';
|
|
|
|
let playlistType = settings.playlistType;
|
|
if (playlistType == undefined) playlistType = 0;
|
|
|
|
let src = "";
|
|
let name = "";
|
|
if (func == 0){ //visible scenes
|
|
let nr = parseInt(settings.sceneNr);
|
|
if (isNaN(nr)) nr = 1;
|
|
nr--;
|
|
|
|
let scene = game.scenes.apps[0].scenes[nr];
|
|
|
|
if (scene != undefined){
|
|
if (scene.isView)
|
|
ringColor = ringOnColor;
|
|
else
|
|
ringColor = ringOffColor;
|
|
if (settings.displaySceneName) name = scene.name;
|
|
if (settings.displaySceneIcon) src = scene.img;
|
|
if (scene.active) name += "\n(Active)";
|
|
}
|
|
}
|
|
else if (func == 1) { //all scenes
|
|
let scene = game.scenes.apps[1].entities.find(p=>p.data.name == name);
|
|
if (scene != undefined){
|
|
if (scene.isView)
|
|
ringColor = ringOnColor;
|
|
else
|
|
ringColor = ringOffColor;
|
|
if (settings.displaySceneName) name = scene.name;
|
|
if (settings.displaySceneIcon) src = scene.img;
|
|
if (scene.active) name += "\n(Active)";
|
|
}
|
|
}
|
|
streamDeck.setTitle(name,context);
|
|
streamDeck.setIcon(1, context,src,background,2,ringColor);
|
|
}
|
|
|
|
keyPressScene(settings){
|
|
let func = settings.sceneFunction;
|
|
if (func == undefined) func = 0;
|
|
if (func == 0){ //visible scenes
|
|
let viewFunc = settings.sceneViewFunction;
|
|
if (viewFunc == undefined) viewFunc = 0;
|
|
|
|
let nr = parseInt(settings.sceneNr);
|
|
if (isNaN(nr)) nr = 1;
|
|
nr--;
|
|
let scene = game.scenes.apps[0].scenes[nr];
|
|
|
|
if (scene != undefined){
|
|
if (viewFunc == 0){
|
|
scene.view();
|
|
}
|
|
else if (viewFunc == 1){
|
|
scene.activate();
|
|
}
|
|
else {
|
|
if (scene.isView) scene.activate();
|
|
scene.view();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
updateControl(settings,context){
|
|
let control = settings.control;
|
|
if (control == undefined) control = 0;
|
|
|
|
let tool = settings.tool;
|
|
if (tool == undefined) tool = 0;
|
|
|
|
let background = settings.background;
|
|
if (background == undefined) background = '#000000';
|
|
|
|
let ringColor = '#000000'
|
|
|
|
const controlName = this.getControlName(control);
|
|
const toolName = this.getToolName(control,tool);
|
|
|
|
let txt = "";
|
|
let src = "";
|
|
const activeControl = ui.controls.activeControl;
|
|
const activeTool = ui.controls.activeTool;
|
|
|
|
if (control == 0) { //displayed controls
|
|
let controlNr = parseInt(settings.controlNr);
|
|
if (isNaN(controlNr)) controlNr = 1;
|
|
controlNr--;
|
|
|
|
const selectedControl = ui.controls.controls[controlNr];
|
|
if (selectedControl != undefined){
|
|
if (tool == 0){ //open category
|
|
txt = game.i18n.localize(selectedControl.title);
|
|
src = selectedControl.icon;
|
|
if (activeControl == selectedControl.name)
|
|
ringColor = "#FF7B00";
|
|
}
|
|
}
|
|
}
|
|
else if (control == 1){ //displayed tools
|
|
let controlNr = parseInt(settings.controlNr);
|
|
if (isNaN(controlNr)) controlNr = 1;
|
|
controlNr--;
|
|
|
|
const selectedControl = ui.controls.controls.find(c => c.name == ui.controls.activeControl);
|
|
if (selectedControl != undefined){
|
|
const selectedTool = selectedControl.tools[controlNr];
|
|
if (selectedTool != undefined){
|
|
txt = game.i18n.localize(selectedTool.title);
|
|
src = selectedTool.icon;
|
|
if (selectedTool.toggle){
|
|
background = "#340057"
|
|
if (selectedTool.active)
|
|
ringColor = "#A600FF"
|
|
else
|
|
ringColor = "#340057";
|
|
}
|
|
else if (activeTool == selectedTool.name)
|
|
ringColor = "#FF7B00";
|
|
}
|
|
}
|
|
}
|
|
else { // specific control/tool
|
|
const selectedControl = ui.controls.controls.find(c => c.name == controlName);
|
|
if (selectedControl != undefined){
|
|
if (tool == 0){ //open category
|
|
txt = game.i18n.localize(selectedControl.title);
|
|
src = selectedControl.icon;
|
|
if (activeControl == selectedControl.name)
|
|
ringColor = "#FF7B00";
|
|
}
|
|
else {
|
|
const selectedTool = selectedControl.tools.find(t => t.name == toolName);
|
|
if (selectedTool != undefined){
|
|
txt = game.i18n.localize(selectedTool.title);
|
|
src = selectedTool.icon;
|
|
if (selectedTool.toggle){
|
|
background = "#340057"
|
|
if (selectedTool.active)
|
|
ringColor = "#A600FF"
|
|
else
|
|
ringColor = "#340057"
|
|
}
|
|
else if (activeTool == selectedTool.name && activeControl == selectedControl.name)
|
|
ringColor = "#FF7B00";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
streamDeck.setIcon(1,context,src,background,2,ringColor);
|
|
streamDeck.setTitle(txt,context);
|
|
}
|
|
|
|
keyPressControl(settings){
|
|
if (canvas.scene == null) return;
|
|
let control = settings.control;
|
|
if (control == undefined) control = 0;
|
|
|
|
let tool = settings.tool;
|
|
if (tool == undefined) tool = 0;
|
|
|
|
const controlName = this.getControlName(control);
|
|
const toolName = this.getToolName(control,tool);
|
|
|
|
if (control == 0){ //displayed controls
|
|
let controlNr = parseInt(settings.controlNr);
|
|
if (isNaN(controlNr)) controlNr = 1;
|
|
controlNr--;
|
|
const selectedControl = ui.controls.controls[controlNr];
|
|
if (selectedControl != undefined){
|
|
ui.controls.activeControl = controlName;
|
|
selectedControl.activeTool = selectedControl.activeTool;
|
|
canvas.getLayer(selectedControl.layer).activate();
|
|
}
|
|
}
|
|
else if (control == 1){ //displayed tools
|
|
let controlNr = parseInt(settings.controlNr);
|
|
if (isNaN(controlNr)) controlNr = 1;
|
|
controlNr--;
|
|
const selectedControl = ui.controls.controls.find(c => c.name == ui.controls.activeControl);
|
|
if (selectedControl != undefined){
|
|
const selectedTool = selectedControl.tools[controlNr];
|
|
if (selectedTool != undefined){
|
|
if (selectedTool.toggle) {
|
|
selectedTool.active = !selectedTool.active;
|
|
selectedTool.onClick(selectedTool.active);
|
|
}
|
|
else if (selectedTool.button){
|
|
selectedTool.onClick();
|
|
}
|
|
else
|
|
selectedControl.activeTool = selectedTool.name;
|
|
}
|
|
}
|
|
}
|
|
else { //select control
|
|
const selectedControl = ui.controls.controls.find(c => c.name == controlName);
|
|
if (selectedControl != undefined){
|
|
if (tool == 0){ //open category
|
|
ui.controls.activeControl = controlName;
|
|
selectedControl.activeTool = selectedControl.activeTool;
|
|
canvas.getLayer(selectedControl.layer).activate();
|
|
}
|
|
else {
|
|
const selectedTool = selectedControl.tools.find(t => t.name == toolName);
|
|
if (selectedTool != undefined){
|
|
ui.controls.activeControl = controlName;
|
|
canvas.getLayer(selectedControl.layer).activate();
|
|
if (selectedTool.toggle) {
|
|
selectedTool.active = !selectedTool.active;
|
|
selectedTool.onClick(selectedTool.active);
|
|
}
|
|
else if (selectedTool.button){
|
|
selectedTool.onClick();
|
|
}
|
|
else
|
|
selectedControl.activeTool = toolName;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
ui.controls.render();
|
|
}
|
|
|
|
getControlName(control){
|
|
control -= 2;
|
|
let name;
|
|
if (control == 0) name = 'token';
|
|
else if (control == 1) name = 'measure';
|
|
else if (control == 2) name = 'tiles';
|
|
else if (control == 3) name = 'drawings';
|
|
else if (control == 4) name = 'walls';
|
|
else if (control == 5) name = 'lighting';
|
|
else if (control == 6) name = 'sounds';
|
|
else if (control == 7) name = 'notes';
|
|
return name;
|
|
}
|
|
|
|
getToolName(control,tool){
|
|
control -= 2;
|
|
tool--;
|
|
let name;
|
|
if (control == 0){ //basic controls
|
|
if (tool == 0) name = 'select';
|
|
else if (tool == 1) name = 'target';
|
|
else if (tool == 2) name = 'ruler';
|
|
}
|
|
else if (control == 1){ //measurement controls
|
|
if (tool == 0) name = 'circle';
|
|
else if (tool == 1) name = 'cone';
|
|
else if (tool == 2) name = 'rect';
|
|
else if (tool == 3) name = 'ray';
|
|
else if (tool == 4) name = 'clear';
|
|
}
|
|
else if (control == 2){ //tile controls
|
|
if (tool == 0) name = 'select';
|
|
else if (tool == 1) name = 'tile';
|
|
else if (tool == 2) name = 'browse';
|
|
}
|
|
else if (control == 3){ //drawing tools
|
|
if (tool == 0) name = 'select';
|
|
else if (tool == 1) name = 'rect';
|
|
else if (tool == 2) name = 'ellipse';
|
|
else if (tool == 3) name = 'polygon';
|
|
else if (tool == 4) name = 'freehand';
|
|
else if (tool == 5) name = 'text';
|
|
else if (tool == 6) name = 'configure';
|
|
else if (tool == 7) name = 'clear';
|
|
}
|
|
else if (control == 4){ //wall controls
|
|
if (tool == 0) name = 'select';
|
|
else if (tool == 1) name = 'walls';
|
|
else if (tool == 2) name = 'terrain';
|
|
else if (tool == 3) name = 'invisible';
|
|
else if (tool == 4) name = 'ethereal';
|
|
else if (tool == 5) name = 'doors';
|
|
else if (tool == 6) name = 'secret';
|
|
else if (tool == 7) name = 'clone';
|
|
else if (tool == 8) name = 'snap';
|
|
else if (tool == 9) name = 'clear';
|
|
}
|
|
else if (control == 5){ //lighting controls
|
|
if (tool == 0) name = 'light';
|
|
else if (tool == 1) name = 'day';
|
|
else if (tool == 2) name = 'night';
|
|
else if (tool == 3) name = 'reset';
|
|
else if (tool == 4) name = 'clear';
|
|
}
|
|
else if (control == 6){ //ambient sound controls
|
|
if (tool == 0) name = 'sound';
|
|
else if (tool == 1) name = 'clear';
|
|
}
|
|
else if (control == 7){ //journal notes
|
|
if (tool == 0) name = 'select';
|
|
else if (tool == 1) name = 'toggle';
|
|
else if (tool == 2) name = 'clear';
|
|
}
|
|
return name;
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
updateDarkness(settings,context){
|
|
let func = settings.darknessFunction;
|
|
if (func == undefined) func = 0;
|
|
|
|
let value = settings.darknessValue;
|
|
if (value == undefined) value = 0;
|
|
|
|
let background = settings.background;
|
|
if (background == undefined) background = "#000000";
|
|
|
|
let src = "";
|
|
let txt = "";
|
|
|
|
if (func == 0){ //value
|
|
src = 'action/images/other/darkness/darkness.png';
|
|
}
|
|
else if (func == 1){ //increase/decrease
|
|
if (value < 0) src = 'action/images/other/darkness/decreasedarkness.png';
|
|
else src = 'action/images/other/darkness/increasedarkness.png';
|
|
}
|
|
else if (func == 2){ //display darkness
|
|
src = 'action/images/other/darkness/darkness.png';
|
|
let darkness = '';
|
|
if (canvas.scene != null) darkness = Math.floor(canvas.scene.data.darkness*100)/100;
|
|
txt += darkness;
|
|
}
|
|
streamDeck.setTitle(txt,context);
|
|
streamDeck.setIcon(0, context,src,background);
|
|
}
|
|
|
|
keyPressDarkness(settings) {
|
|
if (canvas.scene == null) return;
|
|
let func = settings.darknessFunction;
|
|
if (func == undefined) func = 0;
|
|
|
|
let value = parseFloat(settings.darknessValue);
|
|
if (value == undefined) value = 0;
|
|
|
|
if (func == 0){ //value
|
|
canvas.scene.update({darkness: value});
|
|
}
|
|
else if (func == 1){ //increase/decrease
|
|
let darkness = canvas.scene.data.darkness;
|
|
darkness += -1*value;
|
|
if (darkness > 1) darkness = 1;
|
|
if (darkness < 0) darkness = 0;
|
|
canvas.scene.update({darkness: darkness});
|
|
}
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
updateRollTable(settings,context){
|
|
let name = settings.rollTableName;
|
|
if (name == undefined) return;
|
|
|
|
let background = settings.background;
|
|
if (background == undefined) background = "#000000";
|
|
|
|
let table = game.tables.entities.find(p=>p.name == name);
|
|
|
|
let txt = "";
|
|
let src = "";
|
|
|
|
if (table != undefined) {
|
|
if (settings.displayRollIcon) src = table.data.img;
|
|
if (settings.displayRollName) txt = table.name;
|
|
}
|
|
streamDeck.setTitle(txt,context);
|
|
streamDeck.setIcon(1, context,src,background);
|
|
}
|
|
|
|
keyPressRollTable(settings){
|
|
let func = settings.rolltableFunction;
|
|
if (func == undefined) func = 0;
|
|
|
|
let name = settings.rollTableName;
|
|
if (name == undefined) return;
|
|
|
|
let background = settings.background;
|
|
if (background == undefined) background = "#000000";
|
|
|
|
let table = game.tables.entities.find(p=>p.name == name);
|
|
|
|
if (table != undefined) {
|
|
if (func == 0){ //open
|
|
table.sheet.render(true);
|
|
}
|
|
else if (func == 1) {//Public roll
|
|
table.draw({rollMode:"roll"});
|
|
}
|
|
else if (func == 2) {//private roll
|
|
table.draw({rollMode:"selfroll"});
|
|
}
|
|
}
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
getSidebarId(nr){
|
|
let id;
|
|
if (nr == 0) id = 'chat';
|
|
else if (nr == 1) id = 'combat';
|
|
else if (nr == 2) id = 'scenes';
|
|
else if (nr == 3) id = 'actors';
|
|
else if (nr == 4) id = 'items';
|
|
else if (nr == 5) id = 'journal';
|
|
else if (nr == 6) id = 'tables';
|
|
else if (nr == 7) id = 'playlists';
|
|
else if (nr == 8) id = 'compendium';
|
|
else if (nr == 9) id = 'settings';
|
|
else id = '';
|
|
return id;
|
|
}
|
|
|
|
getSidebarName(nr){
|
|
let name;
|
|
if (nr == 0) name = game.i18n.localize("SIDEBAR.TabChat");
|
|
else if (nr == 1) name = game.i18n.localize("SIDEBAR.TabCombat");
|
|
else if (nr == 2) name = game.i18n.localize("SIDEBAR.TabScenes");
|
|
else if (nr == 3) name = game.i18n.localize("SIDEBAR.TabActors");
|
|
else if (nr == 4) name = game.i18n.localize("SIDEBAR.TabItems");
|
|
else if (nr == 5) name = game.i18n.localize("SIDEBAR.TabJournal");
|
|
else if (nr == 6) name = game.i18n.localize("SIDEBAR.TabTables");
|
|
else if (nr == 7) name = game.i18n.localize("SIDEBAR.TabPlaylists");
|
|
else if (nr == 8) name = game.i18n.localize("SIDEBAR.TabCompendium");
|
|
else if (nr == 9) name = game.i18n.localize("SIDEBAR.TabSettings");
|
|
else if (nr == 10) name = game.i18n.localize("SIDEBAR.CollapseToggle");
|
|
return name;
|
|
}
|
|
|
|
getSidebarIcon(nr){
|
|
let icon;
|
|
if (nr == 0) icon = window.CONFIG.ChatMessage.sidebarIcon;
|
|
else if (nr == 1) icon = window.CONFIG.Combat.sidebarIcon;
|
|
else if (nr == 2) icon = window.CONFIG.Scene.sidebarIcon;
|
|
else if (nr == 3) icon = window.CONFIG.Actor.sidebarIcon;
|
|
else if (nr == 4) icon = window.CONFIG.Item.sidebarIcon;
|
|
else if (nr == 5) icon = window.CONFIG.JournalEntry.sidebarIcon;
|
|
else if (nr == 6) icon = window.CONFIG.RollTable.sidebarIcon;
|
|
else if (nr == 7) icon = window.CONFIG.Playlist.sidebarIcon;
|
|
else if (nr == 8) icon = "fas fa-atlas";
|
|
else if (nr == 9) icon = "fas fa-cogs";
|
|
else if (nr == 10) icon = "fas fa-caret-right";
|
|
return icon;
|
|
}
|
|
|
|
updateSidebar(settings,context){
|
|
let sidebarTab = settings.sidebarTab;
|
|
if (sidebarTab == undefined) sidebarTab = 0;
|
|
|
|
let activeTab = ui.sidebar.activeTab;
|
|
let collapsed = ui.sidebar._collapsed;
|
|
|
|
let name = "";
|
|
let icon = "";
|
|
|
|
let background = settings.background;
|
|
if(background == undefined) background = '#000000';
|
|
|
|
let ringColor = "#000000";
|
|
|
|
let ringOffColor = settings.offRing;
|
|
if (ringOffColor == undefined) ringOffColor = '#000000';
|
|
|
|
let ringOnColor = settings.onRing;
|
|
if (ringOnColor == undefined) ringOnColor = '#00FF00';
|
|
|
|
if (settings.displaySidebarName) name = this.getSidebarName(sidebarTab);
|
|
if (settings.displaySidebarIcon) icon = this.getSidebarIcon(sidebarTab);
|
|
|
|
if ((sidebarTab == 10 && collapsed))
|
|
ringColor = ringOnColor;
|
|
else
|
|
ringColor = ringOffColor;
|
|
streamDeck.setTitle(name,context);
|
|
streamDeck.setIcon(1,context,icon,background,2,ringColor);
|
|
}
|
|
|
|
keyPressSidebar(settings){
|
|
let sidebarTab = settings.sidebarTab;
|
|
if (sidebarTab == undefined) sidebarTab = 0;
|
|
let collapsed = ui.sidebar._collapsed;
|
|
|
|
if (sidebarTab < 10) ui.sidebar.activateTab(this.getSidebarId(sidebarTab));
|
|
else if (collapsed) ui.sidebar.expand();
|
|
else if (collapsed == false) ui.sidebar.collapse();
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
updateCompendium(settings,context){
|
|
let background = settings.background;
|
|
if(background == undefined) background = '#000000';
|
|
|
|
let name = settings.compendiumName;
|
|
if (name == undefined) return;
|
|
|
|
const compendium = game.packs.entries.find(p=>p.metadata.label == name);
|
|
if (compendium == undefined) return;
|
|
|
|
let ringColor = "#000000";
|
|
|
|
let ringOffColor = settings.offRing;
|
|
if (ringOffColor == undefined) ringOffColor = '#000000';
|
|
|
|
let ringOnColor = settings.onRing;
|
|
if (ringOnColor == undefined) ringOnColor = '#00FF00';
|
|
|
|
if (compendium.rendered) ringColor = ringOnColor;
|
|
else ringColor = ringOffColor;
|
|
|
|
if (settings.displayCompendiumName) streamDeck.setTitle(name,context);
|
|
streamDeck.setIcon(0,context,"",background,2,ringColor);
|
|
}
|
|
|
|
keyPressCompendium(settings){
|
|
let name = settings.compendiumName;
|
|
if (name == undefined) return;
|
|
|
|
const compendium = game.packs.entries.find(p=>p.metadata.label == name);
|
|
if (compendium == undefined) return;
|
|
if (compendium.rendered) compendium.close();
|
|
else compendium.render(true);
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
//Journals
|
|
//game.journal.entries[0].render(true)
|
|
|
|
updateJournal(settings,context){
|
|
let background = settings.background;
|
|
if(background == undefined) background = '#000000';
|
|
|
|
let name = settings.compendiumName;
|
|
if (name == undefined) return;
|
|
const journal = game.journal.entries.find(p=>p.name == name);
|
|
if (journal == undefined) return;
|
|
|
|
let ringColor = "#000000";
|
|
|
|
let ringOffColor = settings.offRing;
|
|
if (ringOffColor == undefined) ringOffColor = '#000000';
|
|
|
|
let ringOnColor = settings.onRing;
|
|
if (ringOnColor == undefined) ringOnColor = '#00FF00';
|
|
|
|
if (journal.sheet.rendered) ringColor = ringOnColor;
|
|
else ringColor = ringOffColor;
|
|
|
|
if (settings.displayCompendiumName) streamDeck.setTitle(name,context);
|
|
streamDeck.setIcon(0,context,"",background,2,ringColor);
|
|
}
|
|
|
|
keyPressJournal(settings){
|
|
let name = settings.compendiumName;
|
|
if (name == undefined) return;
|
|
|
|
const journal = game.journal.entries.find(p=>p.name == name);
|
|
if (journal == undefined) return;
|
|
|
|
journal.render(true);
|
|
}
|
|
} |