You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tobspr_shapez.io/src/js/game/hud/parts/lever_toggle.js

34 lines
1.2 KiB

import { STOP_PROPAGATION } from "../../../core/signal";
import { Vector } from "../../../core/vector";
import { enumMouseButton } from "../../camera";
import { BaseHUDPart } from "../base_hud_part";
export class HUDLeverToggle extends BaseHUDPart {
initialize() {
this.root.camera.downPreHandler.add(this.downPreHandler, this);
}
/**
* @param {Vector} pos
* @param {enumMouseButton} button
*/
downPreHandler(pos, button) {
const tile = this.root.camera.screenToWorld(pos).toTileSpace();
const contents = this.root.map.getLayerContentXY(tile.x, tile.y, "regular");
if (contents) {
const leverComp = contents.components.Lever;
if (leverComp) {
if (button === enumMouseButton.left) {
leverComp.toggled = !leverComp.toggled;
return STOP_PROPAGATION;
} else if (button === enumMouseButton.right) {
if (!this.root.hud.parts.buildingPlacer.currentMetaBuilding) {
this.root.logic.tryDeleteBuilding(contents);
}
return STOP_PROPAGATION;
}
}
}
}
}