类 TripWireTripAfterEventSignal实验性

Manages callbacks that are connected to when a trip wire is tripped.

import { world, system, BlockPermutation, TripWireTripAfterEvent, DimensionLocation } from "@minecraft/server";
import { MinecraftBlockTypes } from "@minecraft/vanilla-data";

function tripWireTripEvent(log: (message: string, status?: number) => void, targetLocation: DimensionLocation) {
// set up a tripwire
const redstone = targetLocation.dimension.getBlock({
x: targetLocation.x,
y: targetLocation.y - 1,
z: targetLocation.z,
});
const tripwire = targetLocation.dimension.getBlock(targetLocation);

if (redstone === undefined || tripwire === undefined) {
log("Could not find block at location.");
return -1;
}

redstone.setPermutation(BlockPermutation.resolve(MinecraftBlockTypes.RedstoneBlock));
tripwire.setPermutation(BlockPermutation.resolve(MinecraftBlockTypes.TripWire));

world.afterEvents.tripWireTrip.subscribe((tripWireTripEvent: TripWireTripAfterEvent) => {
const eventLoc = tripWireTripEvent.block.location;

if (eventLoc.x === targetLocation.x && eventLoc.y === targetLocation.y && eventLoc.z === targetLocation.z) {
log(
"Tripwire trip event at tick " +
system.currentTick +
(tripWireTripEvent.sources.length > 0 ? " by entity " + tripWireTripEvent.sources[0].id : "")
);
}
});
}

方法