Block_Piston: {
    type: "compound";
    value: {
        AttachedBlocks: {
            type: "list";
            value: {
                type: "int";
                value: [number, number, number, number, number, number, number];
            };
        };
        BreakBlocks: {
            type: "list";
            value: {
                type: "int";
                value: [number, number, number, number, number, number, number];
            };
        };
        LastProgress: { type: "float"; value: number };
        NewState: { type: "byte"; value: 0 | 1 | 2 | 3 };
        Progress: { type: "float"; value: number };
        State: { type: "byte"; value: number };
        Sticky: { type: "byte"; value: number };
    };
}

Additional fields for piston.

Type declaration

  • type: "compound"
  • value: {
        AttachedBlocks: {
            type: "list";
            value: {
                type: "int";
                value: [number, number, number, number, number, number, number];
            };
        };
        BreakBlocks: {
            type: "list";
            value: {
                type: "int";
                value: [number, number, number, number, number, number, number];
            };
        };
        LastProgress: { type: "float"; value: number };
        NewState: { type: "byte"; value: 0 | 1 | 2 | 3 };
        Progress: { type: "float"; value: number };
        State: { type: "byte"; value: number };
        Sticky: { type: "byte"; value: number };
    }
    • AttachedBlocks: {
          type: "list";
          value: {
              type: "int";
              value: [number, number, number, number, number, number, number];
          };
      }

      The list of positions of blocks it should move.

    • BreakBlocks: {
          type: "list";
          value: {
              type: "int";
              value: [number, number, number, number, number, number, number];
          };
      }

      The list of positions of blocks it should break.

    • LastProgress: { type: "float"; value: number }

      Progress in last tick.

    • NewState: { type: "byte"; value: 0 | 1 | 2 | 3 }

      Next state. Can be 0 (unextended), 1 (pushing), 2 (extended), or 3 (pulling).

      0 | 1 | 2 | 3

      • 0: unextended
      • 1: pushing
      • 2: extended
      • 3: pulling
    • Progress: { type: "float"; value: number }

      How far the block has been moved. Can be 0.0, 0.5, and 1.0.

    • State: { type: "byte"; value: number }

      Current state.

    • Sticky: { type: "byte"; value: number }

      1 or 0 (true/false) - true if this piston is sticky.