change color only if it really changes

pull/68/head
Michael Aschauer 2018-10-19 16:24:02 +02:00
rodzic 985d711a76
commit fdf3dacb4c
1 zmienionych plików z 13 dodań i 1 usunięć

Wyświetl plik

@ -22,6 +22,7 @@ TurtleShepherd.prototype.init = function() {
this.densityMax = 15; this.densityMax = 15;
this.colors = []; this.colors = [];
this.newColor = false; this.newColor = false;
this.oldColor = null;
}; };
@ -44,6 +45,7 @@ TurtleShepherd.prototype.clear = function() {
this.densityWarning = false; this.densityWarning = false;
this.colors = []; this.colors = [];
this.newColor = false; this.newColor = false;
this.oldColor = null;
}; };
@ -156,6 +158,7 @@ TurtleShepherd.prototype.moveTo= function(x1, y1, x2, y2, penState) {
} else { } else {
this.colors.push({r:0,g:0,b:0,a:255}); this.colors.push({r:0,g:0,b:0,a:255});
} }
this.oldColor = this.colors[this.colors.length-1];
} }
} }
@ -228,14 +231,21 @@ TurtleShepherd.prototype.addColorChange= function(color) {
TurtleShepherd.prototype.pushColorChangeNow = function() { TurtleShepherd.prototype.pushColorChangeNow = function() {
c = this.newColor; c = this.newColor;
o = this.oldColor;
if (c.r == o.r && c.g == o.g && c.b == o.b && c.a == o.a) {
this.newColor = false;
return;
}
index = this.colors.findIndex(x => (x.r == c.r && x.b == x.b && x.g == c.g && x.a == c.a) ); index = this.colors.findIndex(x => (x.r == c.r && x.b == x.b && x.g == c.g && x.a == c.a) );
console.log(index, this.newColor, this.colors);
if (index < 0) { if (index < 0) {
index = this.colors.push(this.newColor)-1; index = this.colors.push(this.newColor)-1;
} }
//console.log("change color to", c);
this.cache.push( this.cache.push(
{ {
"cmd":"color", "cmd":"color",
@ -243,7 +253,9 @@ TurtleShepherd.prototype.pushColorChangeNow = function() {
"thread": index "thread": index
} }
); );
this.oldColor = this.newColor;
this.newColor = false; this.newColor = false;
}; };
/* /*