waves/public/assets/g/turbowarp/main/js/addon-entry-paint-by-default.js
2025-04-09 17:11:14 -05:00

185 lines
5.5 KiB
JavaScript

(window["webpackJsonpGUI"] = window["webpackJsonpGUI"] || []).push([["addon-entry-paint-by-default"],{
/***/ "./src/addons/addons/paint-by-default/_runtime_entry.js":
/*!**************************************************************!*\
!*** ./src/addons/addons/paint-by-default/_runtime_entry.js ***!
\**************************************************************/
/*! exports provided: resources */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resources", function() { return resources; });
/* harmony import */ var _userscript_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./userscript.js */ "./src/addons/addons/paint-by-default/userscript.js");
/* generated by pull.js */
const resources = {
"userscript.js": _userscript_js__WEBPACK_IMPORTED_MODULE_0__["default"]
};
/***/ }),
/***/ "./src/addons/addons/paint-by-default/userscript.js":
/*!**********************************************************!*\
!*** ./src/addons/addons/paint-by-default/userscript.js ***!
\**********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = (async function ({
addon,
console
}) {
const spriteMeta = Object.assign(Object.create(null), {
upload: {
index: 0,
tooltip: "gui.spriteSelector.addSpriteFromFile"
},
surprise: {
index: 1,
tooltip: "gui.spriteSelector.addSpriteFromSurprise"
},
paint: {
index: 2,
tooltip: "gui.spriteSelector.addSpriteFromPaint"
},
library: {
index: 3,
tooltip: "gui.spriteSelector.addSpriteFromLibrary"
}
});
const backdropMeta = Object.assign(Object.create(null), {
upload: {
index: 0,
tooltip: "gui.stageSelector.addBackdropFromFile"
},
surprise: {
index: 1,
tooltip: "gui.stageSelector.addBackdropFromSurprise"
},
paint: {
index: 2,
tooltip: "gui.stageSelector.addBackdropFromPaint"
},
library: {
index: 3,
tooltip: "gui.spriteSelector.addBackdropFromLibrary"
}
});
const costumeMeta = Object.assign(Object.create(null), {
upload: {
index: 0,
tooltip: "gui.costumeTab.addFileCostume"
},
surprise: {
index: 1,
tooltip: "gui.costumeTab.addSurpriseCostume"
},
paint: {
index: 2,
tooltip: "gui.costumeTab.addBlankCostume"
},
library: {
index: 3,
tooltip: "gui.costumeTab.addCostumeFromLibrary"
}
});
const soundMeta = Object.assign(Object.create(null), {
upload: {
index: 0,
tooltip: "gui.soundTab.fileUploadSound"
},
surprise: {
index: 1,
tooltip: "gui.soundTab.surpriseSound"
},
record: {
index: 2,
tooltip: "gui.soundTab.recordSound"
},
library: {
index: 3,
tooltip: "gui.soundTab.addSoundFromLibrary"
}
});
const getSetting = id => {
if (addon.self.disabled) {
return "library";
}
return addon.settings.get(id);
};
const getButtonToClick = mainButton => {
const assetPanelWrapper = mainButton.closest("[class*=asset-panel_wrapper_]");
if (assetPanelWrapper) {
if (addon.tab.redux.state.scratchGui.editorTab.activeTabIndex === 2) {
return soundMeta[getSetting("sound")] || soundMeta.library;
} else {
return costumeMeta[getSetting("costume")] || costumeMeta.library;
}
} else if (mainButton.closest('[class*="target-pane_stage-selector-wrapper"]')) {
return backdropMeta[getSetting("backdrop")] || backdropMeta.library;
} else {
return spriteMeta[getSetting("sprite")] || spriteMeta.library;
}
};
document.body.addEventListener("click", e => {
if (addon.self.disabled) {
return;
}
const mainButton = e.target.closest('[class*="action-menu_main-button_"]');
if (!mainButton) {
return;
}
e.stopPropagation();
const moreButtonsElement = mainButton.parentElement.querySelector('[class*="action-menu_more-buttons_"]');
const moreButtons = moreButtonsElement.children;
const {
index
} = getButtonToClick(mainButton); // better-img-uploads can add a button at the start, so search "from the end" for compatibility
const buttonToClick = moreButtons[moreButtons.length - (4 - index)];
const elementToClick = buttonToClick.querySelector("button");
elementToClick.click();
}, {
bubble: true
});
document.body.addEventListener("mouseover", e => {
const mainButton = e.target.closest('[class*="action-menu_main-button_"]');
if (!mainButton) {
return;
}
const tooltipElement = mainButton.parentElement.querySelector(".__react_component_tooltip");
const {
tooltip
} = getButtonToClick(mainButton);
const translatedTooltip = addon.tab.redux.state.locales.messages[tooltip];
const needToFixTooltipText = translatedTooltip && tooltipElement.textContent !== translatedTooltip;
if (needToFixTooltipText) {
tooltipElement.textContent = translatedTooltip;
setTimeout(() => {
tooltipElement.textContent = translatedTooltip;
mainButton.dispatchEvent(new Event("mouseenter"));
});
}
}, {
bubble: true
});
});
/***/ })
}]);
//# sourceMappingURL=addon-entry-paint-by-default.js.map