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) } }