Update mod.js
This commit is contained in:
parent
b2e2cd2316
commit
16c3e22e88
21
mod.js
21
mod.js
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue