实验性
Contains information related to changes to a piston expanding or retracting.
import { world, system, BlockPermutation, BlockPistonState, PistonActivateAfterEvent, DimensionLocation } from "@minecraft/server";import { MinecraftBlockTypes } from "@minecraft/vanilla-data";function pistonAfterEvent(log: (message: string, status?: number) => void, targetLocation: DimensionLocation) { // set up a couple of piston blocks const piston = targetLocation.dimension.getBlock(targetLocation); const button = targetLocation.dimension.getBlock({ x: targetLocation.x, y: targetLocation.y + 1, z: targetLocation.z, }); if (piston === undefined || button === undefined) { log("Could not find block at location."); return -1; } piston.setPermutation(BlockPermutation.resolve(MinecraftBlockTypes.Piston).withState("facing_direction", 3)); button.setPermutation(BlockPermutation.resolve(MinecraftBlockTypes.AcaciaButton).withState("facing_direction", 1)); world.afterEvents.pistonActivate.subscribe((pistonEvent: PistonActivateAfterEvent) => { const eventLoc = pistonEvent.piston.block.location; if (eventLoc.x === targetLocation.x && eventLoc.y === targetLocation.y && eventLoc.z === targetLocation.z) { log( "Piston event at " + system.currentTick + (pistonEvent.piston.isMoving ? " Moving" : "") + (pistonEvent.piston.state === BlockPistonState.Expanding ? " Expanding" : "") + (pistonEvent.piston.state === BlockPistonState.Expanded ? " Expanded" : "") + (pistonEvent.piston.state === BlockPistonState.Retracting ? " Retracting" : "") + (pistonEvent.piston.state === BlockPistonState.Retracted ? " Retracted" : "") ); } });} 复制
import { world, system, BlockPermutation, BlockPistonState, PistonActivateAfterEvent, DimensionLocation } from "@minecraft/server";import { MinecraftBlockTypes } from "@minecraft/vanilla-data";function pistonAfterEvent(log: (message: string, status?: number) => void, targetLocation: DimensionLocation) { // set up a couple of piston blocks const piston = targetLocation.dimension.getBlock(targetLocation); const button = targetLocation.dimension.getBlock({ x: targetLocation.x, y: targetLocation.y + 1, z: targetLocation.z, }); if (piston === undefined || button === undefined) { log("Could not find block at location."); return -1; } piston.setPermutation(BlockPermutation.resolve(MinecraftBlockTypes.Piston).withState("facing_direction", 3)); button.setPermutation(BlockPermutation.resolve(MinecraftBlockTypes.AcaciaButton).withState("facing_direction", 1)); world.afterEvents.pistonActivate.subscribe((pistonEvent: PistonActivateAfterEvent) => { const eventLoc = pistonEvent.piston.block.location; if (eventLoc.x === targetLocation.x && eventLoc.y === targetLocation.y && eventLoc.z === targetLocation.z) { log( "Piston event at " + system.currentTick + (pistonEvent.piston.isMoving ? " Moving" : "") + (pistonEvent.piston.state === BlockPistonState.Expanding ? " Expanding" : "") + (pistonEvent.piston.state === BlockPistonState.Expanded ? " Expanded" : "") + (pistonEvent.piston.state === BlockPistonState.Retracting ? " Retracting" : "") + (pistonEvent.piston.state === BlockPistonState.Retracted ? " Retracted" : "") ); } });}
只读
此事件影响的方块。
Block impacted by this event.
包含此事件相关方块的所在维度。
Dimension that contains the block that is the subject of this event.
True if the piston is the process of expanding.
Contains additional properties and details of the piston.
Contains information related to changes to a piston expanding or retracting.
示例: pistonAfterEvent.ts