add spareexu method to canvas cleaner
This commit is contained in:
parent
fbb0c9b193
commit
e2dd53add6
|
@ -263,7 +263,11 @@ function Modtools() {
|
|||
break;
|
||||
case 'spareext':
|
||||
// eslint-disable-next-line max-len
|
||||
descCleanAction = t`Clean spare pixels that are surrounded by a single other color`;
|
||||
descCleanAction = t`Clean spare pixels that are surrounded by unset pixels and up to 1 other set pixels`;
|
||||
break;
|
||||
case 'spareextu':
|
||||
// eslint-disable-next-line max-len
|
||||
descCleanAction = t`Clean spare pixels that are surrounded by a single other color or unset pixels (VERY AGGRESSIVE ON CANVASES THAT ALLOW UNSET PIXELS (where there are two cooldowns)!)`;
|
||||
break;
|
||||
default:
|
||||
// nothing
|
||||
|
@ -571,7 +575,7 @@ function Modtools() {
|
|||
selectCleanAction(sel.options[sel.selectedIndex].value);
|
||||
}}
|
||||
>
|
||||
{['spare', 'spareext'].map((opt) => (
|
||||
{['spare', 'spareext', 'spareextu'].map((opt) => (
|
||||
<option
|
||||
value={opt}
|
||||
>
|
||||
|
|
|
@ -53,6 +53,35 @@ const METHODS = {
|
|||
},
|
||||
|
||||
spareext: (xc, yc, clrIgnore, canvasCleaner) => {
|
||||
let pxl = canvasCleaner.getPixelInChunkArea(xc, yc);
|
||||
if (pxl === null || pxl < clrIgnore) {
|
||||
return null;
|
||||
}
|
||||
let cntSet = 1;
|
||||
let rplPxl = null;
|
||||
for (let u = -1; u <= 1; u += 1) {
|
||||
for (let v = -1; v <= 1; v += 1) {
|
||||
pxl = canvasCleaner.getPixelInChunkArea(xc + u, yc + v);
|
||||
if (pxl === null
|
||||
|| (u === 0 && v === 0)
|
||||
) {
|
||||
continue;
|
||||
}
|
||||
if (pxl >= clrIgnore) {
|
||||
if (cntSet >= 2) {
|
||||
return null;
|
||||
}
|
||||
cntSet += 1;
|
||||
}
|
||||
if (rplPxl === null) {
|
||||
rplPxl = pxl;
|
||||
}
|
||||
}
|
||||
}
|
||||
return rplPxl;
|
||||
},
|
||||
|
||||
spareextu: (xc, yc, clrIgnore, canvasCleaner) => {
|
||||
let pxl = canvasCleaner.getPixelInChunkArea(xc, yc);
|
||||
if (pxl === null || pxl < clrIgnore) {
|
||||
return null;
|
||||
|
|
Loading…
Reference in New Issue
Block a user