import { world, system, BlockPermutation, ButtonPushAfterEvent, DimensionLocation } from '@minecraft/server';
import { MinecraftBlockTypes } from '@minecraft/vanilla-data';
function buttonPushEvent(log: (message: string, status?: number) => void, targetLocation: DimensionLocation) {
// set up a button on cobblestone
const cobblestone = targetLocation.dimension.getBlock(targetLocation);
const button = targetLocation.dimension.getBlock({
x: targetLocation.x,
y: targetLocation.y + 1,
z: targetLocation.z,
});
if (cobblestone === undefined || button === undefined) {
log('Could not find block at location.');
return -1;
}
cobblestone.setPermutation(BlockPermutation.resolve(MinecraftBlockTypes.Cobblestone));
button.setPermutation(BlockPermutation.resolve(MinecraftBlockTypes.AcaciaButton).withState('facing_direction', 1));
world.afterEvents.buttonPush.subscribe((buttonPushEvent: ButtonPushAfterEvent) => {
const eventLoc = buttonPushEvent.block.location;
if (eventLoc.x === targetLocation.x && eventLoc.y === targetLocation.y + 1 && eventLoc.z === targetLocation.z) {
log('Button push event at tick ' + system.currentTick);
}
});
}