add more stuff
This commit is contained in:
parent
009ca8a323
commit
ed3ec4e051
|
|
@ -19,9 +19,24 @@ let fireColor = [255, 69, 0];
|
||||||
let plasmaColor = [160, 69, 255];
|
let plasmaColor = [160, 69, 255];
|
||||||
let coldFireColor = [0, 191, 255];
|
let coldFireColor = [0, 191, 255];
|
||||||
let magmaColor = [255, 140, 0];
|
let magmaColor = [255, 140, 0];
|
||||||
let fireFlyColors = [[180, 255, 70], scaleList([180, 255, 70], 0.75), scaleList([180, 255, 70], 0.5), scaleList([180, 255, 70], 0.25)];
|
let fireflyColor = [240, 255, 70];
|
||||||
let radColor = [75, 100, 30];
|
let radColor = [75, 100, 30];
|
||||||
let neonColor = [255*2, 60*2, 10*2];
|
let neonColor = [255*2, 60*2, 10*2];
|
||||||
|
let strangeMatterColor = [220*0.3, 255*0.3, 210*0.3];
|
||||||
|
let sparkColors = [[255, 210, 120], [255, 140, 10]];
|
||||||
|
|
||||||
|
function rgbToArray(rgbString) {
|
||||||
|
// Remove "rgb(" and ")" from the string and split by comma
|
||||||
|
let values = rgbString.slice(4, -1).split(',');
|
||||||
|
|
||||||
|
// Convert each value from string to number
|
||||||
|
let r = parseInt(values[0].trim());
|
||||||
|
let g = parseInt(values[1].trim());
|
||||||
|
let b = parseInt(values[2].trim());
|
||||||
|
|
||||||
|
// Return the array of RGB values
|
||||||
|
return [r, g, b];
|
||||||
|
}
|
||||||
|
|
||||||
function scaleList(numbers, scale) {
|
function scaleList(numbers, scale) {
|
||||||
return numbers.map(number => number * scale);
|
return numbers.map(number => number * scale);
|
||||||
|
|
@ -170,7 +185,7 @@ function renderLightmap() {
|
||||||
elements.sun.tick = function(pixel) {
|
elements.sun.tick = function(pixel) {
|
||||||
let x = Math.floor(pixel.x / lightmapScale);
|
let x = Math.floor(pixel.x / lightmapScale);
|
||||||
let y = Math.floor(pixel.y / lightmapScale);
|
let y = Math.floor(pixel.y / lightmapScale);
|
||||||
lightmap[y][x] = { color: sunColor };
|
lightmap[y][x] = { color: rgbToArray(pixel.color) };
|
||||||
};
|
};
|
||||||
|
|
||||||
let originalLightTick = elements.light.tick;
|
let originalLightTick = elements.light.tick;
|
||||||
|
|
@ -178,7 +193,7 @@ elements.light.tick = function(pixel) {
|
||||||
originalLightTick(pixel);
|
originalLightTick(pixel);
|
||||||
let x = Math.floor(pixel.x / lightmapScale);
|
let x = Math.floor(pixel.x / lightmapScale);
|
||||||
let y = Math.floor(pixel.y / lightmapScale);
|
let y = Math.floor(pixel.y / lightmapScale);
|
||||||
lightmap[y][x] = { color: lightColor };
|
lightmap[y][x] = { color: rgbToArray(pixel.color) };
|
||||||
};
|
};
|
||||||
|
|
||||||
let originalLiquidLightTick = elements.liquid_light.tick;
|
let originalLiquidLightTick = elements.liquid_light.tick;
|
||||||
|
|
@ -186,7 +201,7 @@ elements.liquid_light.tick = function(pixel) {
|
||||||
originalLiquidLightTick(pixel);
|
originalLiquidLightTick(pixel);
|
||||||
let x = Math.floor(pixel.x / lightmapScale);
|
let x = Math.floor(pixel.x / lightmapScale);
|
||||||
let y = Math.floor(pixel.y / lightmapScale);
|
let y = Math.floor(pixel.y / lightmapScale);
|
||||||
lightmap[y][x] = { color: lightColor };
|
lightmap[y][x] = { color: rgbToArray(pixel.color) };
|
||||||
};
|
};
|
||||||
|
|
||||||
elements.magma.tick = function(pixel) {
|
elements.magma.tick = function(pixel) {
|
||||||
|
|
@ -199,7 +214,7 @@ elements.neon.tick = function(pixel) {
|
||||||
if (!pixel.charge || pixel.charge <= 0) {return;}
|
if (!pixel.charge || pixel.charge <= 0) {return;}
|
||||||
let x = Math.floor(pixel.x / lightmapScale);
|
let x = Math.floor(pixel.x / lightmapScale);
|
||||||
let y = Math.floor(pixel.y / lightmapScale);
|
let y = Math.floor(pixel.y / lightmapScale);
|
||||||
lightmap[y][x] = { color: neonColor };
|
lightmap[y][x] = { color: rgbToArray(pixel.color) };
|
||||||
};
|
};
|
||||||
|
|
||||||
elements.light_bulb.behaviorOn = null
|
elements.light_bulb.behaviorOn = null
|
||||||
|
|
@ -208,7 +223,7 @@ elements.light_bulb.tick = function(pixel) {
|
||||||
if (pixel.lightIntensity > 0) {
|
if (pixel.lightIntensity > 0) {
|
||||||
let x = Math.floor(pixel.x / lightmapScale);
|
let x = Math.floor(pixel.x / lightmapScale);
|
||||||
let y = Math.floor(pixel.y / lightmapScale);
|
let y = Math.floor(pixel.y / lightmapScale);
|
||||||
lightmap[y][x] = { color: lampColor };
|
lightmap[y][x] = { color: rgbToArray(pixel.color) };
|
||||||
}
|
}
|
||||||
pixel.lightIntensity -= 1;
|
pixel.lightIntensity -= 1;
|
||||||
};
|
};
|
||||||
|
|
@ -218,7 +233,7 @@ elements.led_r.tick = function(pixel) {
|
||||||
if (pixel.lightIntensity > 0) {
|
if (pixel.lightIntensity > 0) {
|
||||||
let x = Math.floor(pixel.x / lightmapScale);
|
let x = Math.floor(pixel.x / lightmapScale);
|
||||||
let y = Math.floor(pixel.y / lightmapScale);
|
let y = Math.floor(pixel.y / lightmapScale);
|
||||||
lightmap[y][x] = { color: ledRColor };
|
lightmap[y][x] = { color: rgbToArray(pixel.color) };
|
||||||
}
|
}
|
||||||
pixel.lightIntensity -= 1;
|
pixel.lightIntensity -= 1;
|
||||||
};
|
};
|
||||||
|
|
@ -228,7 +243,7 @@ elements.led_g.tick = function(pixel) {
|
||||||
if (pixel.lightIntensity > 0) {
|
if (pixel.lightIntensity > 0) {
|
||||||
let x = Math.floor(pixel.x / lightmapScale);
|
let x = Math.floor(pixel.x / lightmapScale);
|
||||||
let y = Math.floor(pixel.y / lightmapScale);
|
let y = Math.floor(pixel.y / lightmapScale);
|
||||||
lightmap[y][x] = { color: ledGColor };
|
lightmap[y][x] = { color: rgbToArray(pixel.color) };
|
||||||
}
|
}
|
||||||
pixel.lightIntensity -= 1;
|
pixel.lightIntensity -= 1;
|
||||||
};
|
};
|
||||||
|
|
@ -238,7 +253,7 @@ elements.led_b.tick = function(pixel) {
|
||||||
if (pixel.lightIntensity > 0) {
|
if (pixel.lightIntensity > 0) {
|
||||||
let x = Math.floor(pixel.x / lightmapScale);
|
let x = Math.floor(pixel.x / lightmapScale);
|
||||||
let y = Math.floor(pixel.y / lightmapScale);
|
let y = Math.floor(pixel.y / lightmapScale);
|
||||||
lightmap[y][x] = { color: ledBColor };
|
lightmap[y][x] = { color: rgbToArray(pixel.color) };
|
||||||
}
|
}
|
||||||
pixel.lightIntensity -= 1;
|
pixel.lightIntensity -= 1;
|
||||||
};
|
};
|
||||||
|
|
@ -248,7 +263,7 @@ elements.laser.tick = function(pixel) {
|
||||||
originalLaserTick(pixel);
|
originalLaserTick(pixel);
|
||||||
let x = Math.floor(pixel.x / lightmapScale);
|
let x = Math.floor(pixel.x / lightmapScale);
|
||||||
let y = Math.floor(pixel.y / lightmapScale);
|
let y = Math.floor(pixel.y / lightmapScale);
|
||||||
lightmap[y][x] = { color: laserColor };
|
lightmap[y][x] = { color: rgbToArray(pixel.color) };
|
||||||
};
|
};
|
||||||
|
|
||||||
let originalFireTick2 = elements.fire.tick;
|
let originalFireTick2 = elements.fire.tick;
|
||||||
|
|
@ -265,28 +280,47 @@ elements.cold_fire.tick = function(pixel) {
|
||||||
lightmap[y][x] = { color: coldFireColor };
|
lightmap[y][x] = { color: coldFireColor };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let originalRainbowTick = elements.rainbow.tick;
|
||||||
|
elements.rainbow.tick = function(pixel) {
|
||||||
|
originalRainbowTick(pixel);
|
||||||
|
let x = Math.floor(pixel.x / lightmapScale);
|
||||||
|
let y = Math.floor(pixel.y / lightmapScale);
|
||||||
|
lightmap[y][x] = { color: rgbToArray(pixel.color) };
|
||||||
|
};
|
||||||
|
|
||||||
elements.plasma.tick = function(pixel) {
|
elements.plasma.tick = function(pixel) {
|
||||||
let x = Math.floor(pixel.x / lightmapScale);
|
let x = Math.floor(pixel.x / lightmapScale);
|
||||||
let y = Math.floor(pixel.y / lightmapScale);
|
let y = Math.floor(pixel.y / lightmapScale);
|
||||||
lightmap[y][x] = { color: plasmaColor };
|
lightmap[y][x] = { color: rgbToArray(pixel.color) };
|
||||||
};
|
};
|
||||||
|
|
||||||
let originalFireflyTick = elements.firefly.tick;
|
let originalFireflyTick = elements.firefly.tick;
|
||||||
|
|
||||||
elements.firefly.tick = function(pixel) {
|
elements.firefly.tick = function(pixel) {
|
||||||
originalFireflyTick(pixel);
|
originalFireflyTick(pixel);
|
||||||
|
|
||||||
let x = Math.floor(pixel.x / lightmapScale);
|
let x = Math.floor(pixel.x / lightmapScale);
|
||||||
let y = Math.floor(pixel.y / lightmapScale);
|
let y = Math.floor(pixel.y / lightmapScale);
|
||||||
|
|
||||||
let col = undefined;
|
let num;
|
||||||
if (pixelTicks % pixel.fff <= 5) { col = fireFlyColors[3]; }
|
let tickMod = pixelTicks % pixel.fff;
|
||||||
if (pixelTicks % pixel.fff <= 4) { col = fireFlyColors[2]; }
|
|
||||||
if (pixelTicks % pixel.fff <= 3) { col = fireFlyColors[1]; }
|
if (tickMod <= 2) {
|
||||||
if (pixelTicks % pixel.fff <= 2) { col = fireFlyColors[0]; }
|
num = 1;
|
||||||
if (col) {
|
} else if (tickMod <= 3) {
|
||||||
lightmap[y][x] = { color: col };
|
num = 0.75;
|
||||||
|
} else if (tickMod <= 4) {
|
||||||
|
num = 0.5;
|
||||||
|
} else if (tickMod <= 5) {
|
||||||
|
num = 0.25;
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lightmap[y][x] = { color: scaleList(fireflyColor, num) };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// Radioactive elements
|
// Radioactive elements
|
||||||
elements.uranium.tick = function(pixel) {
|
elements.uranium.tick = function(pixel) {
|
||||||
let x = Math.floor(pixel.x / lightmapScale);
|
let x = Math.floor(pixel.x / lightmapScale);
|
||||||
|
|
@ -336,6 +370,8 @@ elements.rad_steam.tick = function(pixel) {
|
||||||
lightmap[y][x] = { color: radColor };
|
lightmap[y][x] = { color: radColor };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// #keepTheGap
|
||||||
|
|
||||||
window.addEventListener('load', function() {
|
window.addEventListener('load', function() {
|
||||||
initializeLightmap(width, height);
|
initializeLightmap(width, height);
|
||||||
});
|
});
|
||||||
|
|
@ -356,10 +392,6 @@ doFrame = function() {
|
||||||
propagateLightmap();
|
propagateLightmap();
|
||||||
};
|
};
|
||||||
|
|
||||||
if (enabledMods.includes("mods/lightmap.js")) {
|
|
||||||
alert("Warning: both fast_lightmap.js and lightmap.js are active and it will not properly work");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (enabledMods.includes("mods/velocity.js")) {
|
if (enabledMods.includes("mods/velocity.js")) {
|
||||||
runAfterAutogen(()=>{
|
runAfterAutogen(()=>{
|
||||||
let originalDrawPixels = drawPixels;
|
let originalDrawPixels = drawPixels;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue