From a1e544520c0ad0358d4a0f5c3d4b72b03b8c9072 Mon Sep 17 00:00:00 2001 From: JustAGenericUsername Date: Fri, 26 Apr 2024 18:22:38 -0400 Subject: [PATCH 1/3] quick fixes --- mods/10kelements.js | 8 ++++---- mods/nousersthings.js | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/mods/10kelements.js b/mods/10kelements.js index f60a6e13..957d4088 100644 --- a/mods/10kelements.js +++ b/mods/10kelements.js @@ -38,8 +38,8 @@ var randomProperty = function (obj) { if (Math.abs(settings.randomcount) == settings.randomcount){ if (!settings.skineasteregg){ for (var i = 1; i <= settings.randomcount; i++){ - var f = Math.random() < 0.2 - var co = Math.random() < 0.2 + var canHeat = Math.random() < 0.2 + var canCold = Math.random() < 0.2 elements["element_"+i] = { color: "#" + color[Math.floor(Math.random()*color.length)] + color[Math.floor(Math.random()*color.length)] + color[Math.floor(Math.random()*color.length)] + color[Math.floor(Math.random()*color.length)] + color[Math.floor(Math.random()*color.length)] + color[Math.floor(Math.random()*color.length)], category: "random", @@ -49,11 +49,11 @@ if (Math.abs(settings.randomcount) == settings.randomcount){ density: randomIntFromInterval(1, 10000) } total = i - if (f){ + if (canHeat){ elements["element_"+i].tempHigh = 20 + randomIntFromInterval(10, 6000) elements["element_"+i].stateHigh = elementslist[Math.floor(Math.random()*elementslist.length)] } - if (co){ + if (canCold){ elements["element_"+i].tempLow = 20 - randomIntFromInterval(10, 270) elements["element_"+i].stateLow = elementslist[Math.floor(Math.random()*elementslist.length)] } diff --git a/mods/nousersthings.js b/mods/nousersthings.js index 59e7028e..524b532e 100644 --- a/mods/nousersthings.js +++ b/mods/nousersthings.js @@ -1798,6 +1798,7 @@ elements.invisiblewall = { category: "solids", movable: false, noMix: true, + hardness: 1, }, elements.bismuth = { color: ["#818181","#989898","#b0b0b0","#c9c9c9"], From 1a8d5238308ab57ae015d2be783a043bd6033d63 Mon Sep 17 00:00:00 2001 From: JustAGenericUsername <92590792+JustAGenericUsername@users.noreply.github.com> Date: Sun, 28 Apr 2024 19:29:02 -0400 Subject: [PATCH 2/3] buildingreplicator.js --- mod-list.html | 1 + mods/buildingreplicator.js | 213 +++++++++++++++++++++++++++++++++++++ 2 files changed, 214 insertions(+) create mode 100644 mods/buildingreplicator.js diff --git a/mod-list.html b/mod-list.html index f07335c9..4c575eff 100644 --- a/mod-list.html +++ b/mod-list.html @@ -122,6 +122,7 @@ betterModManager.jsImprovements to the Mod Managerggod betterSettings.jsAdds additional settings and functionalityggod betterStats.jsSeparate “real” and “set” TPS, meaning you can see what the TPS actually is, instead of only seeing what it’s set tomollthecoder +buildingreplicator.jsScans and replicates builds anywhere on the screen, along with some preset submitted buildsnousernamefound change.jsAdds a tool that only replaces existing pixelsAlice color_tools.jsAdds tools that manipulate colorsAlice controllable_pixel_test.jsAdds a pixel that can be controlled with the keyboard keys. Read the commit description for more info. [PC ONLY]Alice diff --git a/mods/buildingreplicator.js b/mods/buildingreplicator.js new file mode 100644 index 00000000..bd05b3f0 --- /dev/null +++ b/mods/buildingreplicator.js @@ -0,0 +1,213 @@ +function playSound(soundFile) { + var audio = new Audio("https://JustAGenericUsername.github.io/" + soundFile); + audio.play(); + } + function reverseObject(obj) { + const reversedObj = {}; + for (const key in obj) { + const value = obj[key]; + reversedObj[value] = key; + } + return reversedObj; +} +let blueprint = [ + ["0","0","0","0","0","G","G","G","G","G","0","0","0","0","0"], + ["0","0","0","G","G","S","W","W","W","S","G","G","0","0","0"], + ["0","0","G","W","W","S","W","W","W","S","W","W","G","0","0"], + ["0","G","W","W","W","S","0","0","0","S","W","W","W","G","0"], + ["0","G","W","W","0","0","0","0","0","0","0","W","W","G","0"], + ["G","S","S","S","0","0","0","0","0","0","0","S","S","S","G"], + ["G","W","W","0","0","0","0","0","0","0","0","0","W","W","G"], + ["G","W","W","0","0","0","0","0","0","0","0","0","W","W","G"], + ["G","W","W","0","0","0","0","0","0","0","0","0","W","W","G"], + ["G","S","S","S","0","0","0","0","0","0","0","S","S","S","G"], + ["0","G","W","W","0","0","0","0","0","0","0","W","W","G","0"], + ["0","G","W","W","W","S","0","0","0","S","W","W","W","G","0"], + ["0","0","G","W","W","S","W","W","W","S","W","W","G","0","0"], + ["0","0","0","G","G","S","W","W","W","S","G","G","0","0","0"], + ["0","0","0","0","0","G","G","G","G","G","0","0","0","0","0"] +] +let decaybp = [ + [0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0], + [0,2,2,2,2,0,2,2,2,2,2,2,2,3,1,3,0,4,0], + [5,2,2,6,6,7,6,6,6,6,6,6,6,8,8,8,8,8,0], + [5,2,9,6,6,0,6,0,6,0,6,0,6,9,0,0,0,10,0], + [8,2,11,6,6,0,6,0,6,0,6,0,6,8,8,8,8,8,0], + [5,2,9,6,6,6,0,0,0,0,0,0,6,9,2,2,0,10,0], + [5,2,2,2,9,6,9,9,6,9,9,6,9,9,2,2,0,10,0], + [0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,10,0], + [0,0,9,9,0,9,9,0,9,0,9,9,0,9,9,2,2,2,2]] +function getRandomPixelCoordinates(pixel, offsetx, offsety, bp, keyobject) { + let x, y, r; + let attempts = 0; + const maxAttempts = 1000; + do { + x = Math.floor(Math.random() * bp[0].length); + y = Math.floor(Math.random() * bp.length); + r = bp[y][x]; + r = keyobject[r]; + if (r !== undefined) { + attempts++; + } + if (attempts >= maxAttempts) { + return "terminated"; + } + } while (r === undefined || r === 0 || r === "0" || !isEmpty(pixel.x + x - offsetx, pixel.y + y - offsety, true)); + return { x, y, r }; +} + +elements.turn_into = { + color: "#000000", + behavior: behaviors.WALL, + state: "gas", + hidden: true, + properties: { + timer: 8, + }, + category: "special", + tick: function(pixel){ + if (!pixel.turninto){deletePixel(pixel.x, pixel.y); return} + if (pixel.timer == 8){pixel.color = pixelColorPick({element: pixel.turninto})} + //console.log(elements[pixel.turninto].color) + pixel.timer -- + if (pixel.timer <= 0){ + deletePixel(pixel.x, pixel.y); + createPixel(pixel.turninto, pixel.x, pixel.y); + } + } +} +elements.submitted_blueprint_1_creator = { + color: "#64abfd", + behavior: behaviors.WALL, + state: "solid", + category: "special", + tick: function(pixel){ + if(!pixel.done){ + if (pixelTicks % 3 == 0){ + let randomcoord = getRandomPixelCoordinates(pixel, 7, 7, blueprint, {G: "glass", S: "steel", W: "silver"}); + if (randomcoord == "terminated"){pixel.done = true; return;} + let rx = pixel.x + randomcoord.x-7; + let ry = pixel.y + randomcoord.y-7; + playSound("synth.wav") + try { + createPixel("turn_into", rx, ry); + pixelMap[rx][ry].turninto = randomcoord.r; + pixelMap[rx][ry].timer = 8; + } catch (error) { + console.error("Error occurred at coordinates:", rx, ",", ry); + console.error("Error message:", error); + } + } + if(pixelTicks == pixel.start){ + // playSound("nocmusic.mp3") + } + } + } +} +elements.submitted_blueprint_2_creator = { + color: "#64abfd", + behavior: behaviors.WALL, + state: "solid", + category: "special", + tick: function(pixel){ + if(!pixel.done){ + if (pixelTicks % 3 == 0){ + let randomcoord = getRandomPixelCoordinates(pixel, -1, -1, decaybp, {1: "led_r", 2:"porcelain", 3: "glass", 4: "tungsten", 5: "zinc", 6: "aluminum", 7: "copper", 8: "copper", 9: "steel", 10: "bronze", 11: "sterling"}); + if (randomcoord == "terminated"){pixel.done = true; return;} + let rx = pixel.x + randomcoord.x+1; + let ry = pixel.y + randomcoord.y+1; + playSound("synth.wav") + try { + createPixel("turn_into", rx, ry); + pixelMap[rx][ry].turninto = randomcoord.r; + pixelMap[rx][ry].timer = 8; + } catch (error) { + console.error("Error occurred at coordinates:", rx, ",", ry); + console.error("Error message:", error); + } + } + if(pixelTicks == pixel.start){ + // playSound("nocmusic.mp3") + } + } + } +} +elements.custombp_creator = { + color: "#64abfd", + behavior: behaviors.WALL, + state: "solid", + category: "special", + tick: function(pixel){ + if(!pixel.done){ + if (pixelTicks % 3 == 0){ + let randomcoord = getRandomPixelCoordinates(pixel, -1, -1, customBP, customBPKey); + if (randomcoord == "terminated"){pixel.done = true; return;} + let rx = pixel.x + randomcoord.x+1; + let ry = pixel.y + randomcoord.y+1; + playSound("synth.wav") + try { + createPixel("turn_into", rx, ry); + pixelMap[rx][ry].turninto = randomcoord.r; + pixelMap[rx][ry].timer = 8; + } catch (error) { + console.error("Error occurred at coordinates:", rx, ",", ry); + console.error("Error message:", error); + } + } + if(pixelTicks == pixel.start){ + // playSound("nocmusic.mp3") + } + } + } +} +var customBP = [] +var customBPKey = {} +let bpsizeH = 15; +let bpsizeW = 15; +let generatedBP = []; +let seenElements = {}; +elements.bp_generator = { + color: "#64abfd", + behavior: behaviors.SOLID, + state: "solid", + category: "special", + onSelect: function(pixel){ + bpsizeH = prompt("Enter the height of the blueprint", 15); + bpsizeW = prompt("Enter the width of the blueprint", 15); + generatedBP = []; + for (let y = 1; y <= bpsizeH; y++){ + generatedBP.push([]); + } + }, + tick: function(pixel){ + if(pixelTicks == pixel.start){ + let elementCounter = 1; + seenElements = {}; + for (let y = 0; y < bpsizeH; y++){ + for (let x = 1; x <= bpsizeW; x++){ + if (!isEmpty(pixel.x + x, pixel.y + y, true)){ + var opElement = pixelMap[pixel.x + x][pixel.y + y].element; + if (!seenElements[opElement]){ + generatedBP[y].push(elementCounter); + seenElements[opElement] = elementCounter; + elementCounter++; + //console.log(elementCounter) + //console.log(seenElements) + //console.log(opElement) + } else { + generatedBP[y].push(seenElements[opElement]); + } + } else { + generatedBP[y].push(0); + } + } + } + console.log(generatedBP) + console.log(seenElements) + generatedBP.shift(); + deletePixel(pixel.x, pixel.y); + customBP = generatedBP; + customBPKey = reverseObject(seenElements); + } + } +} \ No newline at end of file From 99a3cfc4bce457490c63eb2d339a3665f87a6848 Mon Sep 17 00:00:00 2001 From: JustAGenericUsername <92590792+JustAGenericUsername@users.noreply.github.com> Date: Sun, 28 Apr 2024 19:30:54 -0400 Subject: [PATCH 3/3] t --- mods/buildingreplicator.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mods/buildingreplicator.js b/mods/buildingreplicator.js index bd05b3f0..d34e3ae3 100644 --- a/mods/buildingreplicator.js +++ b/mods/buildingreplicator.js @@ -132,7 +132,7 @@ elements.submitted_blueprint_2_creator = { } } } -elements.custombp_creator = { +elements.custom_bp_spawner = { color: "#64abfd", behavior: behaviors.WALL, state: "solid", @@ -166,13 +166,13 @@ let bpsizeH = 15; let bpsizeW = 15; let generatedBP = []; let seenElements = {}; -elements.bp_generator = { +elements.bp_scanner = { color: "#64abfd", behavior: behaviors.SOLID, state: "solid", category: "special", onSelect: function(pixel){ - bpsizeH = prompt("Enter the height of the blueprint", 15); + bpsizeH = prompt("Enter the height of the blueprint. It will be scanned from the TOP LEFT corner.", 15); bpsizeW = prompt("Enter the width of the blueprint", 15); generatedBP = []; for (let y = 1; y <= bpsizeH; y++){