Files
Construct-CN/packs/BP/scripts/classes/BlockChangeWatcher.js
T
wed150 136d5ffa3b
/ build (push) Has been cancelled
Start working at 1.2.0
2026-08-26 09:54:39 +08:00

25 lines
958 B
JavaScript

import { world } from "@minecraft/server";
import { blockPlacementSignal } from "./BlockPlacementSignal";
import { ChangedCellPatcher } from "./Verifier/ChangedCellPatcher";
export class BlockChangeWatcher {
#patcher = new ChangedCellPatcher();
start() {
world.afterEvents.playerPlaceBlock.subscribe((event) => this.#onBlockChanged(event.block));
world.afterEvents.playerBreakBlock.subscribe((event) => this.#onBlockChanged(event.block));
world.afterEvents.playerInteractWithBlock.subscribe((event) => {
if (event.isFirstEvent)
this.#onBlockChanged(event.block);
});
blockPlacementSignal.subscribe((dimensionId, location) => this.#patcher.patchAround(dimensionId, location));
}
#onBlockChanged(block) {
this.#patcher.patchAround(block.dimension.id, block.location);
}
}
export const blockChangeWatcher = new BlockChangeWatcher();
blockChangeWatcher.start();