Update mod.js

This commit is contained in:
commodore 2026-03-11 10:03:52 -04:00
parent b2e2cd2316
commit 16c3e22e88
1 changed files with 9 additions and 12 deletions

21
mod.js
View File

@ -2,14 +2,14 @@
elements.delay_gate = { elements.delay_gate = {
color: "#8B4513", color: "#8B4513",
behavior: behaviors.wall, // Fixed: lowercase 'wall' behavior: behaviors.wall,
category: "machines", category: "machines",
state: "solid", state: "solid",
conduct: 1, // Added: allows receiving power conduct: 1,
properties: { properties: {
delay: 30, // Delay in ticks delay: 30,
timer: 0, // Current countdown timer: 0,
powered: false // Is receiving power from below? powered: false
}, },
tick: function(pixel) { tick: function(pixel) {
// Initialize properties // Initialize properties
@ -28,22 +28,20 @@ elements.delay_gate = {
// Left side = decrease delay (minimum 5) // Left side = decrease delay (minimum 5)
if (left && (left.charge || left.chargeCD) && pixel.delay > 5) { if (left && (left.charge || left.chargeCD) && pixel.delay > 5) {
pixel.delay--; pixel.delay--;
pixel.color = "#A0522D"; // Flash lighter pixel.color = "#A0522D";
} }
// Right side = increase delay (maximum 300) // Right side = increase delay (maximum 300)
else if (right && (right.charge || right.chargeCD) && pixel.delay < 300) { else if (right && (right.charge || right.chargeCD) && pixel.delay < 300) {
pixel.delay++; pixel.delay++;
pixel.color = "#654321"; // Flash darker pixel.color = "#654321";
} }
else if (!receivingPower || pixel.timer >= pixel.delay) { else if (!receivingPower || pixel.timer >= pixel.delay) {
// Reset color when not adjusting
pixel.color = "#8B4513"; pixel.color = "#8B4513";
} }
// Main delay logic // Main delay logic
if (receivingPower) { if (receivingPower) {
if (!pixel.powered) { if (!pixel.powered) {
// Just started receiving power
pixel.powered = true; pixel.powered = true;
pixel.timer = 0; pixel.timer = 0;
} }
@ -54,7 +52,7 @@ elements.delay_gate = {
if (pixel.timer < pixel.delay) { if (pixel.timer < pixel.delay) {
let progress = pixel.timer / pixel.delay; let progress = pixel.timer / pixel.delay;
let r = Math.floor(139 + (100 * progress)); let r = Math.floor(139 + (100 * progress));
pixel.color = `rgb(${r}, 69, 19)`; pixel.color = "rgb(" + r + ", 69, 19)";
} }
// Output when delay reached // Output when delay reached
@ -64,10 +62,9 @@ elements.delay_gate = {
above.charge = 1; above.charge = 1;
above.chargeCD = 5; above.chargeCD = 5;
} }
pixel.color = "#FFD700"; // Gold = outputting pixel.color = "#FFD700";
} }
} else { } else {
// Lost power, reset
pixel.powered = false; pixel.powered = false;
pixel.timer = 0; pixel.timer = 0;
} }