From 155a5ca0877b2d26ff911a683185fe7771eda49e Mon Sep 17 00:00:00 2001 From: Salmonfishyy <160120816+Salmonfishyy@users.noreply.github.com> Date: Sat, 3 Aug 2024 10:28:23 +0700 Subject: [PATCH 1/6] v1.10 Translate Update --- lang/vi.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lang/vi.json b/lang/vi.json index 8dd80cf2..4b1cf5d6 100644 --- a/lang/vi.json +++ b/lang/vi.json @@ -545,5 +545,9 @@ "kelp": "Tảo bẹ", "grinder": "Máy nghiền", "mixer": "Máy trộn", -"freeze_ray": "Tia làm lạnh" +"freeze_ray": "Tia làm lạnh", +"galvanized_steel": "Thép mạ kẽm", +"rice": "Gạo", +"midas_touch": "Bàn tay của Midas", +"liquid_ozone": "Ozone lỏng" } From b48b2e142a244d70072cb77b300683de8d195207 Mon Sep 17 00:00:00 2001 From: Salmonfishyy <160120816+Salmonfishyy@users.noreply.github.com> Date: Sat, 3 Aug 2024 10:35:33 +0700 Subject: [PATCH 2/6] v1.10 France Translate Update --- lang/fr.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lang/fr.json b/lang/fr.json index 81ee0256..835ae068 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -544,5 +544,9 @@ "grinder": "le broyeur", "cloth": "le tissu", "kelp": "varech", -"freeze_ray": "Ray gelée" +"freeze_ray": "Ray gelée", +"galvanized_steel": "Acier galvanisé", +"rice": "Le riz", +"midas_touch": "Touche de Midas", +"liquid_ozone": "Ozone liquide" } From 655942a208992adb86588143dcf47dcafeef7be5 Mon Sep 17 00:00:00 2001 From: Melecie <97272289+Melecie@users.noreply.github.com> Date: Sat, 3 Aug 2024 15:51:05 +0800 Subject: [PATCH 3/6] + Fallout makes Meat Rocket --- mods/meat_rockets.js | 70 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 mods/meat_rockets.js diff --git a/mods/meat_rockets.js b/mods/meat_rockets.js new file mode 100644 index 00000000..e79ccd4b --- /dev/null +++ b/mods/meat_rockets.js @@ -0,0 +1,70 @@ +// Meat Rockets 1.0 +// Author: Melecie + +meat_rocket_funcs = { + rocketCreator(rElem, rColor, rName) { + if (typeof(rName) == "undefined") { rName = rElem + "_rocket" } + + elements[rName] = { + color: rColor, + state: "solid", + behavior: behaviors.ITEM_ROCKET, + properties: { launching: false }, + rocketItem: rElem, + density: 1024, + hardness: 0.90, + burn: 100, + burnTime: 8192, + category: "special", + } + } +} + + +behaviors.ITEM_ROCKET = function(pixel) { + if (pixel.launching) { + pixel.burning = false; + + // launching rocket + let nextX = pixel.x + (pixel.flipX ? -1:1); + let nextY = pixel.y-1; + let rocketItem = elements[pixel.element].rocketItem; + + // flip, occasionally explode + if (Math.random() < 0.1) { + pixel.flipX = !pixel.flipX; + if (Math.random() < 0.05) { + explodeAt(pixel.x, pixel.y-1, 3, [rocketItem, "smoke"]); + } + } else if (Math.random() < 0.1) { + createPixel(pixel.x, pixel.y-1, "smoke") + } + + // movement code + if (outOfBounds(nextX, nextY)) { + explodeAt(pixel.x, pixel.y, 10, [rocketItem, "smoke", "smoke"]); + deletePixel(pixel.x, pixel.y); + } else if (canMove(pixel, nextX, nextY)) { + tryMove(pixel, nextX, nextY); + } else if ( elements[pixelMap[nextX][nextY].element].state == "gas" || pixelMap[nextX][nextY].element == rocketItem ) { + let otherPixel = pixelMap[nextX][nextY]; + swapPixels(pixel, otherPixel); + } else if ( pixelMap[nextX][nextY].element == pixel.element ) { + + } else { + explodeAt(pixel.x, pixel.y, 10, [rocketItem, "smoke", "smoke"]); + deletePixel(pixel.x, pixel.y); + } + } else { + // hasn't started yet + behaviors.POWDER(pixel); + if (pixel.burning == true) { + pixel.launching = true; + } + } + + doDefaults(pixel); +} + +meat_rocket_funcs.rocketCreator("meat", ["#d36e7d", "#a85c4b"]) +elements.meat.reactions.fallout = { elem1: "meat_rocket", chance: 0.2 } \ No newline at end of file From 3cb5fd1f3f0f61fc8dcf412572fcda76c8033faa Mon Sep 17 00:00:00 2001 From: Melecie <97272289+Melecie@users.noreply.github.com> Date: Sat, 3 Aug 2024 15:55:09 +0800 Subject: [PATCH 4/6] meat rocket mod: should also update this --- mod-list.html | 1 + 1 file changed, 1 insertion(+) diff --git a/mod-list.html b/mod-list.html index cbc7784f..1878a711 100644 --- a/mod-list.html +++ b/mod-list.html @@ -241,6 +241,7 @@ icb.jsAdds various levels of nested cluster bombsAlice life_eater.jsAdds Warhammer 40,000’s Life-Eater Virus and Virus BombsAlice liquid_void.jsAdds a liquid variant of VoidAlice +meat_rockets.jsAdds rockets that create meat when explodingMelecie more_breaking.jsAllows for breaking more elements in explosionsAlice rays.jsAdds more Ray typesAlice rays++.jsAdds a couple more raysuptzik From 4effb6b08d490372764d57bdcd2434cebbcc83f0 Mon Sep 17 00:00:00 2001 From: redbirdly <155550833+redbirdly@users.noreply.github.com> Date: Sat, 3 Aug 2024 17:17:50 +0800 Subject: [PATCH 5/6] Update fast_lightmap.js --- mods/fast_lightmap.js | 88 ++++++++++++++++--------------------------- 1 file changed, 32 insertions(+), 56 deletions(-) diff --git a/mods/fast_lightmap.js b/mods/fast_lightmap.js index 34c7ab3a..bd7a1f0d 100644 --- a/mods/fast_lightmap.js +++ b/mods/fast_lightmap.js @@ -5,6 +5,7 @@ var lightmap = []; var nextLightmap = []; var lightmapWidth, lightmapHeight; var lightmapScale = 3; +var lightSourceBoost = 2; var pixelSizeQuarter = pixelSizeHalf / 2; var falloff = 0.7; @@ -167,49 +168,54 @@ function hsvToRgb(h, s, v) { return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)]; } -function renderLightmap() { - if (!canvas) return; - if (!lightmap || !lightmap[0]) return; +function renderLightmapPrePixel(ctx) { + if (!lightmap || !lightmap[0]) return; - var context = canvas.getContext('2d'); - var _width = lightmap[0].length; - var _height = lightmap.length; + var _width = lightmap[0].length; + var _height = lightmap.length; - for (var y = 0; y < _height; y++) { - for (var x = 0; x < _width; x++) { - var { color } = lightmap[y][x]; - var [r, g, b] = color; + for (var y = 0; y < _height; y++) { + for (var x = 0; x < _width; x++) { + var { color } = lightmap[y][x]; + var [r, g, b] = color; - if (r > 16 || g > 16 || b > 16) { - var [h, s, v] = rgbToHsv(r, g, b); - var newColor = hsvToRgb(h, s, 1); - var alpha = v; + if (r > 16 || g > 16 || b > 16) { + var [h, s, v] = rgbToHsv(r, g, b); + var newColor = hsvToRgb(h, s, 1); + var alpha = v; - context.fillStyle = `rgba(${newColor[0]}, ${newColor[1]}, ${newColor[2]}, ${alpha * 0.4})`; - context.fillRect( + ctx.fillStyle = `rgba(${newColor[0]}, ${newColor[1]}, ${newColor[2]}, ${alpha * 0.4})`; + ctx.fillRect( x * pixelSize * lightmapScale, y * pixelSize * lightmapScale, pixelSize * lightmapScale, pixelSize * lightmapScale ); - context.fillStyle = `rgba(${newColor[0]}, ${newColor[1]}, ${newColor[2]}, ${alpha * 0.25})`; - context.fillRect( + ctx.fillStyle = `rgba(${newColor[0]}, ${newColor[1]}, ${newColor[2]}, ${alpha * 0.25})`; + ctx.fillRect( (x * pixelSize - pixelSizeHalf) * lightmapScale, (y * pixelSize - pixelSizeHalf) * lightmapScale, pixelSize * lightmapScale * 2, pixelSize * lightmapScale * 2 ); - } - } - } + } + } + } } +// Register the function to run before each pixel is rendered +renderPrePixel(function(ctx) { + if (!paused) {propagateLightmap();} + renderLightmapPrePixel(ctx); +}); + + function glowItsOwnColor(pixel) { if (!pixel.color) {return;} var x = Math.floor(pixel.x / lightmapScale); var y = Math.floor(pixel.y / lightmapScale); - lightmap[y][x] = { color: rgbToArray(pixel.color) }; + lightmap[y][x] = { color: scaleList(rgbToArray(pixel.color), lightSourceBoost) }; } function glowItsOwnColorIfPowered(pixel) { @@ -217,23 +223,22 @@ function glowItsOwnColorIfPowered(pixel) { if (!pixel.color) return; var x = Math.floor(pixel.x / lightmapScale); var y = Math.floor(pixel.y / lightmapScale); - lightmap[y][x] = { color: rgbToArray(pixel.color) }; + lightmap[y][x] = { color: scaleList(rgbToArray(pixel.color), lightSourceBoost) }; } function glowColor(pixel, color) { if (!color) {return;} var x = Math.floor(pixel.x / lightmapScale); var y = Math.floor(pixel.y / lightmapScale); - lightmap[y][x] = { color: color }; + lightmap[y][x] = { color: scaleList(color, lightSourceBoost) }; } function glowRadiationColor(pixel) { var x = Math.floor(pixel.x / lightmapScale); var y = Math.floor(pixel.y / lightmapScale); - lightmap[y][x] = { color: radColor }; + lightmap[y][x] = { color: scaleList(radColor, lightSourceBoost) }; } - // Define element tick functions var originalStrangeMatterTick = elements.strange_matter.tick; elements.strange_matter.tick = function(pixel) { @@ -309,7 +314,7 @@ elements.magma.tick = glowItsOwnColor; elements.plasma.tick = glowItsOwnColor; elements.fw_ember.tick = glowItsOwnColor; -elements.cold_fire.tick = pixel => glowColor(pixel, coldFireColor); +elements.cold_fire.tick = glowItsOwnColor; // Radioactive elements var radioactiveElements = [ @@ -329,32 +334,3 @@ window.addEventListener('load', () => { initializeLightmap(width, height); }; }); - -var originalTick = tick; -tick = function() { - originalTick(); - if (!paused) propagateLightmap(); -}; -resetInterval(tps); - -var originalDoFrame = doFrame; -doFrame = function() { - originalDoFrame(); - propagateLightmap(); -}; - -if (enabledMods.includes("mods/velocity.js")) { - runAfterAutogen(() => { - var originalDrawPixels = drawPixels; - drawPixels = function(forceTick = false) { - originalDrawPixels(forceTick); - renderLightmap(); - }; - }); -} else { - var originalDrawPixels = drawPixels; - drawPixels = function(forceTick = false) { - originalDrawPixels(forceTick); - renderLightmap(); - }; -} From b3662f6fdd3bd218afc90302749c64f13af530e7 Mon Sep 17 00:00:00 2001 From: redbirdly <155550833+redbirdly@users.noreply.github.com> Date: Sat, 3 Aug 2024 17:18:21 +0800 Subject: [PATCH 6/6] Update lightmap.js --- mods/lightmap.js | 88 ++++++++++++++++++------------------------------ 1 file changed, 32 insertions(+), 56 deletions(-) diff --git a/mods/lightmap.js b/mods/lightmap.js index e1d4272c..85d929b5 100644 --- a/mods/lightmap.js +++ b/mods/lightmap.js @@ -5,6 +5,7 @@ var lightmap = []; var nextLightmap = []; var lightmapWidth, lightmapHeight; var lightmapScale = 2; +var lightSourceBoost = 2; var pixelSizeQuarter = pixelSizeHalf / 2; var falloff = 0.8; @@ -167,49 +168,54 @@ function hsvToRgb(h, s, v) { return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)]; } -function renderLightmap() { - if (!canvas) return; - if (!lightmap || !lightmap[0]) return; +function renderLightmapPrePixel(ctx) { + if (!lightmap || !lightmap[0]) return; - var context = canvas.getContext('2d'); - var _width = lightmap[0].length; - var _height = lightmap.length; + var _width = lightmap[0].length; + var _height = lightmap.length; - for (var y = 0; y < _height; y++) { - for (var x = 0; x < _width; x++) { - var { color } = lightmap[y][x]; - var [r, g, b] = color; + for (var y = 0; y < _height; y++) { + for (var x = 0; x < _width; x++) { + var { color } = lightmap[y][x]; + var [r, g, b] = color; - if (r > 16 || g > 16 || b > 16) { - var [h, s, v] = rgbToHsv(r, g, b); - var newColor = hsvToRgb(h, s, 1); - var alpha = v; + if (r > 16 || g > 16 || b > 16) { + var [h, s, v] = rgbToHsv(r, g, b); + var newColor = hsvToRgb(h, s, 1); + var alpha = v; - context.fillStyle = `rgba(${newColor[0]}, ${newColor[1]}, ${newColor[2]}, ${alpha * 0.4})`; - context.fillRect( + ctx.fillStyle = `rgba(${newColor[0]}, ${newColor[1]}, ${newColor[2]}, ${alpha * 0.4})`; + ctx.fillRect( x * pixelSize * lightmapScale, y * pixelSize * lightmapScale, pixelSize * lightmapScale, pixelSize * lightmapScale ); - context.fillStyle = `rgba(${newColor[0]}, ${newColor[1]}, ${newColor[2]}, ${alpha * 0.25})`; - context.fillRect( + ctx.fillStyle = `rgba(${newColor[0]}, ${newColor[1]}, ${newColor[2]}, ${alpha * 0.25})`; + ctx.fillRect( (x * pixelSize - pixelSizeHalf) * lightmapScale, (y * pixelSize - pixelSizeHalf) * lightmapScale, pixelSize * lightmapScale * 2, pixelSize * lightmapScale * 2 ); - } - } - } + } + } + } } +// Register the function to run before each pixel is rendered +renderPrePixel(function(ctx) { + if (!paused) {propagateLightmap();} + renderLightmapPrePixel(ctx); +}); + + function glowItsOwnColor(pixel) { if (!pixel.color) {return;} var x = Math.floor(pixel.x / lightmapScale); var y = Math.floor(pixel.y / lightmapScale); - lightmap[y][x] = { color: rgbToArray(pixel.color) }; + lightmap[y][x] = { color: scaleList(rgbToArray(pixel.color), lightSourceBoost) }; } function glowItsOwnColorIfPowered(pixel) { @@ -217,23 +223,22 @@ function glowItsOwnColorIfPowered(pixel) { if (!pixel.color) return; var x = Math.floor(pixel.x / lightmapScale); var y = Math.floor(pixel.y / lightmapScale); - lightmap[y][x] = { color: rgbToArray(pixel.color) }; + lightmap[y][x] = { color: scaleList(rgbToArray(pixel.color), lightSourceBoost) }; } function glowColor(pixel, color) { if (!color) {return;} var x = Math.floor(pixel.x / lightmapScale); var y = Math.floor(pixel.y / lightmapScale); - lightmap[y][x] = { color: color }; + lightmap[y][x] = { color: scaleList(color, lightSourceBoost) }; } function glowRadiationColor(pixel) { var x = Math.floor(pixel.x / lightmapScale); var y = Math.floor(pixel.y / lightmapScale); - lightmap[y][x] = { color: radColor }; + lightmap[y][x] = { color: scaleList(radColor, lightSourceBoost) }; } - // Define element tick functions var originalStrangeMatterTick = elements.strange_matter.tick; elements.strange_matter.tick = function(pixel) { @@ -309,7 +314,7 @@ elements.magma.tick = glowItsOwnColor; elements.plasma.tick = glowItsOwnColor; elements.fw_ember.tick = glowItsOwnColor; -elements.cold_fire.tick = pixel => glowColor(pixel, coldFireColor); +elements.cold_fire.tick = glowItsOwnColor; // Radioactive elements var radioactiveElements = [ @@ -329,32 +334,3 @@ window.addEventListener('load', () => { initializeLightmap(width, height); }; }); - -var originalTick = tick; -tick = function() { - originalTick(); - if (!paused) propagateLightmap(); -}; -resetInterval(tps); - -var originalDoFrame = doFrame; -doFrame = function() { - originalDoFrame(); - propagateLightmap(); -}; - -if (enabledMods.includes("mods/velocity.js")) { - runAfterAutogen(() => { - var originalDrawPixels = drawPixels; - drawPixels = function(forceTick = false) { - originalDrawPixels(forceTick); - renderLightmap(); - }; - }); -} else { - var originalDrawPixels = drawPixels; - drawPixels = function(forceTick = false) { - originalDrawPixels(forceTick); - renderLightmap(); - }; -}