59 lines
1.2 KiB
JavaScript
59 lines
1.2 KiB
JavaScript
|
import Widget from "./Widget.js";
|
||
|
import {Switch} from "./Switch.js";
|
||
|
|
||
|
export class IntelligentBrushSwitch extends Widget
|
||
|
{
|
||
|
constructor(tilesetPicker, brush) {
|
||
|
super('Intelligenter Pinsel');
|
||
|
|
||
|
this.tilesetPicker = tilesetPicker;
|
||
|
this.brush = brush;
|
||
|
|
||
|
this.switch = new Switch();
|
||
|
this.switch.onToggle = (status) => {
|
||
|
if (this.isActive) {
|
||
|
this.setIntelligentBrush(status);
|
||
|
}
|
||
|
}
|
||
|
this.htmlElement.appendChild(this.switch.htmlElement);
|
||
|
|
||
|
if (tilesetPicker.tileset.hasExtendedTiles()) {
|
||
|
this.setIntelligentBrush(true);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
switchOn()
|
||
|
{
|
||
|
if (!this.switch.status) {
|
||
|
this.switch.toggle()
|
||
|
this.setIntelligentBrush(true);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
switchOff()
|
||
|
{
|
||
|
if (this.switch.status) {
|
||
|
this.switch.toggle()
|
||
|
this.setIntelligentBrush(false);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
setIntelligentBrush(status)
|
||
|
{
|
||
|
this.brush.isIntelligent = status;
|
||
|
this.tilesetPicker.updateExtendedTileVisibility();
|
||
|
}
|
||
|
|
||
|
enable() {
|
||
|
super.enable();
|
||
|
|
||
|
this.switch.enable();
|
||
|
}
|
||
|
|
||
|
disable() {
|
||
|
super.disable();
|
||
|
|
||
|
this.switch.disable();
|
||
|
}
|
||
|
}
|