|
|
@@ -85,7 +85,6 @@ public class SecondApplet extends PApplet { |
|
|
|
} |
|
|
|
|
|
|
|
void swapShader(int pos1, int pos2) { |
|
|
|
//if (pos1 >= 0 && pos2 < shaderList.size()) { |
|
|
|
Collections.swap(shaderList, pos1, pos2); |
|
|
|
Collections.swap(bricks, pos1, pos2); |
|
|
|
shaderList.get(pos1).pos = pos1; |
|
|
@@ -95,17 +94,19 @@ public class SecondApplet extends PApplet { |
|
|
|
for (int i = 0; i < bricks.size(); i++) { |
|
|
|
bricks.get(i).updateSliderPos(); |
|
|
|
} |
|
|
|
//} |
|
|
|
} |
|
|
|
|
|
|
|
void moveShader(int pos1, int pos2) { |
|
|
|
Shader s = shaderList.remove(pos1); |
|
|
|
Brick b = bricks.remove(pos1); |
|
|
|
|
|
|
|
shaderList.add(pos2, s); |
|
|
|
bricks.add(pos2, b); |
|
|
|
for (int i = 0; i < bricks.size(); i++) { |
|
|
|
bricks.get(i).updateSliderPos(); |
|
|
|
if (pos2 > pos1) { |
|
|
|
pos2 -=1; |
|
|
|
for (int i = pos1; i < pos2; i++) { |
|
|
|
swapShader(i, i+1); |
|
|
|
} |
|
|
|
} else { |
|
|
|
for (int i = pos1; i > pos2; i--) { |
|
|
|
swapShader(i, i-1); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@@ -182,6 +183,9 @@ public class SecondApplet extends PApplet { |
|
|
|
|
|
|
|
if (mouseY > y-5 && mouseY < y+5 && pressedBrick != -1) { |
|
|
|
hoveringLineAbove = true; |
|
|
|
if (pos > 0) { |
|
|
|
bricks.get(pos-1).hovering = false; |
|
|
|
} |
|
|
|
} else if (pos == bricks.size()-1 && mouseY > y+h-5 && mouseY < y+h+5 && pressedBrick != -1) { |
|
|
|
hoveringLineBelow = true; |
|
|
|
} else { |
|
|
@@ -223,16 +227,16 @@ public class SecondApplet extends PApplet { |
|
|
|
stroke(150); |
|
|
|
strokeWeight(1); |
|
|
|
line(0, totalBrickHeight+h-1, width, totalBrickHeight+h-1); |
|
|
|
|
|
|
|
if(hoveringLineAbove){ |
|
|
|
|
|
|
|
if (hoveringLineAbove) { |
|
|
|
stroke(200); |
|
|
|
strokeWeight(5); |
|
|
|
line(0,y,width,y); |
|
|
|
line(0, y, width, y); |
|
|
|
} |
|
|
|
if(hoveringLineBelow){ |
|
|
|
if (hoveringLineBelow) { |
|
|
|
stroke(200); |
|
|
|
strokeWeight(5); |
|
|
|
line(0,y+h,width,y+h); |
|
|
|
line(0, y+h, width, y+h); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@@ -465,26 +469,24 @@ public class SecondApplet extends PApplet { |
|
|
|
void mouseReleased() { |
|
|
|
if (pressedBrick != -1) { |
|
|
|
bricks.get(pressedBrick).dragging = false; |
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < bricks.size(); i++) { |
|
|
|
bricks.get(i).dragHovering = false; |
|
|
|
if (pressedBrick != i && bricks.get(i).hovering && !bricks.get(i).hoveringLineAbove && !bricks.get(i).hoveringLineBelow) { |
|
|
|
shaderManager.swapShader(pressedBrick, i); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if(pressedBrick != i && bricks.get(i).hoveringLineAbove){ |
|
|
|
shaderManager.moveShader(pressedBrick,i); |
|
|
|
if (pressedBrick != i) { |
|
|
|
if (bricks.get(i).hovering && !bricks.get(i).hoveringLineAbove && !bricks.get(i).hoveringLineBelow) { |
|
|
|
shaderManager.swapShader(pressedBrick, i); |
|
|
|
} |
|
|
|
|
|
|
|
if (pressedBrick != i-1 && bricks.get(i).hoveringLineAbove) { |
|
|
|
shaderManager.moveShader(pressedBrick, i); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (bricks.get(i).hoveringLineBelow) { |
|
|
|
shaderManager.moveShader(pressedBrick, bricks.size()); //move to last |
|
|
|
} |
|
|
|
} |
|
|
|
if(pressedBrick != i && bricks.get(i).hoveringLineBelow){ |
|
|
|
shaderManager.moveShader(pressedBrick,bricks.size()-1); //move to last |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (mouseX > binX && mouseX < binX+binS && mouseY > binY && mouseY < binY+binS) { |
|
|
|
println("removing"); |
|
|
|
shaderManager.removeShader(pressedBrick); |