commit
992315cd45
|
|
@ -0,0 +1,45 @@
|
|||
function drawHexagon(ctx, color, x, y, scale=1, opacity=1) {
|
||||
const size = (pixelSize * scale) * 0.63;
|
||||
const height = Math.sqrt(3) * size; // Height of the hexagon
|
||||
|
||||
if (color) { ctx.fillStyle = color; }
|
||||
if (ctx.globalAlpha !== opacity) { ctx.globalAlpha = opacity; }
|
||||
|
||||
// Convert canvas coordinates
|
||||
const centerX = canvasCoord(x);
|
||||
const centerY = canvasCoord(y);
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(centerX + size, centerY);
|
||||
ctx.lineTo(centerX + size / 2, centerY + height / 2);
|
||||
ctx.lineTo(centerX - size / 2, centerY + height / 2);
|
||||
ctx.lineTo(centerX - size, centerY);
|
||||
ctx.lineTo(centerX - size / 2, centerY - height / 2);
|
||||
ctx.lineTo(centerX + size / 2, centerY - height / 2);
|
||||
ctx.closePath();
|
||||
|
||||
ctx.fill();
|
||||
}
|
||||
|
||||
// Hexagon view
|
||||
viewInfo[8] = {
|
||||
name: "",
|
||||
effects: true,
|
||||
colorEffects: true,
|
||||
pixel: function(pixel, ctx) {
|
||||
var a = (settings.textures !== 0) ? pixel.alpha : undefined;
|
||||
const offsetY = ((pixel.x % 2) * 0.5); // Offset for staggered rows
|
||||
|
||||
if (((elements[pixel.element].isGas && elements[pixel.element].glow !== false) || elements[pixel.element].glow || pixel.glow) && pixel.glow !== false) {
|
||||
drawPlus(ctx, pixel.color, pixel.x, pixel.y + offsetY, undefined, a);
|
||||
} else {
|
||||
drawHexagon(ctx, pixel.color, pixel.x, pixel.y + offsetY, undefined, a);
|
||||
}
|
||||
|
||||
if (pixel.charge && view !== 2) { // Yellow glow on charge
|
||||
if (!elements[pixel.element].colorOn) {
|
||||
drawHexagon(ctx, "rgba(255,255,0,0.5)", pixel.x, pixel.y + offsetY);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
Loading…
Reference in New Issue