Fixes issue #188
This commit is contained in:
parent
00acc49356
commit
72e0b6246e
3 changed files with 36 additions and 14 deletions
|
@ -4748,13 +4748,13 @@ Signs must use block 63 (stand-alone signs) or 68 (signs on walls)
|
||||||
|
|
||||||
To create a free-standing sign...
|
To create a free-standing sign...
|
||||||
|
|
||||||
drone.sign(["Hello","World"],63);
|
drone.sign(["Hello","World"], blocks.sign_post);
|
||||||
|
|
||||||
![ground sign](img/signex1.png)
|
![ground sign](img/signex1.png)
|
||||||
|
|
||||||
... to create a wall mounted sign...
|
... to create a wall mounted sign...
|
||||||
|
|
||||||
drone.sign(["Welcome","to","Scriptopia"], 68 );
|
drone.sign(["Welcome","to","Scriptopia"], blocks.sign );
|
||||||
|
|
||||||
![wall sign](img/signex2.png)
|
![wall sign](img/signex2.png)
|
||||||
|
|
||||||
|
|
|
@ -27,8 +27,16 @@ A ladder 10 blocks high will be created at the point you were looking at.
|
||||||
***/
|
***/
|
||||||
var blocks = require('blocks');
|
var blocks = require('blocks');
|
||||||
function ladder( height ){
|
function ladder( height ){
|
||||||
// var metadata = Drone.PLAYER_SIGN_FACING[(this.dir+2) % 4];
|
this.then(function(){
|
||||||
// this.box( blocks.ladder + ':' + metadata, 1, height, 1);
|
var block = this.getBlock();
|
||||||
|
if (block.typeId == blocks.air || block.typeId == blocks.ladder){
|
||||||
this.box(blocks.ladder, 1, height, 1);
|
this.box(blocks.ladder, 1, height, 1);
|
||||||
|
} else {
|
||||||
|
this
|
||||||
|
.back()
|
||||||
|
.box(blocks.ladder, 1, height, 1)
|
||||||
|
.fwd();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
Drone.extend( ladder );
|
Drone.extend( ladder );
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
/*global require, echo,__plugin*/
|
/*global require, echo,__plugin*/
|
||||||
var Drone = require('./drone').Drone;
|
var Drone = require('./drone').Drone,
|
||||||
|
blocks = require('blocks');
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
### Drone.wallsign() method
|
### Drone.wallsign() method
|
||||||
|
|
||||||
|
@ -45,13 +46,13 @@ Signs must use block 63 (stand-alone signs) or 68 (signs on walls)
|
||||||
|
|
||||||
To create a free-standing sign...
|
To create a free-standing sign...
|
||||||
|
|
||||||
drone.sign(["Hello","World"],63);
|
drone.sign(["Hello","World"], blocks.sign_post);
|
||||||
|
|
||||||
![ground sign](img/signex1.png)
|
![ground sign](img/signex1.png)
|
||||||
|
|
||||||
... to create a wall mounted sign...
|
... to create a wall mounted sign...
|
||||||
|
|
||||||
drone.sign(["Welcome","to","Scriptopia"], 68 );
|
drone.sign(["Welcome","to","Scriptopia"], blocks.sign );
|
||||||
|
|
||||||
![wall sign](img/signex2.png)
|
![wall sign](img/signex2.png)
|
||||||
|
|
||||||
|
@ -64,8 +65,8 @@ function putSign( drone, texts, blockId, meta ) {
|
||||||
isSign,
|
isSign,
|
||||||
setLine;
|
setLine;
|
||||||
|
|
||||||
if ( blockId != 63 && blockId != 68 ) {
|
if ( blockId != blocks.sign_post && blockId != blocks.sign ) {
|
||||||
throw new Error( 'Invalid Parameter: blockId must be 63 or 68' );
|
throw new Error( 'Invalid Parameter: blockId must be blocks.sign_post or blocks.sign' );
|
||||||
}
|
}
|
||||||
drone.setBlock( blockId, meta);
|
drone.setBlock( blockId, meta);
|
||||||
block = drone.getBlock();
|
block = drone.getBlock();
|
||||||
|
@ -95,10 +96,23 @@ function putSign( drone, texts, blockId, meta ) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
function signpost( message ){
|
function signpost( message ){
|
||||||
this.sign(message, 63);
|
this.sign(message, blocks.sign_post);
|
||||||
}
|
}
|
||||||
function wallsign( message ){
|
function wallsign( message ){
|
||||||
this.sign(message, 68);
|
/*
|
||||||
|
must allow for /js wallsign() while looking at a wall block
|
||||||
|
*/
|
||||||
|
this.then(function(){
|
||||||
|
if (this.getBlock().typeId == blocks.air){
|
||||||
|
this.sign(message, blocks.sign);
|
||||||
|
} else {
|
||||||
|
this
|
||||||
|
.back()
|
||||||
|
.sign(message, blocks.sign)
|
||||||
|
.fwd();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
function sign( message, block ) {
|
function sign( message, block ) {
|
||||||
if ( message.constructor != Array ) {
|
if ( message.constructor != Array ) {
|
||||||
|
@ -107,8 +121,8 @@ function sign( message, block ) {
|
||||||
var bm = this._getBlockIdAndMeta( block );
|
var bm = this._getBlockIdAndMeta( block );
|
||||||
block = bm[0];
|
block = bm[0];
|
||||||
var meta = bm[1];
|
var meta = bm[1];
|
||||||
if ( block != 63 && block != 68 ) {
|
if ( block !== blocks.sign_post && block !== blocks.sign ) {
|
||||||
var usage = 'Usage: sign("message", 63) or sign("message", 68)';
|
var usage = 'Usage: sign("message", blocks.sign_post) or sign("message", blocks.sign)';
|
||||||
if ( this.player ) {
|
if ( this.player ) {
|
||||||
echo( this.player, usage);
|
echo( this.player, usage);
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue