sandboxels/mods/cursed_shader_by_jayd.js

83 lines
2.4 KiB
JavaScript

function shade(ctx, color, x1, y1, radius=3, opacity) {
var offsetCorrection = 0;
if (pixelSize === 8){
offsetCorrection = 4;
}
else if (pixelSize === 6){
offsetCorrection = 3;
}
else if (pixelSize === 4){
offsetCorrection = 2;
}
ctx.beginPath();
ctx.arc(x1*pixelSize+offsetCorrection, y1*pixelSize+offsetCorrection, radius*pixelSize, 0, 2 * Math.PI, false);
ctx.fillStyle = color;
ctx.globalAlpha = opacity;
ctx.fill();
}
elements.shader_test = {
color: "#FFFFFF",
category: "special",
renderer: function(pixel,ctx) {
shade(ctx, pixel.color, pixel.x, pixel.y, 3, 0.5)
}
}
elements.fire.renderer = function(pixel,ctx) {
shade(ctx, pixel.color, pixel.x, pixel.y, 3, 0.25)
}
elements.cold_fire.renderer = function(pixel,ctx) {
shade(ctx, pixel.color, pixel.x, pixel.y, 3, 0.25)
}
elements.light.renderer = function(pixel,ctx) {
shade(ctx, pixel.color, pixel.x, pixel.y, 2, 0.75)
}
elements.laser.renderer = function(pixel,ctx) {
shade(ctx, pixel.color, pixel.x, pixel.y, 2, 0.75)
}
elements.plasma.renderer = function(pixel,ctx) {
shade(ctx, pixel.color, pixel.x, pixel.y, 3, 0.5)
}
elements.electric.renderer = function(pixel,ctx) {
shade(ctx, pixel.color, pixel.x, pixel.y, 2, 0.25)
}
elements.heat_ray.renderer = function(pixel,ctx) {
shade(ctx, pixel.color, pixel.x, pixel.y, 3, 0.25)
}
elements.freeze_ray.renderer = function(pixel,ctx) {
shade(ctx, pixel.color, pixel.x, pixel.y, 3, 0.25)
}
elements.flash.renderer = function(pixel,ctx) {
shade(ctx, pixel.color, pixel.x, pixel.y, 3, 0.7)
}
elements.smoke.renderer = function(pixel,ctx) {
shade(ctx, pixel.color, pixel.x, pixel.y, 2, 0.25)
}
elements.radiation.renderer = function(pixel,ctx) {
shade(ctx, pixel.color, pixel.x, pixel.y, 2, 0.25)
}
elements.led_r.renderer = function(pixel,ctx) {
if (pixel.charge) {
shade(ctx, pixel.color, pixel.x, pixel.y, 3, 0.5)
}
else {
shade(ctx, pixel.color, pixel.x, pixel.y, 0, 1)
}
}
elements.led_g.renderer = function(pixel,ctx) {
if (pixel.charge) {
shade(ctx, pixel.color, pixel.x, pixel.y, 3, 0.5)
}
else {
shade(ctx, pixel.color, pixel.x, pixel.y, 0, 1)
}
}
elements.led_b.renderer = function(pixel,ctx) {
if (pixel.charge) {
shade(ctx, pixel.color, pixel.x, pixel.y, 3, 0.5)
}
else {
shade(ctx, pixel.color, pixel.x, pixel.y, 0, 1)
}
}