Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Extends
Contains information related to changes to a piston expanding or retracting.
Properties
isExpanding
read-only isExpanding: boolean;
True if the piston is the process of expanding.
Type: boolean
piston
read-only piston: BlockPistonComponent;
Contains additional properties and details of the piston.
Type: BlockPistonComponent
Examples
pistonAfterEvent.ts
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' : '')
);
}
});
}
(preview) Work with this sample on the MCTools.dev code sandbox.