This repository has been archived on 2021-07-14. You can view files and clone it, but cannot push or open issues or pull requests.
scriptcraft/src/main/js/plugins/drone/contrib/streamer.js

31 lines
1,018 B
JavaScript

var Drone = require('../drone').Drone;
/**
* Creates a stream of blocks in a given direction until it hits something other than air
*
* Parameters:
* block - blockId
* dir - "up", "down", "left", "right", "fwd", "back
* maxIterations - (Optional) maximum number of cubes to generate, defaults to 1000
*/
Drone.extend('streamer', function(block, dir, maxIterations) {
if (typeof maxIterations == 'undefined')
maxIterations = 1000;
var usage = "Usage: streamer({block-type}, {direction: 'up', 'down', 'fwd', 'back', 'left', 'right'}, {maximum-iterations: default 1000})\nE.g.\n" +
"streamer(5, 'up', 200)";
if (typeof dir == 'undefined'){
throw new Error(usage);
}
if (typeof block == 'undefined') {
throw new Error(usage);
}
for ( var i = 0; i < maxIterations || 1000; ++i ) {
this.box(block);
this[dir].call(this);
var block = this.world.getBlockAt(this.x, this.y, this.z);
if ( block.typeId != 0 && block.data != 0) {
break;
}
}
return this;
});