94 lines
3.0 KiB
JavaScript
94 lines
3.0 KiB
JavaScript
|
|
function pyth(xA,yA,xB,yB) {
|
||
|
|
var a = Math.abs(xB - xA);
|
||
|
|
var b = Math.abs(yB - yA);
|
||
|
|
var c = Math.sqrt(a**2 + b**2);
|
||
|
|
return c;
|
||
|
|
};
|
||
|
|
|
||
|
|
function test(centerX,centerY,integer,chosenElement,createPixels=true,replacePixels=true,radialColor=false) {
|
||
|
|
if(!elements[chosenElement]) {
|
||
|
|
alert("Element " + chosenElement + " doesn't exist!");
|
||
|
|
return false;
|
||
|
|
};
|
||
|
|
integer = Math.round(integer);
|
||
|
|
for(i = 1; i < width; i++) {
|
||
|
|
for(j = 1; j < height; j++) {
|
||
|
|
var distance = pyth(centerX,centerY,i,j);
|
||
|
|
if(Math.round(distance) % integer == 0) {
|
||
|
|
if(isEmpty(i,j,false) && createPixels) {
|
||
|
|
createPixel(chosenElement,i,j);
|
||
|
|
} else if(!isEmpty(i,j,true) && !outOfBounds(i,j) && replacePixels) {
|
||
|
|
changePixel(pixelMap[i][j],chosenElement);
|
||
|
|
};
|
||
|
|
};
|
||
|
|
};
|
||
|
|
};
|
||
|
|
return true;
|
||
|
|
};
|
||
|
|
|
||
|
|
function rctest(centerX,centerY,integer,chosenElement,createPixels=true,replacePixels=true,distanceScale=1,saturation=50,luminance=50) {
|
||
|
|
saturation = Math.max(0,Math.min(100,saturation))
|
||
|
|
luminance = Math.max(0,Math.min(100,luminance))
|
||
|
|
if(!elements[chosenElement]) {
|
||
|
|
alert("Element " + chosenElement + " doesn't exist!");
|
||
|
|
return false;
|
||
|
|
};
|
||
|
|
integer = Math.round(integer);
|
||
|
|
for(i = 1; i < width; i++) {
|
||
|
|
for(j = 1; j < height; j++) {
|
||
|
|
var distance = pyth(centerX,centerY,i,j);
|
||
|
|
if(Math.round(distance) % integer == 0) {
|
||
|
|
if(isEmpty(i,j,false) && createPixels) {
|
||
|
|
createPixel(chosenElement,i,j);
|
||
|
|
var distancePrevariable = Math.round(distance * distanceScale) % 360
|
||
|
|
pixelMap[i][j].color = `hsl(${distancePrevariable},${saturation}%,${luminance}%)`;
|
||
|
|
} else if(!isEmpty(i,j,true) && !outOfBounds(i,j) && replacePixels) {
|
||
|
|
changePixel(pixelMap[i][j],chosenElement);
|
||
|
|
var distancePrevariable = Math.round(distance * distanceScale) % 360
|
||
|
|
pixelMap[i][j].color = `hsl(${distancePrevariable},${saturation}%,${luminance}%)`;
|
||
|
|
};
|
||
|
|
};
|
||
|
|
};
|
||
|
|
};
|
||
|
|
return true;
|
||
|
|
};
|
||
|
|
|
||
|
|
elements.hsl_tool_test = { //with help from ryan
|
||
|
|
color: ["#cf3030","cf7f30","#cfcf30"],
|
||
|
|
tool: function(pixel) {
|
||
|
|
pixel.color = "hsl("+(pixelTicks%360)+",50%,50%)"
|
||
|
|
},
|
||
|
|
customColor: true,
|
||
|
|
category: "color tools", //the toolbar is getting cluttered
|
||
|
|
excludeRandom: true, //the toolbar is getting cluttered
|
||
|
|
};
|
||
|
|
|
||
|
|
elements.temporal_wall_test = {
|
||
|
|
color: ["#8f8f8f","3f3f3f"],
|
||
|
|
behavior: behaviors.WALL,
|
||
|
|
properties: {
|
||
|
|
counter: 1,
|
||
|
|
active: true,
|
||
|
|
},
|
||
|
|
tick: function(pixel) {
|
||
|
|
for(i = 0; i < 1; i++) { //dummy for
|
||
|
|
if(!pixel) {
|
||
|
|
break;
|
||
|
|
};
|
||
|
|
if(pixel.active) {
|
||
|
|
if(pixel.counter == width) {
|
||
|
|
pixel.active = false;
|
||
|
|
};
|
||
|
|
if(!isEmpty(pixel.counter,pixel.y) || outOfBounds(pixel.counter,pixel.y)) {
|
||
|
|
pixel.counter++;
|
||
|
|
} else {
|
||
|
|
createPixel("wall",pixel.counter,pixel.y);
|
||
|
|
pixel.counter++;
|
||
|
|
};
|
||
|
|
};
|
||
|
|
};
|
||
|
|
},
|
||
|
|
state: "solid",
|
||
|
|
density: 1000,
|
||
|
|
category: "special",
|
||
|
|
};
|