Update tech.js
Signed-off-by: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com>
This commit is contained in:
parent
2fab1b3082
commit
8acaee7af7
133
mods/tech.js
133
mods/tech.js
|
|
@ -98,6 +98,7 @@ elements.nvidia_cpu = {
|
||||||
"XX|SH|XX",
|
"XX|SH|XX",
|
||||||
],
|
],
|
||||||
category: "tech",
|
category: "tech",
|
||||||
|
temp: 25, // Starting temperature (room temperature in Celsius)
|
||||||
tempHigh: 1000, // Melting point for realism
|
tempHigh: 1000, // Melting point for realism
|
||||||
stateHigh: "molten_silicon", // Assuming it melts into molten silicon
|
stateHigh: "molten_silicon", // Assuming it melts into molten silicon
|
||||||
reactions: {
|
reactions: {
|
||||||
|
|
@ -106,11 +107,47 @@ elements.nvidia_cpu = {
|
||||||
"acid": { elem1: "corroded_cpu", elem2: "null" },
|
"acid": { elem1: "corroded_cpu", elem2: "null" },
|
||||||
"poison": { elem1: "corroded_cpu", elem2: "null" },
|
"poison": { elem1: "corroded_cpu", elem2: "null" },
|
||||||
},
|
},
|
||||||
breakInto: ["silicon", "metal_scrap"],
|
breakInto: ["silicon", "metal_fragments"],
|
||||||
conduct: 10, // Moderate conductivity
|
conduct: 10, // Moderate conductivity
|
||||||
density: 2330, // Density of silicon
|
density: 2330, // Density of silicon
|
||||||
|
tick: function(pixel) {
|
||||||
|
if (!pixel.heatTick) {
|
||||||
|
pixel.heatTick = 0;
|
||||||
|
}
|
||||||
|
pixel.heatTick++;
|
||||||
|
if (pixel.heatTick >= 300) { // 300 ticks ~ 5 seconds
|
||||||
|
pixel.temp += 2; // Increase temperature by 2 degrees Celsius
|
||||||
|
pixel.heatTick = 0; // Reset heatTick counter
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check for cooling fan nearby
|
||||||
|
let cooled = false;
|
||||||
|
for (let dx = -1; dx <= 1; dx++) {
|
||||||
|
for (let dy = -1; dy <= 1; dy++) {
|
||||||
|
if (dx === 0 && dy === 0) continue;
|
||||||
|
let neighbor = pixelMap[pixel.x + dx]?.[pixel.y + dy];
|
||||||
|
if (neighbor && neighbor.element === "spinning_cooler_fan") {
|
||||||
|
cooled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cooled) {
|
||||||
|
if (!pixel.coolTick) {
|
||||||
|
pixel.coolTick = 0;
|
||||||
|
}
|
||||||
|
pixel.coolTick++;
|
||||||
|
if (pixel.coolTick >= 300) { // 300 ticks ~ 5 seconds
|
||||||
|
pixel.temp -= 2; // Decrease temperature by 2 degrees Celsius
|
||||||
|
pixel.coolTick = 0; // Reset coolTick counter
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
pixel.coolTick = 0; // Reset coolTick counter if no cooler is nearby
|
||||||
|
}
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
elements.molten_silicon = {
|
elements.molten_silicon = {
|
||||||
color: "#ffcc99",
|
color: "#ffcc99",
|
||||||
behavior: behaviors.LIQUID,
|
behavior: behaviors.LIQUID,
|
||||||
|
|
@ -149,3 +186,97 @@ elements.silicon = {
|
||||||
density: 2330,
|
density: 2330,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
elements.glowing_rainbow_led = {
|
||||||
|
color: ["#FF0000", "#FF7F00", "#FFFF00", "#00FF00", "#0000FF", "#4B0082", "#8B00FF"], // Colors of the rainbow
|
||||||
|
behavior: [
|
||||||
|
"XX|XX|XX",
|
||||||
|
"XX|SH|XX",
|
||||||
|
"XX|XX|XX",
|
||||||
|
],
|
||||||
|
category: "tech",
|
||||||
|
state: "solid",
|
||||||
|
density: 300, // Arbitrary density for LED
|
||||||
|
tempHigh: 150, // Melting point for realism
|
||||||
|
stateHigh: "molten_plastic",
|
||||||
|
reactions: {
|
||||||
|
"water": { elem1: "short_circuit", elem2: "steam" },
|
||||||
|
"salt_water": { elem1: "short_circuit", elem2: "null" },
|
||||||
|
"acid": { elem1: "corroded_led", elem2: "null" },
|
||||||
|
"poison": { elem1: "corroded_led", elem2: "null" },
|
||||||
|
},
|
||||||
|
tick: function(pixel) {
|
||||||
|
// Function to cycle through colors
|
||||||
|
if (!pixel.colorIndex) {
|
||||||
|
pixel.colorIndex = 0; // Initialize color index
|
||||||
|
}
|
||||||
|
pixel.colorIndex = (pixel.colorIndex + 1) % elements.glowing_rainbow_led.color.length;
|
||||||
|
pixel.color = elements.glowing_rainbow_led.color[pixel.colorIndex];
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.corroded_led = {
|
||||||
|
color: "#707070",
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
category: "tech",
|
||||||
|
tempHigh: 800,
|
||||||
|
stateHigh: "ash",
|
||||||
|
conduct: 1,
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.spinning_cooler_fan = {
|
||||||
|
color: "#4a90e2", // Blue color for the fan
|
||||||
|
behavior: [
|
||||||
|
"XX|XX|XX",
|
||||||
|
"XX|XX|XX",
|
||||||
|
"XX|XX|XX",
|
||||||
|
],
|
||||||
|
category: "tech",
|
||||||
|
state: "solid",
|
||||||
|
density: 800, // Arbitrary density for the fan
|
||||||
|
tick: function(pixel) {
|
||||||
|
// Define movement pattern
|
||||||
|
if (!pixel.moveStep) {
|
||||||
|
pixel.moveStep = 0; // Initialize movement step
|
||||||
|
}
|
||||||
|
|
||||||
|
// Determine the current movement direction
|
||||||
|
let directions = [
|
||||||
|
{dx: 0, dy: -1}, // Move up
|
||||||
|
{dx: 1, dy: 0}, // Move right
|
||||||
|
{dx: 0, dy: 1}, // Move down
|
||||||
|
{dx: -1, dy: 0} // Move left
|
||||||
|
];
|
||||||
|
|
||||||
|
let move = directions[pixel.moveStep];
|
||||||
|
|
||||||
|
// Attempt to move in the current direction
|
||||||
|
let newX = pixel.x + move.dx;
|
||||||
|
let newY = pixel.y + move.dy;
|
||||||
|
|
||||||
|
if (isEmpty(newX, newY)) {
|
||||||
|
// If the next position is empty, move there
|
||||||
|
movePixel(pixel, newX, newY);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Advance to the next step in the movement pattern
|
||||||
|
pixel.moveStep = (pixel.moveStep + 1) % directions.length;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
function isEmpty(x, y) {
|
||||||
|
// Check if the position (x, y) is empty
|
||||||
|
if (x >= 0 && y >= 0 && x < width && y < height) {
|
||||||
|
return !pixelMap[x][y];
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function movePixel(pixel, newX, newY) {
|
||||||
|
// Move the pixel to the new position
|
||||||
|
if (isEmpty(newX, newY)) {
|
||||||
|
pixelMap[pixel.x][pixel.y] = null; // Clear the current position
|
||||||
|
pixel.x = newX;
|
||||||
|
pixel.y = newY;
|
||||||
|
pixelMap[newX][newY] = pixel; // Set the new position
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue