From 3f2bc8c80bcc3f74b237873ecbb26991382c837c Mon Sep 17 00:00:00 2001 From: walterhiggins Date: Sat, 16 Feb 2013 22:22:45 +0000 Subject: [PATCH] Fixed bug in rainbow (wasn't drawing) and switched to using Bukkit Scheduler API for dancefloor drone function. --- src/main/javascript/drone/dancefloor.js | 19 +++++++++---------- src/main/javascript/drone/rainbow.js | 4 ++-- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/main/javascript/drone/dancefloor.js b/src/main/javascript/drone/dancefloor.js index 651f5eb..b961a19 100644 --- a/src/main/javascript/drone/dancefloor.js +++ b/src/main/javascript/drone/dancefloor.js @@ -13,7 +13,7 @@ Drone.extend('dancefloor',function(width,length) // // create a separate Drone object to lay down disco tiles // - var disco = new Drone(this.x,this.y, this.z, this.dir); + var disco = new Drone(this.x, this.y, this.z, this.dir, this.world); // // under-floor lighting // @@ -23,15 +23,14 @@ Drone.extend('dancefloor',function(width,length) // strobe gets called in a java thread - disco only lasts 30 seconds. // var discoTicks = 30; - var strobe = function() - { - while(discoTicks--) - { - disco.rand(floorTiles,width,1,length); - java.lang.Thread.sleep(1000); - } + var task = null; + var strobe = function() { + disco.rand(floorTiles,width,1,length); + if (!discoTicks--) + task.cancel(); }; - var thread = new java.lang.Thread(strobe); - thread.start(); + var now = 0; + var everySecond = 20; + task = server.scheduler.runTaskTimer(__plugin,strobe,now,everySecond); return this; }); diff --git a/src/main/javascript/drone/rainbow.js b/src/main/javascript/drone/rainbow.js index 46ea9b3..a9da6e4 100644 --- a/src/main/javascript/drone/rainbow.js +++ b/src/main/javascript/drone/rainbow.js @@ -24,8 +24,8 @@ Drone.extend('rainbow', function(radius){ this.chkpt('rainbow'); this.down(radius); // copy blocks.rainbow and add air at end (to compensate for strokewidth) - var colors = blocks.rainbow.slice(0).push(blocks.air); - + var colors = blocks.rainbow.slice(0); + colors.push(blocks.air); for (var i = 0;i < colors.length; i++) { var bm = this._getBlockIdAndMeta(colors[i]); this.arc({