55 lines
1.9 KiB
JavaScript
55 lines
1.9 KiB
JavaScript
import {settingsKey} from "../settings.js";
|
|
|
|
// Tint the source door red when a locked alert is hovered
|
|
export function onRenderChatMessage(message, html, data) {
|
|
// Tint the door that generated this message
|
|
const source = message.flags.smartdoors?.source;
|
|
if (!source) return;
|
|
|
|
// Tint on mouse enter
|
|
const mouseEnter = function () {
|
|
const sourceDoor = canvas.controls.doors.children.find(
|
|
door => door.wall.id === source.wall && door.wall.scene.id === source.scene,
|
|
);
|
|
if (sourceDoor) sourceDoor.icon.tint = 0xff0000;
|
|
};
|
|
html.on("mouseenter", mouseEnter);
|
|
|
|
// Remove tint on mouse leave
|
|
const mouseLeave = function () {
|
|
const sourceDoor = canvas.controls.doors.children.find(
|
|
door => door.wall.id === source.wall && door.wall.scene.id === source.scene,
|
|
);
|
|
if (sourceDoor) sourceDoor.icon.tint = 0xffffff;
|
|
};
|
|
html.on("mouseleave", mouseLeave);
|
|
|
|
// Localize the message
|
|
html.find(".message-content")[0].innerText = game.i18n.localize("smart-doors.ui.lockedDoorAlert");
|
|
}
|
|
|
|
// Creates a chat message stating that a player tried to open a locked door
|
|
export function onDoorLeftClick() {
|
|
// Check if this feature is enabled
|
|
if (!game.settings.get(settingsKey, "lockedDoorAlert")) return false;
|
|
|
|
const state = this.wall.document.ds;
|
|
const states = CONST.WALL_DOOR_STATES;
|
|
|
|
// Only create messages when the door is locked.
|
|
if (state !== states.LOCKED) return false;
|
|
|
|
// Generate no message if the gm attempts to open the door
|
|
if (game.user.isGM) return false;
|
|
|
|
// Create and send the chat message
|
|
const message = {};
|
|
message.user = game.user.id;
|
|
if (game.user.character) message.speaker = {actor: game.user.character};
|
|
message.content = game.i18n.localize("smart-doors.ui.lockedDoorAlert");
|
|
message.sound = CONFIG.sounds.lock;
|
|
message.flags = {smartdoors: {source: {wall: this.wall.id, scene: this.wall.scene.id}}};
|
|
ChatMessage.create(message);
|
|
return true;
|
|
}
|