mirror of
https://github.com/tiennm99/WPlace-AutoBOT.git
synced 2026-10-13 14:15:48 +00:00
Load overlay from data file
This commit is contained in:
1 parent
6504b8c1d4
commit
059d8281d6
1 file changed
+49
@@ -1342,6 +1342,45 @@ window.addEventListener('message', (event) => {
|
||||
throw error
|
||||
}
|
||||
},
|
||||
|
||||
// Helper function to restore overlay from loaded data
|
||||
restoreOverlayFromData: async () => {
|
||||
if (!state.imageLoaded || !state.imageData || !state.startPosition || !state.region) {
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
// Recreate ImageBitmap from loaded pixel data
|
||||
const imageData = new ImageData(
|
||||
state.imageData.pixels,
|
||||
state.imageData.width,
|
||||
state.imageData.height
|
||||
);
|
||||
|
||||
const canvas = new OffscreenCanvas(state.imageData.width, state.imageData.height);
|
||||
const ctx = canvas.getContext('2d');
|
||||
ctx.putImageData(imageData, 0, 0);
|
||||
const imageBitmap = await canvas.transferToImageBitmap();
|
||||
|
||||
// Set up overlay with restored data
|
||||
await overlayManager.setImage(imageBitmap);
|
||||
await overlayManager.setPosition(state.startPosition, state.region);
|
||||
overlayManager.enable();
|
||||
|
||||
// Update overlay button state
|
||||
const toggleOverlayBtn = document.getElementById('toggleOverlayBtn');
|
||||
if (toggleOverlayBtn) {
|
||||
toggleOverlayBtn.disabled = false;
|
||||
toggleOverlayBtn.classList.add('active');
|
||||
}
|
||||
|
||||
console.log('Overlay restored from data');
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error('Failed to restore overlay from data:', error);
|
||||
return false;
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
// IMAGE PROCESSOR CLASS
|
||||
@@ -3755,6 +3794,11 @@ window.addEventListener('message', (event) => {
|
||||
|
||||
updateStats()
|
||||
|
||||
// Restore overlay if image data was loaded from localStorage
|
||||
Utils.restoreOverlayFromData().catch(error => {
|
||||
console.error('Failed to restore overlay from localStorage:', error);
|
||||
});
|
||||
|
||||
if (!state.colorsChecked) {
|
||||
uploadBtn.disabled = false;
|
||||
} else {
|
||||
@@ -3795,6 +3839,11 @@ window.addEventListener('message', (event) => {
|
||||
|
||||
await updateStats()
|
||||
|
||||
// Restore overlay if image data was loaded from file
|
||||
await Utils.restoreOverlayFromData().catch(error => {
|
||||
console.error('Failed to restore overlay from file:', error);
|
||||
});
|
||||
|
||||
if (state.colorsChecked) {
|
||||
uploadBtn.disabled = false
|
||||
selectPosBtn.disabled = false
|
||||
|
||||
Reference in new issue
Block a user