mirror of
https://github.com/migatu/vtt_work.git
synced 2026-07-17 23:32:12 +00:00
sync: foundry v0.2
This commit is contained in:
@@ -0,0 +1,167 @@
|
||||
export const MODULE_ID = "investigation-board";
|
||||
|
||||
export const registerSettings = function() {
|
||||
|
||||
const refreshAllDrawings = () => {
|
||||
if (canvas.drawings) {
|
||||
canvas.drawings.placeables.forEach(drawing => {
|
||||
if (drawing.document.flags[MODULE_ID]) {
|
||||
drawing.refresh();
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// Update the pinColor setting to include a "No Pins" option.
|
||||
game.settings.register(MODULE_ID, "pinColor", {
|
||||
name: "Pin Color",
|
||||
hint: "Choose the color of the pin for notes. Selecting 'Random' will randomly assign a pin color. Select 'No Pins' to disable pin display.",
|
||||
scope: "world",
|
||||
config: true,
|
||||
type: String,
|
||||
choices: {
|
||||
random: "Random",
|
||||
red: "Red",
|
||||
blue: "Blue",
|
||||
yellow: "Yellow",
|
||||
green: "Green",
|
||||
none: "No Pins"
|
||||
},
|
||||
default: "random",
|
||||
onChange: () => {
|
||||
if (canvas.drawings) {
|
||||
canvas.drawings.placeables.forEach(drawing => drawing.refresh());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Register a new setting for board mode selection.
|
||||
game.settings.register(MODULE_ID, "boardMode", {
|
||||
name: "Board Mode",
|
||||
hint: "Select the board mode to change the styling of notes.",
|
||||
scope: "world",
|
||||
config: true,
|
||||
type: String,
|
||||
choices: {
|
||||
modern: "Modern",
|
||||
futuristic: "Futuristic",
|
||||
custom: "Custom"
|
||||
},
|
||||
default: "modern",
|
||||
onChange: () => refreshAllDrawings()
|
||||
});
|
||||
|
||||
|
||||
// Register existing settings
|
||||
game.settings.register(MODULE_ID, "stickyNoteWidth", {
|
||||
name: "Sticky Note Width",
|
||||
hint: "The width (in pixels) for all newly created sticky notes (default: 200).",
|
||||
scope: "world",
|
||||
config: true,
|
||||
type: Number,
|
||||
default: 200,
|
||||
onChange: () => refreshAllDrawings()
|
||||
});
|
||||
|
||||
game.settings.register(MODULE_ID, "photoNoteWidth", {
|
||||
name: "Photo Note Width",
|
||||
hint: "The width (in pixels) for all newly created photo notes (default: 225).",
|
||||
scope: "world",
|
||||
config: true,
|
||||
type: Number,
|
||||
default: 225,
|
||||
onChange: () => refreshAllDrawings()
|
||||
});
|
||||
|
||||
game.settings.register(MODULE_ID, "indexNoteWidth", {
|
||||
name: "Index Note Width",
|
||||
hint: "The width (in pixels) for all newly created index cards (default: 600).",
|
||||
scope: "world",
|
||||
config: true,
|
||||
type: Number,
|
||||
default: 600,
|
||||
onChange: () => refreshAllDrawings()
|
||||
});
|
||||
|
||||
game.settings.register(MODULE_ID, "baseFontSize", {
|
||||
name: "Base Font Size",
|
||||
hint: "The font size (in pixels) for text when the note width is at its default size (default: 16).",
|
||||
scope: "world",
|
||||
config: true,
|
||||
type: Number,
|
||||
default: 16,
|
||||
onChange: () => refreshAllDrawings()
|
||||
});
|
||||
|
||||
game.settings.register(MODULE_ID, "font", {
|
||||
name: "Font",
|
||||
hint: "Choose the font to be used in notes.",
|
||||
scope: "world",
|
||||
config: true,
|
||||
type: String,
|
||||
choices: {
|
||||
"Rock Salt": "Rock Salt",
|
||||
"Courier New": "Courier New",
|
||||
"Times New Roman": "Times New Roman",
|
||||
"Signika": "Signika",
|
||||
"Arial": "Arial"
|
||||
},
|
||||
default: "Rock Salt",
|
||||
onChange: () => refreshAllDrawings()
|
||||
});
|
||||
|
||||
game.settings.register(MODULE_ID, "characterNameKey", {
|
||||
name: "Character Name Key",
|
||||
hint: "Specify the key path to retrieve the name (e.g., 'prototypeToken.name' or 'system.alias' for Blades in the Dark). If empty, defaults to 'name'.",
|
||||
scope: "world",
|
||||
config: true,
|
||||
default: "prototypeToken.name",
|
||||
type: String,
|
||||
});
|
||||
|
||||
game.settings.register(MODULE_ID, "stickyNoteDefaultText", {
|
||||
name: "Default Sticky Note Text",
|
||||
hint: "The default text to use for new sticky notes.",
|
||||
scope: "world",
|
||||
config: true,
|
||||
type: String,
|
||||
default: "Clue",
|
||||
onChange: () => refreshAllDrawings()
|
||||
});
|
||||
|
||||
game.settings.register(MODULE_ID, "photoNoteDefaultText", {
|
||||
name: "Default Photo Note Text",
|
||||
hint: "The default text to use for new photo notes.",
|
||||
scope: "world",
|
||||
config: true,
|
||||
type: String,
|
||||
default: "Suspect/Place",
|
||||
onChange: () => refreshAllDrawings()
|
||||
});
|
||||
|
||||
game.settings.register(MODULE_ID, "indexNoteDefaultText", {
|
||||
name: "Default Index Note Text",
|
||||
hint: "The default text to use for new index notes.",
|
||||
scope: "world",
|
||||
config: true,
|
||||
type: String,
|
||||
default: "Notes",
|
||||
onChange: () => refreshAllDrawings()
|
||||
});
|
||||
|
||||
// Register base font size and character limits
|
||||
game.settings.register(MODULE_ID, "baseCharacterLimits", {
|
||||
name: "Base Character Limits",
|
||||
hint: "The base character limits for each font and note type. Edit this JSON to customize.",
|
||||
scope: "world",
|
||||
config: false, // Hidden from the settings UI
|
||||
type: Object,
|
||||
default: {
|
||||
"Rock Salt": { sticky: 90, photo: 20, index: 210 },
|
||||
"Courier New": { sticky: 250, photo: 30, index: 580 },
|
||||
"Times New Roman": { sticky: 200, photo: 30, index: 800 },
|
||||
"Signika": { sticky: 200, photo: 30, index: 650 },
|
||||
"Arial": { sticky: 200, photo: 30, index: 650 }
|
||||
}
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user