77 lines
1.9 KiB
JavaScript
77 lines
1.9 KiB
JavaScript
const normalTint = [1, 1, 1]
|
|
const morningTint = [0.8, 0.7, 0.9];
|
|
const nightTint = [0.6, 0.55, 1.0];
|
|
|
|
function applyTint(palette, tint) {
|
|
for (let i = 0; i < palette.length; i++) {
|
|
const color = palette[i];
|
|
for (let j = 0; j < tint.length; j++) {
|
|
color[j] = Math.floor(color[j] * tint[j]);
|
|
}
|
|
}
|
|
}
|
|
|
|
function applyTintToPalettes(tint) {
|
|
try {
|
|
const primaryPalettes = map.getPrimaryTilesetPalettes()
|
|
for (let i = 0; i < primaryPalettes.length; i++)
|
|
applyTint(primaryPalettes[i], tint)
|
|
|
|
const secondaryPalettes = map.getSecondaryTilesetPalettes()
|
|
for (let i = 0; i < secondaryPalettes.length; i++)
|
|
applyTint(secondaryPalettes[i], tint)
|
|
|
|
map.setPrimaryTilesetPalettesPreview(primaryPalettes)
|
|
map.setSecondaryTilesetPalettesPreview(secondaryPalettes)
|
|
} catch(err) {
|
|
console.log(err)
|
|
}
|
|
}
|
|
|
|
export function resetTint() {
|
|
applyTintToPalettes(normalTint)
|
|
}
|
|
|
|
export function applyMorningTint() {
|
|
applyTintToPalettes(morningTint)
|
|
}
|
|
|
|
export function applyNightTint() {
|
|
applyTintToPalettes(nightTint)
|
|
}
|
|
|
|
let curTint = 0
|
|
|
|
function nextTint() {
|
|
map.clearOverlay()
|
|
map.addRect(curTint * 40, 40, 40, 40, "#FFFF0000")
|
|
curTint = (curTint + 1) % 4
|
|
map.setTimeout(nextTint, 100)
|
|
}
|
|
|
|
export function animated() {
|
|
try {
|
|
map.setTimeout(nextTint, 1000)
|
|
} catch(err) {
|
|
console.log(err)
|
|
}
|
|
}
|
|
|
|
let registered = false
|
|
|
|
// Porymap callback when project is opened.
|
|
export function on_project_opened(projectPath) {
|
|
if (registered) {
|
|
return;
|
|
}
|
|
|
|
try {
|
|
// map.registerAction("resetTint", "View Day Tint", "K")
|
|
// map.registerAction("applyMorningTint", "View Morning Tint", "N")
|
|
// map.registerAction("applyNightTint", "View Night Tint", "Ctrl+J")
|
|
map.registerAction("animated", "Animate")
|
|
registered = true;
|
|
} catch(err) {
|
|
console.log(err)
|
|
}
|
|
}
|