From 2ed2f23afe9f8226b6f8b2266ddc7052dda7806f Mon Sep 17 00:00:00 2001 From: GGod <46885632+GGodPL@users.noreply.github.com> Date: Wed, 3 Jan 2024 22:17:26 +0100 Subject: [PATCH 01/29] oops i forgot to remove that --- mods/chess.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mods/chess.js b/mods/chess.js index c5d1d0d6..83be06f1 100644 --- a/mods/chess.js +++ b/mods/chess.js @@ -1396,9 +1396,7 @@ class GameScreen { } onKey(ev) { - if (!this.menuScreen) { - player.update(ev); - } else { + if (this.menuScreen) { this.menuScreen.onKey(ev); } } From 33b57380e1c0c1b03181baa9f11efa72b512c764 Mon Sep 17 00:00:00 2001 From: An Orbit <68935009+orbit-loona@users.noreply.github.com> Date: Wed, 3 Jan 2024 23:01:46 -0500 Subject: [PATCH 02/29] finally napalm --- mods/a_mod_by_alice.js | 828 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 764 insertions(+), 64 deletions(-) diff --git a/mods/a_mod_by_alice.js b/mods/a_mod_by_alice.js index a55735a2..bc0d7e3b 100644 --- a/mods/a_mod_by_alice.js +++ b/mods/a_mod_by_alice.js @@ -274,6 +274,92 @@ if(allDependenciesExist) { }; return false; }; + + //Element name search + window.searchQuery = {}; + + function searchElements(query) { + if(typeof(window.searchQuery) == "undefined") { window.searchQuery = "" }; //necessary because of filter's idiotic no-argument policy + window.searchQuery = query; + var elemNames = Object.keys(elements); + var matches = elemNames.filter(function(name) { + return !!(name.match(window.searchQuery)) + }); + return matches + }; + + function getStateHigh(element,forceArray=false) { + if(!(element instanceof Array)) { element = [element] }; + var existantElements = element.filter(function(name) { return elementExists(name) }); + if(existantElements.length == 0) { return undefined } else { element = existantElements }; + var results = element.map(name => elements[name].stateHigh).filter(function(nameOrUndefined) { return typeof(nameOrUndefined) !== "undefined" }); + switch(results.length) { + case 0: + return null; + case 1: + if(!forceArray) { return results[0] }; + default: + return results + } + }; + + function getState(element,forceArray=false) { + if(!(element instanceof Array)) { element = [element] }; + var existantElements = element.filter(function(name) { return elementExists(name) }); + if(existantElements.length == 0) { return undefined } else { element = existantElements }; + var results = element.map(name => elements[name].state).filter(function(nameOrUndefined) { return typeof(nameOrUndefined) !== "undefined" }); + switch(results.length) { + case 0: + return null; + case 1: + if(!forceArray) { return results[0] }; + default: + return results + } + }; + + function getStateLow(element,forceArray=false) { + if(!(element instanceof Array)) { element = [element] }; + var existantElements = element.filter(function(name) { return elementExists(name) }); + if(existantElements.length == 0) { return undefined } else { element = existantElements }; + var results = element.map(name => elements[name].stateLow).filter(function(nameOrUndefined) { return typeof(nameOrUndefined) !== "undefined" }); + switch(results.length) { + case 0: + return null; + case 1: + if(!forceArray) { return results[0] }; + default: + return results + } + }; + + function getStateAtTemp(element,temp) { + var data = elements[element]; + var tl = data.tempLow; + var th = data.tempHigh; + if(typeof(tl) == "number" && temp <= tl) { + return data.stateLow + } else if(typeof(th) == "number" && temp >= th) { + return data.stateHigh + } else { + return element + } + }; + + function getBreakInto(element,forceArray=false) { + if(!(element instanceof Array)) { element = [element] }; + var existantElements = element.filter(function(name) { return elementExists(name) }); + if(existantElements.length == 0) { return undefined } else { element = existantElements }; + var results = element.map(name => elements[name].breakInto).filter(function(nameOrUndefined) { return typeof(nameOrUndefined) !== "undefined" }); + switch(results.length) { + case 0: + return null; + case 1: + if(!forceArray) { return results[0] }; + default: + return results + } + }; //Math(s) @@ -1273,7 +1359,8 @@ if(allDependenciesExist) { }; }; - function createPixelReturn(element,x,y) { //sugar + function createPixelReturn(elementIn,x,y) { //sugar + var element = elementIn; while(element instanceof Array) { element = randomChoice(element) }; var newPixel = new Pixel(x, y, element); currentPixels.push(newPixel); checkUnlock(element); @@ -3219,6 +3306,7 @@ color1 and color2 spread through striped paint like dye does with itself. col selectElement(firstElementButton.getAttribute("element")); }; + //MORE CONFIGURABLE EXPLOSIONS (explodeAtPlus) ## velocityBlacklist = []; @@ -12468,6 +12556,7 @@ Pixel size (rendering only): (Use if the save looks cut o burn: 100, burnTime: 5, fireColor: ["#00ffff","#00ffdd"], + burnInto: ["fire","carbon_dioxide","carbon_dioxide","steam","steam"], state: "gas", density: 1.93 * airDensity, }; @@ -12726,7 +12815,218 @@ Pixel size (rendering only): (Use if the save looks cut o //Quintuple carbon line - //To do + //Single bond + elements.pentane = { + color: "#b5685b", + behavior: behaviors.GAS, + category: "gases", + tempHigh: 533, + stateHigh: "fire", + reactions: { + "head": { elem2: "rotten_meat", chance: 0.00015}, + "body": { elem2: "rotten_meat", chance: 0.00015}, + }, + tempLow: 36.1, + burn: 85, + burnTime: 5, + burnInto: ["fire","fire","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_dioxide","steam","steam","steam","steam","steam","steam"], + fireColor: ["#00ffff","#00ffdd"], + state: "gas", + density: 2.48 * airDensity, + }; + + elements.liquid_pentane = { + color: "#a62711", + tempLow: -130.2, + density: 626, + }; + + elements.isopentane = { + color: "#bb6c54", + behavior: behaviors.GAS, + category: "gases", + tempHigh: 427, + stateHigh: "fire", + reactions: { + "head": { elem2: "rotten_meat", chance: 0.00015}, + "body": { elem2: "rotten_meat", chance: 0.00015}, + }, + tempLow: -11.7, + burn: 85, + burnTime: 5, + burnInto: ["fire","fire","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_dioxide","steam","steam","steam","steam","steam"], + fireColor: ["#00ffff","#00ffdd"], + state: "gas", + density: 2.48 * airDensity, + }; + + elements.liquid_isopentane = { + color: "#ab320d", + tempLow: -160, + density: 616, + }; + + elements.neopentane = { + color: "#c1724e", + behavior: behaviors.GAS, + category: "gases", + tempHigh: 427, + stateHigh: "fire", + reactions: { + "head": { elem2: "rotten_meat", chance: 0.00015}, + "body": { elem2: "rotten_meat", chance: 0.00015}, + }, + tempLow: 9.5, + burn: 85, + burnTime: 5, + burnInto: ["fire","fire","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_dioxide","steam","steam","steam","steam","steam"], + fireColor: ["#00ffff","#00ffdd"], + state: "gas", + density: 3.255, + }; + + elements.liquid_neopentane = { + color: "#af3d08", + tempLow: -16.5, + density: 601.172, + }; + + //Double bond + elements.pentylene = { //pentene + name: "1-pentylene", + color: "#af5a4b", + behavior: behaviors.GAS, + category: "gases", + tempHigh: 527, + stateHigh: ["fire","fire","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_dioxide","steam","steam","steam","steam","steam"], + tempLow: 30, + temp: 40, + burn: 100, + burnTime: 5, + burnInto: ["fire","fire","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_dioxide","steam","steam","steam","steam","steam"], + fireColor: ["#00ffff","#00ffdd"], + state: "gas", + density: 2.4 * airDensity, + }; + + elements.liquid_pentylene = { + tempLow: -165.2, + density: 640, + }; + + elements.trans_2_pentylene = { + name: "t-pentylene-2", + color: "#924b3f", + behavior: behaviors.GAS, + category: "gases", + tempHigh: 324, //Unknown + stateHigh: ["fire","fire","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_dioxide","steam","steam","steam","steam","steam"], + tempLow: 36.3, + burn: 85, + burnTime: 5, + burnInto: ["fire","fire","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_dioxide","steam","steam","steam","steam","steam"], + fireColor: ["#00ffff","#00ffdd"], + state: "gas", + density: 2.4 * airDensity, + }; + + elements.liquid_trans_2_pentylene = { + tempLow: -140.2, + density: 643.1, + }; + + elements.cis_2_pentylene = { + name: "c-pentylene-2", + color: "#9d5143", + behavior: behaviors.GAS, + category: "gases", + tempHigh: 324, //Unknown + stateHigh: ["fire","fire","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_dioxide","steam","steam","steam","steam","steam"], + tempLow: 36.9, + burn: 85, + burnTime: 5, + burnInto: ["fire","fire","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_dioxide","steam","steam","steam","steam","steam"], + fireColor: ["#00ffff","#00ffdd"], + state: "gas", + density: 2 * airDensity, + }; + + elements.liquid_cis_2_pentylene = { + tempLow: -151.4, + density: 655.6, + }; + + //Triple bond + elements.pentyne = { + name: "1-pentyne", + color: "#9d5143", + behavior: behaviors.GAS, + category: "gases", + tempHigh: 454, //Unknown + stateHigh: ["fire","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_dioxide","oxygen","oxygen","oxygen"], + tempLow: 40.2, + temp: 55, + burn: 100, + burnTime: 5, + burnInto: ["fire","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_dioxide","oxygen","oxygen","oxygen"], + fireColor: ["#00ffff","#00ffdd"], + state: "gas", + density: 2.6 * airDensity, //made-up due to also unknown vapor density + }; + + elements.liquid_1_pentyne = { + tempLow: -105.5, + density: 691, + }; + + elements.pentyne_2 = { + name: "2-pentyne", + color: "#9d5143", + behavior: behaviors.GAS, + category: "gases", + tempHigh: 454, //Unknown + stateHigh: ["fire","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_dioxide","oxygen","oxygen","oxygen"], + tempLow: 56.5, + temp: 65, + burn: 70, + burnTime: 5, + burnInto: ["fire","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_dioxide","oxygen","oxygen","oxygen"], + fireColor: ["#00ffff","#00ffdd"], + state: "gas", + density: 2.6 * airDensity, //made-up due to also unknown vapor density + }; + + elements.liquid_pentyne_2 = { + tempLow: -109, + density: 710, + }; + + elements.isopentyne = { + color: "#a6533a", + behavior: behaviors.GAS, + category: "gases", + tempHigh: 454, //Unknown + stateHigh: ["fire","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_dioxide","oxygen","oxygen","oxygen"], + tempLow: 29.5, + temp: 40, + burn: 70, + burnTime: 5, + burnInto: ["fire","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_dioxide","oxygen","oxygen","oxygen"], + fireColor: ["#00ffff","#00ffdd"], + state: "gas", + density: 2.6 * airDensity, //made-up due to also unknown vapor density + }; + + elements.liquid_isopentyne = { + tempLow: -89.7, + density: 666, + }; + + //Alcohol + //Fuck no I'm not doing 8 isomers + + //Benzene ver. + //i'm tired //Vodka @@ -12980,6 +13280,66 @@ Pixel size (rendering only): (Use if the save looks cut o //Inorganic compounds + runAfterAutogen(function() { + var waters = searchElements("water").filter(function(name) { return getState(name) == "liquid" }); + var whitelistWaters = ["hail","rime","cloud","rain_cloud","thunder_cloud","snow_cloud","hail_cloud","rain_cloud_cloud","snow_cloud_cloud","hail_cloud_cloud","cloud_cloud","heaviest_water_cloud","heaviest_snow_cloud","snow_cloud_floater","jinsoulite","jinsoulite_gas","jinsoulite_powder","molten_jinsoulite"]; + var jvoWaters = Object.keys(jinsouliteValueObject).filter(function(name) { return !(name.includes("bomb")) }); + var coldWaters = (getStateLow(waters,true) ?? []).filter( + function(name) { return typeof(name) == "string" } + ); + var colderWaters = (getStateLow(coldWaters,true) ?? []).filter( + function(name) { return typeof(name) == "string" } + ); + var hotWaters = (getStateHigh(waters,true) ?? []).filter( + function(name) { return typeof(name) == "string" } + ); + var brokenColdWaters = (getBreakInto(coldWaters,true) ?? []).filter( + function(name) { return typeof(name) == "string" } + ); + var coldBrokenColdWaters = (getStateLow(brokenColdWaters,true) ?? []).filter( + function(name) { return typeof(name) == "string" } + ); + wateroids = [waters,coldWaters,colderWaters,hotWaters,brokenColdWaters,coldBrokenColdWaters,whitelistWaters,jvoWaters].flat() + + //moved vivite-related code to where it happens + for(var i = 0; i < wateroids.length; i++) { + if(elements[wateroids[i]]) { elements[wateroids[i]].noViviteSlag = true }; + }; + }); + + //Hydrogen sulfide (in chem.js) + _h_2s = ["hydrogen_sulfide","liquid_hydrogen_sulfide","hydrogen_sulfide_ice"]; + + elements.hydrogen_sulfide.density = 1.19 * airDensity; + elements.hydrogen_sulfide.reactions ??= {}; + elements.hydrogen_sulfide.reactions.head = { elem2: "rotten_meat", chance: 0.4}; + elements.hydrogen_sulfide.fireColor = { elem2: "rotten_meat", chance: 0.4}; + elements.hydrogen_sulfide.tempHigh = 1200; + elements.hydrogen_sulfide.stateHigh = ["sulfur_gas","steam"]; + delete elements.sulfur_dioxide.reactions.water; + delete elements.sulfur_dioxide.reactions.steam; + delete elements.water.reactions.sulfur; + elements.sulfur_dioxide.tick = function(pixel) { + var neighbors = adjacentCoords.map(offsetPair => pixelMap[pixel.x+offsetPair[0]]?.[pixel.y+offsetPair[1]]).filter(function(pixelOrUndefined) { return typeof(pixelOrUndefined) == "object" }); + if(neighbors.length < 2) { return }; + var neighboringElements = neighbors.filter(function(px) { return !!px }).map(x => x.element); + var waterNeighbor = null; + var sulfideNeighbor = null; + for(var i = 0; i < neighboringElements.length; i++) { + if(_h_2s.includes(neighboringElements[i])) { + sulfideNeighbor = adjacentCoords[i]; + }; + if(wateroids.includes(neighboringElements[i])) { + waterNeighbor = adjacentCoords[i]; + }; + if(sulfideNeighbor && waterNeighbor) { + if(!sulfideNeighbor || isEmpty(sulfideNeighbor.x,sulfideNeighbor.y,true)) { return }; + changePixel(sulfideNeighbor,getStateAtTemp("sulfur",pixel.temp)); + changePixel(pixel,getStateAtTemp("water",pixel.temp)); + } + } + }; + //Carbon monoxide elements.carbon_monoxide = { @@ -13006,28 +13366,357 @@ Pixel size (rendering only): (Use if the save looks cut o elements.steam.reactions.charcoal = { tempMin: 680, elem1: "hydrogen", elem2: "carbon_monoxide" }; elements.steam.reactions.diamond = { tempMin: 680, elem1: "hydrogen", elem2: "carbon_monoxide" }; - /* //Oil refining - delete elements.oil.tempHigh; + //Oil refining - elements.oil.tick = function(pixel) { - if(!pixel.role) { - var value = Math.random() - if(value < 0.03) { - pixel.role = "lpg"; + delete elements.oil.tempHigh; + + function liquidMoveCustomViscosity(pixel,viscosity) { + if (pixel.start === pixelTicks) {return} + if (pixel.charge && elements[pixel.element].behaviorOn) { + pixelTick(pixel) + } + var viscosityPass = ((Math.random()*100) < 100 / Math.pow(viscosity, 0.25)); + if (!viscosityPass) { + var move1Spots = [ + [pixel.x, pixel.y+1] + ] + } + else { + var move1Spots = [ + [pixel.x+1, pixel.y+1], + [pixel.x, pixel.y+1], + [pixel.x-1, pixel.y+1], + ] + } + var moved = false; + for (var i = 0; i < move1Spots.length; i++) { + var coords = move1Spots[Math.floor(Math.random()*move1Spots.length)]; + if (tryMove(pixel, coords[0], coords[1])) { moved = true; break; } + else { move1Spots.splice(move1Spots.indexOf(coords), 1); } + } + if (!moved) { + if (viscosityPass) { + if (Math.random() < 0.5) { + if (!tryMove(pixel, pixel.x+1, pixel.y)) { + tryMove(pixel, pixel.x-1, pixel.y); + } + } else { + if (!tryMove(pixel, pixel.x-1, pixel.y)) { + tryMove(pixel, pixel.x+1, pixel.y); + } + } + } + } + doDefaults(pixel); }; - }; - if(pixel.role == "lpg") { - var value = Math.random() - //LPG composition weighted chooser - }; + elements.light_petroleum_fuel_gas = { //it's not liquified, and sandboxels doesn't even have a pressure system, and there is no generic name for uncompressed, gaseous "L"PG, so we need a different name + burn: 100, + color: "#b5b5b3", + density: 3.5, + tempLow: -44, + tick: function(pixel) { + if (pixel.temp >= 495 && !pixel.burning) { + pixel.burning = true; + pixel.burnStart = pixelTicks; + } + }, + burnInto: "explosion,explosion,fire,fire,fire,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(","), + state: "gas", + behavior: behaviors.GAS, + }; + elements.lamp_oil.tempHigh = 170; + elements.lamp_oil.density = 810; + elements.lamp_oil.name = "kerosene"; + elements.lamp_oil.forceAutoGen = true; + elements.lamp_oil_gas = { + name: "kerosene gas", + burn: 100, + density: 4.5, + tick: elements.lamp_oil.tick, + burnInto: "explosion,fire,fire,fire,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(",") + }; - if(pixel.temp > 30) { //https://www.crownoil.co.uk/guides/crude-oil-fractional-distillation/: Butane and propane and other petroleum gases are formed right at the top of the distillation tower, where it is coolest, a very mild 25°C: the temperature range that forms these gases is between 25°C and 50°C. These gases are the lightest products formed in crude oil distillation and are flammable gases. - //LPG change switch(pixel.role) statement - }; - }; - */ + elements.gasoline = { + color: "#d1cf9d", + behavior: behaviors.LIQUID, + tick: function(pixel) { + if (pixel.temp > 263 && !pixel.burning) { + pixel.burning = true; + pixel.burnStart = pixelTicks; + } + }, + reactions: { + "styrofoam": { elem1: ["gasoline","gasoline","gasoline","gasoline","napalm"], elem2: null }, //the joke + "polystyrene": { elem1: "napalm", elem2: ["polystyrene","polystyrene",null] }, + "molten_polystyrene": { elem1: "napalm", elem2: ["molten_polystyrene","molten_polystyrene",null] }, + "glue": {elem2:null, chance:0.05}, + "wax": {elem2:null, chance:0.005}, + "melted_wax": {elem2:null, chance:0.025}, + }, + forceAutoGen: true, + category: "liquids", + tempHigh: 70, + tempLow: -60, + burn: 20, + burnTime: 500, + burnInto: "explosion,fire,fire,fire,fire,ash,ash,carbon_monoxide,carbon_monoxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(","), + viscosity: 7.04, + state: "liquid", + density: 755, + alias: "petrol" + }; + + elements.gasoline_gas = { + burn: 100, + burnTime: 10, + density: 3.5, + tick: elements.gasoline.tick, + burnInto: "explosion,fire,fire,fire,fire,ash,ash,carbon_monoxide,carbon_monoxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(",") + }; + + elements.naphtha = { + color: "#d1d1d1", + behavior: behaviors.LIQUID, + tick: function(pixel) { + if (pixel.temp > 270 && !pixel.burning) { + pixel.burning = true; + pixel.burnStart = pixelTicks; + } + }, + reactions: { + "styrofoam": { elem1: ["naphtha","naphtha","naphtha","naphtha","napalm"], elem2: null }, + "polystyrene": { elem1: "napalm", elem2: ["polystyrene","polystyrene",null] }, + "molten_polystyrene": { elem1: "napalm", elem2: ["molten_polystyrene","molten_polystyrene",null] }, + "glue": {elem2:null, chance:0.05}, + "wax": {elem2:null, chance:0.005}, + "melted_wax": {elem2:null, chance:0.025}, + }, + category: "liquids", + tempHigh: 120, + tempLow: -30, + forceAutoGen: true, + burn: 80, + burnTime: 500, + burnInto: "explosion,fire,fire,fire,fire,ash,ash,carbon_monoxide,carbon_monoxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(","), + viscosity: 5.77, + state: "liquid", + density: 740 + }; + + elements.naphtha_gas = { + burn: 100, + burnTime: 10, + density: 3.5, + tick: elements.naphtha.tick, + burnInto: "explosion,fire,fire,fire,fire,ash,ash,carbon_monoxide,carbon_monoxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(",") + }; + + elements.diesel = { + color: "#d3d9b4", + behavior: behaviors.LIQUID, + tick: function(pixel) { + if (pixel.temp > 210 && !pixel.burning) { + pixel.burning = true; + pixel.burnStart = pixelTicks; + } + }, + reactions: { + "glue": {elem2:null, chance:0.05}, + "wax": {elem2:null, chance:0.005}, + "melted_wax": {elem2:null, chance:0.025}, + }, + category: "liquids", + tempHigh: 260, + forceAutoGen: true, + tempLow: -25, + burn: 20, + burnTime: 500, + burnInto: "explosion,fire,fire,fire,fire,ash,ash,carbon_monoxide,carbon_monoxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(","), + viscosity: 7.04, + state: "liquid", + density: 755, + }; + + elements.diesel_gas = { + burn: 100, + burnTime: 12, + density: 3.5, + tick: elements.diesel.tick, + burnInto: "explosion,fire,fire,fire,fire,ash,ash,carbon_monoxide,carbon_monoxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(",") + }; + + elements.lubricating_oil = { + color: "#d3d9b4", + behavior: behaviors.LIQUID, + tick: function(pixel) { + if (pixel.temp > 450 && !pixel.burning) { + pixel.burning = true; + pixel.burnStart = pixelTicks; + } + }, + category: "liquids", + tempHigh: 350, + tempLow: -40, + burn: 20, + burnTime: 600, + forceAutoGen: true, + burnInto: "explosion,fire,fire,fire,ash,ash,carbon_monoxide,carbon_monoxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(","), + viscosity: 7.04, + state: "liquid", + density: 800, + }; + + elements.lubricating_oil_gas = { + burn: 100, + burnTime: 13, + density: 3.5, + tick: elements.lubricating_oil.tick, + burnInto: "explosion,fire,fire,fire,ash,ash,carbon_monoxide,carbon_monoxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(",") + }; + + elements.heavy_fuel_oil = { + color: "#1c1a18", + behavior: behaviors.LIQUID, + tick: function(pixel) { + if (pixel.temp > 407 && !pixel.burning) { + pixel.burning = true; + pixel.burnStart = pixelTicks; + }; + if(pixel.burning && Math.random() < 0.01) { + var emptyNeighbors = []; + for(i = 0; i < adjacentCoords.length; i++) { + if(isEmpty(pixel.x+adjacentCoords[i][0],pixel.y+adjacentCoords[i][1],false)) { + emptyNeighbors.push(adjacentCoords[i]); + }; + }; + if(emptyNeighbors.length > 0) { + var randomEmptyNeighbor = emptyNeighbors[Math.floor(Math.random() * emptyNeighbors.length)]; + createPixelReturn(["smoke","carbon_dioxide"],pixel.x+randomEmptyNeighbor[0],pixel.y+randomEmptyNeighbor[1]).temp = pixel.temp + }; + } + }, + reactions: { + "polystyrene": { elem1: "napalm", elem2: "napalm", chance:0.05 }, //the joke + "glue": {elem2:null, chance:0.05}, + "wax": {elem2:null, chance:0.005}, + "melted_wax": {elem2:null, chance:0.025}, + }, + category: "liquids", + tempHigh: 300, + forceAutoGen: true, + tempLow: 0, + burn: 10, + viscosity: 700, + burnTime: 800, + fireElement: ["fire","fire","fire","smoke","smoke","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_monoxide","carbon_monoxide","carbon_monoxide","sulfur_dioxide","sulfur_trioxide_gas","poison_gas"], + burnInto: "explosion,fire,fire,fire,fire,fire,fire,ash,ash,ash,carbon_monoxide,carbon_monoxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,poison_gas".split(","), + viscosity: 7.04, + state: "liquid", + density: 755, + alias: "petrol" + }; + + elements.heavy_fuel_oil_gas = { + burn: 80, + burnTime: 60, + density: 2.5, + tick: elements.heavy_fuel_oil.tick, + fireElement: ["explosion","fire","fire","fire","smoke","smoke","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_monoxide","carbon_monoxide","carbon_monoxide","sulfur_dioxide","sulfur_trioxide_gas","poison_gas"], + burnInto: "fire,fire,fire,fire,fire,ash,ash,carbon_monoxide,carbon_monoxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(",") + }; + + elements.bitumen = { + color: "#0d0c0c", + maxColorOffset: 5, + tick: function(pixel) { + var viscosity = 1e16 / (1.09 ** pixel.temp); + liquidMoveCustomViscosity(pixel,viscosity) + }, + reactions: { + "polystyrene": { elem1: "napalm", elem2: "napalm", chance:0.05 }, //the joke + "glue": {elem2:null, chance:0.05}, + "wax": {elem2:null, chance:0.005}, + "melted_wax": {elem2:null, chance:0.025}, + }, + category: "liquids", + tempHigh: 750, + stateHigh: ["bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","bitumen","fire","fire","fire","smoke","smoke","smoke","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_monoxide","carbon_monoxide","carbon_monoxide","sulfur_dioxide","sulfur_trioxide_gas","poison_gas"], + burn: 2, + burnTime: 800, + fireElement: ["fire","fire","fire","smoke","smoke","smoke","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_monoxide","carbon_monoxide","carbon_monoxide","sulfur_dioxide","sulfur_trioxide_gas","poison_gas"], + burnInto: "fire,fire,fire,fire,fire,fire,ash,ash,ash,carbon_monoxide,carbon_monoxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,poison_gas".split(","), + viscosity: 7.04, + state: "liquid", + density: 1050, + reactions: { + gravel: { elem1: "asphalt", elem2: "asphalt" } + } + }; + + elements.asphalt ={ + color: "#191919", + behavior: behaviors.STURDYPOWDER, + tempHigh: 750, + stateHigh: ["asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","asphalt","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel",,"fire","fire","fire","smoke","smoke","smoke","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_monoxide","carbon_monoxide","carbon_monoxide","sulfur_dioxide","sulfur_trioxide_gas","poison_gas"], + category: "land", + state: "solid", + density: 2322, + burn: 0.5, + burnTime: 5000, + burnInto: ["gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel","gravel",,"fire","fire","fire","smoke","smoke","smoke","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_monoxide","carbon_monoxide","carbon_monoxide","sulfur_dioxide","sulfur_trioxide_gas","poison_gas"], + fireElement: ["smoke","smoke","smoke","carbon_dioxide","carbon_monoxide","fire","fire","fire","fire","fire","fire"], + fireChance: 2, + hardness: 0.5, + breakInto: ["bitumen","gravel"], + reactions: { + light: { temp1: 0.25, elem2: null } + } + }; + + elements.oil.tick = function(pixel) { + if(!pixel.role) { + var value = Math.random() + if(value <= 0.03) { + pixel.role = "lpg"; + } else if(value <= 0.45) { //42% + pixel.role = "gasoline"; + } else if(value <= 0.60) { //15% + pixel.role = "naphtha"; + } else if(value <= 0.70) { //10% + pixel.role = "kerosene"; //kerosene/lamp oil/jet fuel are apparently the same funny bunch of hydrocarbons + } else if(value <= 0.9) { //20% + pixel.role = "diesel"; + } else if(value <= 0.91) { //1% + pixel.role = "lubricant"; + } else if(value <= 0.97) { //6% + pixel.role = "heavy_fuel_oil"; //700 cP + } else if(value < 1) { //3% + pixel.role = "bitumen"; + }; + }; + + if(pixel.temp > 30 && pixel.role == "lpg") { //https://www.crownoil.co.uk/guides/crude-oil-fractional-distillation/: Butane and propane and other petroleum gases are formed right at the top of the distillation tower, where it is coolest, a very mild 25°C: the temperature range that forms these gases is between 25°C and 50°C. These gases are the lightest products formed in crude oil distillation and are flammable gases. + changePixel(pixel,"light_petroleum_fuel_gas") + } else if(pixel.temp > 70 && pixel.role == "gasoline") { //https://www.crownoil.co.uk/guides/crude-oil-fractional-distillation/: Butane and propane and other petroleum gases are formed right at the top of the distillation tower, where it is coolest, a very mild 25°C: the temperature range that forms these gases is between 25°C and 50°C. These gases are the lightest products formed in crude oil distillation and are flammable gases. + changePixel(pixel,"gasoline_gas") + } else if(pixel.temp > 120 && pixel.role == "naphtha") { //https://www.crownoil.co.uk/guides/crude-oil-fractional-distillation/: Butane and propane and other petroleum gases are formed right at the top of the distillation tower, where it is coolest, a very mild 25°C: the temperature range that forms these gases is between 25°C and 50°C. These gases are the lightest products formed in crude oil distillation and are flammable gases. + changePixel(pixel,"naphtha_gas") + } else if(pixel.temp > 170 && pixel.role == "kerosene") { //https://www.crownoil.co.uk/guides/crude-oil-fractional-distillation/: Butane and propane and other petroleum gases are formed right at the top of the distillation tower, where it is coolest, a very mild 25°C: the temperature range that forms these gases is between 25°C and 50°C. These gases are the lightest products formed in crude oil distillation and are flammable gases. + changePixel(pixel,"lamp_oil_gas") + } else if(pixel.temp > 270 && pixel.role == "diesel") { //https://www.crownoil.co.uk/guides/crude-oil-fractional-distillation/: Butane and propane and other petroleum gases are formed right at the top of the distillation tower, where it is coolest, a very mild 25°C: the temperature range that forms these gases is between 25°C and 50°C. These gases are the lightest products formed in crude oil distillation and are flammable gases. + changePixel(pixel,"diesel_gas") + } else if(pixel.temp > 300 && pixel.role == "heavy_fuel_oil") { //https://www.crownoil.co.uk/guides/crude-oil-fractional-distillation/: Butane and propane and other petroleum gases are formed right at the top of the distillation tower, where it is coolest, a very mild 25°C: the temperature range that forms these gases is between 25°C and 50°C. These gases are the lightest products formed in crude oil distillation and are flammable gases. + changePixel(pixel,"heavy_fuel_oil_gas") + } else if(pixel.temp > 350 && pixel.role == "lubricant") { //https://www.crownoil.co.uk/guides/crude-oil-fractional-distillation/: Butane and propane and other petroleum gases are formed right at the top of the distillation tower, where it is coolest, a very mild 25°C: the temperature range that forms these gases is between 25°C and 50°C. These gases are the lightest products formed in crude oil distillation and are flammable gases. + if(pixel.role == "lubricant") { + changePixel(pixel,"lubricating_oil_gas") + } else { + changePixel(pixel,"bitumen") + } + } + }; //UREA ## @@ -14930,6 +15619,9 @@ Pixel size (rendering only): (Use if the save looks cut o else if (burnInto instanceof Array) { burnInto = burnInto[Math.floor(Math.random()*burnInto.length)]; } + if (burnInto == undefined) { + burnInto = 'fire'; + } changePixel(pixel,burnInto,(burnInto !== "smoke")); if (info.fireColor != undefined && burnInto == "fire") { pixel.color = pixelColorPick(pixel,info.fireColor); @@ -16173,8 +16865,8 @@ Pixel size (rendering only): (Use if the save looks cut o tick: function(pixel) { emptyNeighborArray = [] for(i=0;i<4;i++) { - if(isEmpty(pixel.x+neighbors[i][0],pixel.y+neighbors[i][1],true)) { - emptyNeighborArray.push(neighbors[i]) + if(isEmpty(pixel.x+adjacentCoords[i][0],pixel.y+adjacentCoords[i][1],false)) { + emptyNeighborArray.push(adjacentCoords[i]) } } if(pixel.temp >= 100) { @@ -17709,17 +18401,6 @@ Pixel size (rendering only): (Use if the save looks cut o elements.smog.stateLow = ["water","dirty_water"]; - var wateroids = Object.keys(elements).filter( - function(name) { - return ( - elements[name].stateHigh == "water" || - elements[name].stateLow == "water" || - elements[name].stateHigh == "heavy_water" || - elements[name].stateLow == "heavy_water" - ) - } - ); - /*Object.keys(elements).filter( function(elem) { return ( @@ -17731,10 +18412,6 @@ Pixel size (rendering only): (Use if the save looks cut o } );*/ - for(var i = 0; i < wateroids.length; i++) { - if(elements[wateroids[i]]) { elements[wateroids[i]].noViviteSlag = true }; - }; - function doViviteSlag(pixel,target) { if(!target) { //No pixel return false; @@ -18457,13 +19134,13 @@ Pixel size (rendering only): (Use if the save looks cut o tick: function(pixel) { neighbors = [[-1,0],[0,-1],[1,0],[0,1]] for(i = 0; i < neighbors.length; i++) { - if(isEmpty(pixel.x+neighbors[i][0],pixel.y+neighbors[i][1],true)) { + if(isEmpty(pixel.x+adjacentCoords[i][0],pixel.y+adjacentCoords[i][1],false)) { if(Math.random() < 0.004) { changePixel(pixel,"molten_polusium_oxide") } } - if(!isEmpty(pixel.x+neighbors[i][0],pixel.y+neighbors[i][1],true)) { - if(pixelMap[pixel.x+neighbors[i][0]][pixel.y+neighbors[i][1]].element == "salt_water") { + if(!isEmpty(pixel.x+adjacentCoords[i][0],pixel.y+adjacentCoords[i][1],true)) { + if(pixelMap[pixel.x+adjacentCoords[i][0]][pixel.y+adjacentCoords[i][1]].element == "salt_water") { if(Math.random() < 0.024) { changePixel(pixel,"molten_polusium_oxide") } @@ -18486,13 +19163,13 @@ Pixel size (rendering only): (Use if the save looks cut o tick: function(pixel) { neighbors = [[-1,0],[0,-1],[1,0],[0,1]] for(i = 0; i < neighbors.length; i++) { - if(isEmpty(pixel.x+neighbors[i][0],pixel.y+neighbors[i][1],true)) { + if(isEmpty(pixel.x+adjacentCoords[i][0],pixel.y+adjacentCoords[i][1],false)) { if(Math.random() < 0.015) { changePixel(pixel,"vaporized_polusium_oxide") } } - if(!isEmpty(pixel.x+neighbors[i][0],pixel.y+neighbors[i][1],true)) { - if(pixelMap[pixel.x+neighbors[i][0]][pixel.y+neighbors[i][1]].element == "salt_water") { + if(!isEmpty(pixel.x+adjacentCoords[i][0],pixel.y+adjacentCoords[i][1],true)) { + if(pixelMap[pixel.x+adjacentCoords[i][0]][pixel.y+adjacentCoords[i][1]].element == "salt_water") { if(Math.random() < 0.06) { changePixel(pixel,"vaporized_polusium_oxide") } @@ -19161,7 +19838,7 @@ Pixel size (rendering only): (Use if the save looks cut o //sedimentSandstoneTries++; for(i = 0; i < adjacentCoords.length; i++) { //sedimentSandstoneTryIterations++; - if(isEmpty(pixel.x+adjacentCoords[i][0],pixel.y+adjacentCoords[i][1],true)) { + if(isEmpty(pixel.x+adjacentCoords[i][0],pixel.y+adjacentCoords[i][1],false)) { validNeighborArray[i] = false; //sedimentSandstoneNoDetects++; } else if(!isEmpty(pixel.x+adjacentCoords[i][0],pixel.y+adjacentCoords[i][1],true)) { @@ -19214,7 +19891,7 @@ Pixel size (rendering only): (Use if the save looks cut o }; }; - //Previous function with adjacentPixels + //Previous function with adjacentCoords function transformAdjacent(pixel,substitutionObject,reverse=false) { for(k = 0; k < adjacentCoords.length; k++) { @@ -21531,13 +22208,13 @@ Pixel size (rendering only): (Use if the save looks cut o }; newPowder("sulfur_trioxide","#ededed",1995,16.9).reactions = { - water: { elem1: "acid", elem2: "acid" }, //no H2SO4, hydronium doesn't really seem to be its own substance - steam: { elem1: "acid", elem2: "acid" }, - ice: { elem1: "acid", elem2: "acid" }, - snow: { elem1: "acid", elem2: "acid" }, - packed_snow: { elem1: "acid", elem2: "acid" }, - slush: { elem1: "acid", elem2: "acid" }, - }; + water: { elem1: "sulfuric_acid", elem2: "sulfuric_acid" }, + steam: { elem1: "sulfuric_acid", elem2: "acid" }, + ice: { elem1: "sulfuric_acid", elem2: "sulfuric_acid" }, + snow: { elem1: "sulfuric_acid", elem2: "sulfuric_acid" }, + packed_snow: { elem1: "sulfuric_acid", elem2: "sulfuric_acid" }, + slush: { elem1: "sulfuric_acid", elem2: "sulfuric_acid" }, + }; elements.sulfur_trioxide.temp = 10; elements.molten_sulfur_trioxide = { color: "#c0c0c0", @@ -21546,12 +22223,12 @@ Pixel size (rendering only): (Use if the save looks cut o viscosity: 5, //idk idc tempHigh: 45, reactions: { - water: { elem1: "acid", elem2: "acid" }, //no H2SO4, hydronium doesn't really seem to be its own substance - steam: { elem1: "acid", elem2: "acid" }, - ice: { elem1: "acid", elem2: "acid" }, - snow: { elem1: "acid", elem2: "acid" }, - packed_snow: { elem1: "acid", elem2: "acid" }, - slush: { elem1: "acid", elem2: "acid" }, + water: { elem1: "sulfuric_acid", elem2: "sulfuric_acid" }, //no H2SO4, hydronium doesn't really seem to be its own substance + steam: { elem1: "sulfuric_acid", elem2: "sulfuric_acid" }, + ice: { elem1: "sulfuric_acid", elem2: "sulfuric_acid" }, + snow: { elem1: "sulfuric_acid", elem2: "sulfuric_acid" }, + packed_snow: { elem1: "sulfuric_acid", elem2: "sulfuric_acid" }, + slush: { elem1: "sulfuric_acid", elem2: "sulfuric_acid" }, }, }; @@ -21559,12 +22236,12 @@ Pixel size (rendering only): (Use if the save looks cut o color: "#c0c0c0", density: 2.3, //idk idc reactions: { - water: { elem1: "acid", elem2: "acid" }, //no H2SO4, hydronium doesn't really seem to be its own substance - steam: { elem1: "acid", elem2: "acid" }, - ice: { elem1: "acid", elem2: "acid" }, - snow: { elem1: "acid", elem2: "acid" }, - packed_snow: { elem1: "acid", elem2: "acid" }, - slush: { elem1: "acid", elem2: "acid" }, + water: { elem1: "sulfuric_acid", elem2: "sulfuric_acid" }, //no H2SO4, hydronium doesn't really seem to be its own substance + steam: { elem1: "sulfuric_acid", elem2: "sulfuric_acid" }, + ice: { elem1: "sulfuric_acid", elem2: "sulfuric_acid" }, + snow: { elem1: "sulfuric_acid", elem2: "sulfuric_acid" }, + packed_snow: { elem1: "sulfuric_acid", elem2: "sulfuric_acid" }, + slush: { elem1: "sulfuric_acid", elem2: "sulfuric_acid" }, }, }; @@ -41711,7 +42388,30 @@ maxPixels (default 1000): Maximum amount of pixels/changes (if xSpacing and ySpa randomEventChoices.falling_pixel.splice(randomEventChoices.falling_pixel.indexOf(radElem),1) } }; - }) + + function editDistance(s1, s2) {s1 = s1.toLowerCase();s2 = s2.toLowerCase();var costs = new Array();for (var i = 0; i <= s1.length; i++) {var lastValue = i;for (var j = 0; j <= s2.length; j++) {if (i == 0)costs[j] = j;else {if (j > 0) {var newValue = costs[j - 1];if (s1.charAt(i - 1) != s2.charAt(j - 1))newValue = Math.min(Math.min(newValue, lastValue),costs[j]) + 1;costs[j - 1] = lastValue;lastValue = newValue;}}}if (i > 0)costs[s2.length] = lastValue;}return costs[s2.length];} + + function similarity(s1, s2) {var longer = s1;var shorter = s2;if (s1.length < s2.length) {longer = s2;shorter = s1;}var longerLength = longer.length;if (longerLength == 0) {return 1.0;}return (longerLength - editDistance(longer, shorter)) / parseFloat(longerLength);} + + function mostSimilarElement(s) { + delete elements; + var max = 0; + var maxElement = ""; + for (var e in elements) { + var sim = similarity(e,s); + if (sim > max) { + max = sim; + maxElement = e; + } + if (elements[e].alias && elements[e].alias === s) { + max = 0.99; + maxElement = e; + } + } + if (max < 0.5) { return null } + return maxElement; + } + }); //END ## From ec6d6dbda395c4aef5e92070e73c0fe482e76ddd Mon Sep 17 00:00:00 2001 From: Ilikepizza2006 <146470829+Ilikepizza2006@users.noreply.github.com> Date: Thu, 4 Jan 2024 15:51:43 +0100 Subject: [PATCH 03/29] added the mod --- mods/pizzasstuff.js | 76 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 mods/pizzasstuff.js diff --git a/mods/pizzasstuff.js b/mods/pizzasstuff.js new file mode 100644 index 00000000..eac30d6a --- /dev/null +++ b/mods/pizzasstuff.js @@ -0,0 +1,76 @@ +elements.Fruit_Slushy = { + color: "#b867cf", + behavior: behaviors.SUPERFLUID, + category: "food", + state: "solid", + hidden: "TRUE", +}; + +elements.Chocolate_Slushy = { + color: "#4f2e16", + behavior: behaviors.SUPERFLUID, + category: "food", + state: "solid", + hidden: "TRUE", +}; + +elements.Chocolate_Sauce = { + color: "#754828", + behavior: behaviors.SUPERFLUID, + category: "food", + state: "solid", + hidden: "TRUE", +}; + +elements.Cooking_Oil = { + color: "#c4ab4f", + behavior: behaviors.SUPERFLUID, + category: "liquids", + state: "solid", + reactions: { + "meat": { elem1: null, elem2: "Chicken_Nuggets" }, + "potato": { elem1: null, elem2: "Fries" }, + } +}; + +elements.Chicken_Nuggets = { + color: "#967242", + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + hidden: "TRUE", +}; + +elements.Fries = { + color: "#ebba34", + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + hidden: "TRUE", +}; + + +elements.Smashed_Ice = { + color: "#c3d4e6", + behavior: behaviors.SUPERFLUID, + category: "food", + state: "solid", + reactions: { + "grape": { elem1: null, elem2: "Fruit_Slushy" }, + "chocolate": { elem1: null, elem2: "Chocolate_Slushy" }, + }, +}; + +elements.Moss = { + color: "#389639", + behavior: behaviors.STURDYPOWDER, + category: "life", + state: "solid", +}; + +elements.Moth = { + color: "#665233", + behavior: behaviors.BOUNCY, + category: "life", + state: "solid", +}; \ No newline at end of file From 2154c4a57e45a164a1e83c4863a3a386d2c7be5c Mon Sep 17 00:00:00 2001 From: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> Date: Thu, 4 Jan 2024 16:13:29 +0000 Subject: [PATCH 04/29] Add files via upload Signed-off-by: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> --- mods/fantasy_elements.js | 138 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 mods/fantasy_elements.js diff --git a/mods/fantasy_elements.js b/mods/fantasy_elements.js new file mode 100644 index 00000000..07b58981 --- /dev/null +++ b/mods/fantasy_elements.js @@ -0,0 +1,138 @@ +elements.dragon_breath = { + color: "#f94e4e", + behavior: behaviors.GAS, + category: "fantasy", + state: "gas", + density: 0.1, + weight: 1, + update: function(x, y) { + // Update the element's behavior + }, + reactions: { + "oxygen": { elem1: "fire", elem2: "fire" }, + "frostbite": { elem1: "pulsium", elem2: "pulsium" }, + } +}; + +elements.frostbite = { + color: "#0000ff", + behavior: behaviors.SOLID, + category: "fantasy", + state: "solid", + density: 1.5, + weight: 100, + update: function(x, y) { + // Update the element's behavior + }, + reactions: { + "water": { elem1: "ice", elem2: "ice" }, + "dragon_breath": { elem1: "pulsium", elem2: "pulsium" }, + } +}; + +elements.pulsium = { + color: "#ffff00", + behavior: behaviors.LIQUID, + category: "fantasy", + state: "liquid", + density: 1923, + weight: 100, + update: function(x, y) { + // Update the element's behavior + }, + reactions: { + "molten_iron": { elem1: "pulsium_bar", elem2: "pulsium_bar" }, + "molten_tin": { elem1: "pulsium_bar", elem2: "pulsium_bar" }, + "water": { elem1: "sap", elem2: "sap" }, + } +}; + +elements.pulsium_bar = { + color: "#ffd700", + behavior: behaviors.SOLID, + category: "fantasy", + state: "solid", + density: 1700, + weight: 100, + update: function(x, y) { + // Update the element's behavior + } +}; + +elements.goblins_delight = { + color: "#00ff00", + behavior: behaviors.LIQUID, + category: "fantasy", + state: "solid", + density: 0.5, + weight: 50, + reactions: { + "liquid_light": { elem1: "water", elem2: "oil" }, + "radiation": { elem1: "sauce", elem2: "sauce" }, + } +}; + +elements.pheonix = { + color: ["#ff0000"], + tick: behaviors.FLY, + reactions: { "fire": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL }, + "salt": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL }, + "pulsium_bar": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL }, + "pulsium": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL }, + "dragon_breath": { elem2:null, chance:0.15, func:behaviors.FEEDPIXEL }, + }, + foodNeed: 5, + tempHigh: 999999, + stateHigh: "ash", + tempLow: 0, + category:"fantasy", + burn:100, + burnTime:19, + state: "solid", + density: 850, + conduct: 1, + baby: "baby_pheonix", +}; + +elements.phoenix_ash = { + color: "#a8a8a5", + behavior: behaviors.POWDER, + category: "fantasy", + state: "solid", + density: 1.5, + weight: 100, + reactions: { + "water": { elem1: "pheonix", elem2: "pheonix" }, + } +}; + +elements.baby_pheonix = { + color: ["#ffdd00"], + tick: behaviors.FLY, + foodNeed: 5, + tempHigh: 999999, + stateHigh: "ash", + tempLow: 0, + category:"fantasy", + burn:100, + burnTime:19, + state: "solid", + stateLow: "iced_pheonix", + breakInto: "phoenix_ash", + density: 850, + conduct: 1, +}; + +elements.iced_pheonix = { + color: "#34baeb", + behavior: behaviors.SOLID, + category: "fantasy", + state: "solid", + density: 1.5, + weight: 100, + update: function(x, y) { + // Update the element's behavior + }, +}; + + From a767ac107eff38972c07881d1122eaae49e710fc Mon Sep 17 00:00:00 2001 From: An Orbit <68935009+orbit-loona@users.noreply.github.com> Date: Thu, 4 Jan 2024 13:23:41 -0500 Subject: [PATCH 05/29] change sl to save pixelTicks, remove if-block referencing velocity.js (since it's a hard dependency now) --- mods/a_mod_by_alice.js | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/mods/a_mod_by_alice.js b/mods/a_mod_by_alice.js index bc0d7e3b..dedc7e76 100644 --- a/mods/a_mod_by_alice.js +++ b/mods/a_mod_by_alice.js @@ -7986,7 +7986,7 @@ color1 and color2 spread through striped paint like dye does with itself. col behavior: behaviors.WALL, state: "solid", category: "rainbow variants", - }; + }; //7989 yay soshi! elements.lavashimmer = { color: ["#ff3f00","#200800","#ff3f00","#200800"], @@ -8216,7 +8216,7 @@ color1 and color2 spread through striped paint like dye does with itself. col } }, reactions: { - dye: elements.rainbow.reactions.dye, //7989 yay soshi! + dye: elements.rainbow.reactions.dye, }, behavior: behaviors.WALL, state: "solid", @@ -9648,7 +9648,7 @@ color1 and color2 spread through striped paint like dye does with itself. col for(y = bottomFortyPercent; y < height; y++) { var chance = y > bottomTwentyPercent ? 0.03 : 0.01 var radius = y > bottomTwentyPercent ? 8 : 6 - if(enabledMods.includes("velocity.js") && !isEmpty(x,y,true)) { + if(!isEmpty(x,y,true)) { pixelMap[x][y].vy ??= 0; pixelMap[x][y].vy -= 20; }; @@ -11275,10 +11275,11 @@ color1 and color2 spread through striped paint like dye does with itself. col pixelMap: structuredClone ? structuredClone(pixelMap) : JSON.parse(JSON.stringify(pixelMap)), width: width, height: height, + pixelTicks: pixelTicks, pixelSize: pixelSize, settings: settings, version: 1, - enabledMods: localStorage.enabledMods, + enabledMods: localStorage.enabledMods }; for(i = 0; i < simulationState.pixelMap.length; i++) { var column = simulationState.pixelMap[i]; @@ -11529,6 +11530,7 @@ color1 and color2 spread through striped paint like dye does with itself. col width = json.width; height = json.height; pixelSize = json.pixelSize; + pixelTicks = (json.pixelTicks ?? 0); //currentPixels = json.currentPixels; for(i = 0; i < json.pixelMap.length; i++) { json.pixelMap[i] = json.pixelMap[i].map(x => zeroToNull(x)); @@ -41507,25 +41509,25 @@ Make sure to save your command in a file if you want to add this preset again.` } } }; - if(enabledMods.includes("mods/paint_event.js")) { - randomEvents.paint = function() { - // set the color of a random circle to a random color - var x = Math.floor(Math.random()*(width-1))+1; - var y = Math.floor(Math.random()*(height-1))+1; - var randomR = Math.floor(Math.random() * 256); - var randomG = Math.floor(Math.random() * 256); - var randomB = Math.floor(Math.random() * 256); - var radius = Math.floor(Math.random()*19)+1; - var rColor = "rgb(" + randomR + "," + randomG + "," + randomB + ")"; - var coords = circleCoords(x,y,radius); - for (var i = 0; i < coords.length; i++) { - var coord = coords[i]; - if (!outOfBounds(coord.x,coord.y) && !isEmpty(coord.x,coord.y)) { - pixelMap[coord.x][coord.y].color = rColor; - }; + + randomEvents.paint = function() { + // set the color of a random circle to a random color + var x = Math.floor(Math.random()*(width-1))+1; + var y = Math.floor(Math.random()*(height-1))+1; + var randomR = Math.floor(Math.random() * 256); + var randomG = Math.floor(Math.random() * 256); + var randomB = Math.floor(Math.random() * 256); + var radius = Math.floor(Math.random()*19)+1; + var rColor = "rgb(" + randomR + "," + randomG + "," + randomB + ")"; + var coords = circleCoords(x,y,radius); + for (var i = 0; i < coords.length; i++) { + var coord = coords[i]; + if (!outOfBounds(coord.x,coord.y) && !isEmpty(coord.x,coord.y)) { + pixelMap[coord.x][coord.y].color = rColor; }; }; }; + //Buff mob events if(typeof(maximumCreeperTries) !== "undefined") { minimumCreeperTries = 10; From c855d1b730f2fb606529c2af03e0e216156fc8ab Mon Sep 17 00:00:00 2001 From: Ilikepizza2006 <146470829+Ilikepizza2006@users.noreply.github.com> Date: Thu, 4 Jan 2024 20:40:01 +0100 Subject: [PATCH 06/29] Updated the mod now some new stuff like rose sauce, mayo and some new reactions. (btw join the moss army discord if you want to suggest things) --- mods/pizzasstuff.js | 75 +++++++++++++++++++++++++++++++++------------ 1 file changed, 56 insertions(+), 19 deletions(-) diff --git a/mods/pizzasstuff.js b/mods/pizzasstuff.js index eac30d6a..b444b228 100644 --- a/mods/pizzasstuff.js +++ b/mods/pizzasstuff.js @@ -1,39 +1,39 @@ -elements.Fruit_Slushy = { +elements.fruit_slushy = { color: "#b867cf", - behavior: behaviors.SUPERFLUID, + behavior: behaviors.LIQUID, category: "food", state: "solid", hidden: "TRUE", }; -elements.Chocolate_Slushy = { +elements.chocolate_slushy = { color: "#4f2e16", - behavior: behaviors.SUPERFLUID, + behavior: behaviors.LIQUID, category: "food", state: "solid", hidden: "TRUE", }; -elements.Chocolate_Sauce = { +elements.chocolate_sauce = { color: "#754828", - behavior: behaviors.SUPERFLUID, + behavior: behaviors.LIQUID, category: "food", state: "solid", hidden: "TRUE", }; -elements.Cooking_Oil = { +elements.cooking_oil = { color: "#c4ab4f", - behavior: behaviors.SUPERFLUID, + behavior: behaviors.LIQUID, category: "liquids", state: "solid", reactions: { - "meat": { elem1: null, elem2: "Chicken_Nuggets" }, - "potato": { elem1: null, elem2: "Fries" }, + "meat": { elem1: null, elem2: "chicken_nuggets" }, + "potato": { elem1: null, elem2: "fries" }, } }; -elements.Chicken_Nuggets = { +elements.chicken_nuggets = { color: "#967242", behavior: behaviors.STURDYPOWDER, category: "food", @@ -41,7 +41,7 @@ elements.Chicken_Nuggets = { hidden: "TRUE", }; -elements.Fries = { +elements.fries = { color: "#ebba34", behavior: behaviors.STURDYPOWDER, category: "food", @@ -49,28 +49,65 @@ elements.Fries = { hidden: "TRUE", }; +elements.rose_sauce = { + color: "#f0340e", + behavior: behaviors.LIQUID, + category: "food", + state: "solid", + hidden: "TRUE", +}; -elements.Smashed_Ice = { +elements.mayo = { + color: "#f7d00c", + behavior: behaviors.LIQUID, + category: "food", + state: "solid", +}; + +elements.smashed_ice = { color: "#c3d4e6", - behavior: behaviors.SUPERFLUID, + behavior: behaviors.LIQUID, category: "food", state: "solid", reactions: { - "grape": { elem1: null, elem2: "Fruit_Slushy" }, - "chocolate": { elem1: null, elem2: "Chocolate_Slushy" }, + "grape": { elem1: null, elem2: "fruit_slushy" }, + "chocolate": { elem1: null, elem2: "chocolate_slushy" }, + "juice": { elem1: null, elem2: "fruit_slushy" }, + "chocolate_sauce": { elem1: null, elem2: "chocolate_slushy" }, }, }; -elements.Moss = { +elements.moss = { color: "#389639", behavior: behaviors.STURDYPOWDER, category: "life", state: "solid", + burn: 5, + burnTime: 15, + density: 1400, + breakInto: "dead_plant", + tempHigh: 120, + stateHigh: "dead_plant", + tempLow: -4, + stateLow: "frozen_plant", + + reactions: { + "dna": { elem1: "moth", elem2: null }, + } + }; -elements.Moth = { +elements.moth = { color: "#665233", behavior: behaviors.BOUNCY, category: "life", state: "solid", -}; \ No newline at end of file +}; +if (!elements.lettuce.reactions) elements.lettuce.reactions = {}; +elements.lettuce.reactions.ice_cream = { elem1: "moss", elem2: null } + +if (!elements.yolk.reactions) elements.yolk.reactions = {}; +elements.yolk.reactions.vinegar = { elem1: null, elem2: "mayo" } + +if (!elements.ketchup.reactions) elements.ketchup.reactions = {}; +elements.ketchup.reactions.mayo = { elem1: "rose_sauce", elem2: null } From 218533c40995160c2382523f7ff74456b43cd903 Mon Sep 17 00:00:00 2001 From: An Orbit <68935009+orbit-loona@users.noreply.github.com> Date: Thu, 4 Jan 2024 14:51:05 -0500 Subject: [PATCH 07/29] mostly bug fixes --- mods/a_mod_by_alice.js | 263 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 232 insertions(+), 31 deletions(-) diff --git a/mods/a_mod_by_alice.js b/mods/a_mod_by_alice.js index dedc7e76..6593c196 100644 --- a/mods/a_mod_by_alice.js +++ b/mods/a_mod_by_alice.js @@ -3669,8 +3669,13 @@ color1 and color2 spread through striped paint like dye does with itself. col } } - //New elements + //No changeTemp for fire=>smoke + elements.fire.tick = function(pixel){ + behaviors.UL_UR_OPTIMIZED(pixel); + if (!pixel.del && settings.burn===0 && (pixelTicks-pixel.start > 70) && Math.random() < 0.1 ) { changePixel(pixel,"smoke",false) } + }; + //New elements elements.cold_fire.burning = true; elements.cold_fire.burnTempChange = -1; elements.cold_fire.burnTime = 25; @@ -13432,12 +13437,13 @@ Pixel size (rendering only): (Use if the save looks cut o elements.lamp_oil.density = 810; elements.lamp_oil.name = "kerosene"; elements.lamp_oil.forceAutoGen = true; + elements.lamp_oil.burnInto = "smoke,smoke,fire,fire,fire,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(","); elements.lamp_oil_gas = { name: "kerosene gas", burn: 100, density: 4.5, tick: elements.lamp_oil.tick, - burnInto: "explosion,fire,fire,fire,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(",") + burnInto: "explosion,smoke,smoke,fire,fire,fire,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(",") }; elements.gasoline = { @@ -13463,7 +13469,7 @@ Pixel size (rendering only): (Use if the save looks cut o tempLow: -60, burn: 20, burnTime: 500, - burnInto: "explosion,fire,fire,fire,fire,ash,ash,carbon_monoxide,carbon_monoxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(","), + burnInto: "fire,fire,fire,fire,ash,ash,carbon_monoxide,carbon_monoxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(","), viscosity: 7.04, state: "liquid", density: 755, @@ -13501,7 +13507,7 @@ Pixel size (rendering only): (Use if the save looks cut o forceAutoGen: true, burn: 80, burnTime: 500, - burnInto: "explosion,fire,fire,fire,fire,ash,ash,carbon_monoxide,carbon_monoxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(","), + burnInto: "fire,fire,fire,fire,ash,ash,carbon_monoxide,carbon_monoxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(","), viscosity: 5.77, state: "liquid", density: 740 @@ -13535,7 +13541,7 @@ Pixel size (rendering only): (Use if the save looks cut o tempLow: -25, burn: 20, burnTime: 500, - burnInto: "explosion,fire,fire,fire,fire,ash,ash,carbon_monoxide,carbon_monoxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(","), + burnInto: "fire,fire,fire,fire,ash,ash,carbon_monoxide,carbon_monoxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(","), viscosity: 7.04, state: "liquid", density: 755, @@ -13564,7 +13570,7 @@ Pixel size (rendering only): (Use if the save looks cut o burn: 20, burnTime: 600, forceAutoGen: true, - burnInto: "explosion,fire,fire,fire,ash,ash,carbon_monoxide,carbon_monoxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(","), + burnInto: "fire,fire,fire,ash,ash,carbon_monoxide,carbon_monoxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,steam,steam".split(","), viscosity: 7.04, state: "liquid", density: 800, @@ -13580,6 +13586,7 @@ Pixel size (rendering only): (Use if the save looks cut o elements.heavy_fuel_oil = { color: "#1c1a18", + stain: 0.3, behavior: behaviors.LIQUID, tick: function(pixel) { if (pixel.temp > 407 && !pixel.burning) { @@ -13613,7 +13620,7 @@ Pixel size (rendering only): (Use if the save looks cut o viscosity: 700, burnTime: 800, fireElement: ["fire","fire","fire","smoke","smoke","carbon_dioxide","carbon_dioxide","carbon_dioxide","carbon_monoxide","carbon_monoxide","carbon_monoxide","sulfur_dioxide","sulfur_trioxide_gas","poison_gas"], - burnInto: "explosion,fire,fire,fire,fire,fire,fire,ash,ash,ash,carbon_monoxide,carbon_monoxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,poison_gas".split(","), + burnInto: "fire,fire,fire,fire,fire,fire,ash,ash,ash,carbon_monoxide,carbon_monoxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,carbon_dioxide,steam,steam,steam,poison_gas".split(","), viscosity: 7.04, state: "liquid", density: 755, @@ -22518,28 +22525,30 @@ Pixel size (rendering only): (Use if the save looks cut o newConcreteTick = elements.concrete.tick; - if(elements.hanging_concrete) { - elements.hanging_concrete.tick = function(pixel) { - newConcreteTick(pixel); + runAfterLoad(function() { //mamma mia that's some tasty spaghetti + if(elements.hanging_concrete) { + elements.hanging_concrete.tick = function(pixel) { + newConcreteTick(pixel); + }; }; - }; - if(elements.attach_concrete) { - oldAttachConcreteTick = elements.attach_concrete.tick ; - elements.attach_concrete.tick = function(pixel) { - oldAttachConcreteTick(pixel); - newConcreteTick(pixel); + if(elements.attach_concrete) { + oldAttachConcreteTick = elements.attach_concrete.tick ; + elements.attach_concrete.tick = function(pixel) { + oldAttachConcreteTick(pixel); + newConcreteTick(pixel); + }; }; - }; - if(elements.crumbling_concrete) { - oldCrumblingConcreteTick = elements.crumbling_concrete.tick ; - newConcreteTick = elements.concrete.tick ; - elements.crumbling_concrete.tick = function(pixel) { - oldCrumblingConcreteTick(pixel); - newConcreteTick(pixel); - }; - }; + if(elements.crumbling_concrete) { + oldCrumblingConcreteTick = elements.crumbling_concrete.tick ; + newConcreteTick = elements.concrete.tick ; + elements.crumbling_concrete.tick = function(pixel) { + oldCrumblingConcreteTick(pixel); + newConcreteTick(pixel); + } + } + }); //Crimson //Made-up lore: Crimson naturally drives rocks towards a somewhat mafic comp. @@ -23997,14 +24006,20 @@ Pixel size (rendering only): (Use if the save looks cut o breakInto: "alumina", }; + + elements.molten_titanium ??= {}; elements.molten_titanium.tempHigh = 3287; + elements.molten_iron ??= {}; elements.molten_iron.tempHigh = 2861; + elements.molten_chromium ??= {}; elements.molten_chromium.tempHigh = 2671; + elements.molten_copper ??= {}; elements.molten_molten_copper.tempHigh = 4700; elements.molten_alumina ??= {}; + elements.molten_alumina.tempHigh = 5400; elements.molten_alumina.reactions ??= {}; - elements.molten_alumina.reactions.iron_scrap = {elem1: "molten_sapphire", elem2: ["molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron",null] }; - elements.molten_alumina.reactions.molten_iron = {elem1: "molten_sapphire", elem2: ["molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron",null] }; - elements.molten_alumina.reactions.titanium_scrap = {elem1: "molten_sapphire", elem2: ["molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium",null] }; - elements.molten_alumina.reactions.molten_titanium = {elem1: "molten_sapphire", elem2: ["molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium",null] }; - elements.molten_alumina.reactions.chromium_scrap = {elem1: "molten_ruby", elem2: ["molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium",null] }; - elements.molten_alumina.reactions.molten_chromium = {elem1: "molten_ruby", elem2: ["molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium",null] }; + elements.molten_alumina.reactions.iron_scrap = {elem1: "molten_sapphire", elem2: ["molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron",null] }; + elements.molten_alumina.reactions.molten_iron = {elem1: "molten_sapphire", elem2: ["molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron","molten_iron",null] }; + elements.molten_alumina.reactions.titanium_scrap = {elem1: "molten_sapphire", elem2: ["molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium",null] }; + elements.molten_alumina.reactions.molten_titanium = {elem1: "molten_sapphire", elem2: ["molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium","molten_titanium",null] }; + elements.molten_alumina.reactions.chromium_scrap = {elem1: "molten_ruby", elem2: ["molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium",null] }; + elements.molten_alumina.reactions.molten_chromium = {elem1: "molten_ruby", elem2: ["molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium","molten_chromium",null] }; elements.molten_alumina.stateLow = "corundum"; //Sapphire @@ -24020,6 +24035,16 @@ Pixel size (rendering only): (Use if the save looks cut o hardness: 0.9, }; + elements.molten_sapphire ??= {}; elements.molten_sapphire.tick = function(pixel) { + if(pixel.temp >= 5040) { + if(Math.random() < 0.005) { //the real proportion of 0.01% is so low that you'd just melt sapphire and get back corundum + changePixel(pixel,Math.random() < 0.5 ? "titanium_gas" : "iron_gas",false) + } else { + changePixel(pixel,"alumina_gas",false) + } + }; + }; + standaloneBrokenFormMaker("sapphire","shard",true,"powders","auto","auto","molten_sapphire",["alumina","alumina","alumina","alumina","alumina","alumina","alumina","alumina","alumina","iron_scrap","titanium_scrap"]).hidden = true; //Ruby @@ -24035,6 +24060,16 @@ Pixel size (rendering only): (Use if the save looks cut o hardness: 0.9, }; + elements.molten_ruby ??= {}; elements.molten_ruby.tick = function(pixel) { + if(pixel.temp >= 5040) { + if(Math.random() < 0.02) { //1% also too low + changePixel(pixel,"chromium_gas",false) + } else { + changePixel(pixel,"alumina_gas",false) + } + }; + }; + standaloneBrokenFormMaker("ruby","shard",true,"powders","auto","auto","molten_sapphire",["alumina","alumina","alumina","alumina","alumina","alumina","alumina","alumina","alumina","chromium_scrap"]).hidden = true; //Spinel (kek) @@ -26328,6 +26363,7 @@ Make sure to save your command in a file if you want to add this preset again.` function changeElementPrompt() { var cmToElement = prompt("Enter what you want to change pixels to"); + if(cmToElement == null) { return }; // replace spaces with underscores cmToElement = cmToElement.replace(/ /g, "_"); cmToElementS = mostSimilarElement(cmToElement); @@ -26807,6 +26843,169 @@ Make sure to save your command in a file if you want to add this preset again.` } } }; + + rayAbsorbElements = []; + rayPassElements = []; + + function summonRay(element,xIn,intensity,radius) { + var forMin = 0 - radius; + var forMax = radius + 1; + if(intensity < 1) { return }; + for(var i = forMin; i < forMax; i++) { + for(var j = 1; j < intensity + 1; j++) { + var pos = {x: xIn + i, y: j}; + if(isEmpty(pos.x,pos.y)) { + createPixel(element,pos.x,pos.y) + } else { + if(outOfBounds(pos.x,pos.y)) { + break + } else { + var pixel = pixelMap[pos.x][pos.y]; + var pElem = pixel.element; + var data = elements[pElem]; + if(rayAbsorbElements.includes(pElem)) { + break + } else if(rayPassElements.includes(pElem)) { + continue + } else { + if(data.state == "gas") { + continue + } else { + break + } + } + } + } + } + } + }; + + elements.orbital_ray_beacon = { + color: "#ebdf91", + behavior: [ + "XX|M2 AND SA|XX", + "SA|XX|SA", + "XX|M1|XX" + ], + breakInto: ["steel_scrap","iron_scrap","copper_scrap","gold_scrap","battery","sapphire","magic"], + temp: 0, + tempHigh: 5010, + insulate: true, + conduct: 1, + stateHigh: ["molten_steel","molten_iron","molten_copper","molten_gold","acid_gas","titanium_gas","molten_sapphire","magic"], + tick: function(pixel) { + pixelTempCheck(pixel); + if(!pixel.charge) { return }; + if(pixel.charge) { + //var intensity = Math.max(1,Math.floor((pixel.temp + 1) / 100)); + if(isEmpty(pixel.x,pixel.y+1,true)) { return }; + var pixelUnder = pixelMap[pixel.x]?.[pixel.y+1]; + if(!pixelUnder) { return }; + switch(pixelUnder.element) { + case "fire": + summonRay("heat_ray",pixel.x,10,5); + break; + case "ultramafic_magma": + case "magma": + case "intermediate_magma": + case "intermediate_felsic_magma": + case "felsic_magma": + case "nellish_magma": + case "rainbow_magma": + case "crimson_magma": + summonRay("heat_ray",pixel.x,16,10); + break; + case "vaporized_ultramafic_magma": + case "vaporized_magma": + case "vaporized_intermediate_magma": + case "vaporized_intermediate_felsic_magma": + case "vaporized_felsic_magma": + case "vaporized_nellish_magma": + case "vaporized_rainbow_magma": + case "vaporized_crimson_magma": + summonRay("heat_ray",pixel.x,24,18); + break; + case "greek_fire": + summonRay("heat_ray",pixel.x,16,25); + break; + case "quark_matter": + summonRay("heat_ray",pixel.x,45,80); + break; + case "cold_fire": + summonRay("cold_ray",pixel.x,10,5); + break; + case "chilly_water": + summonRay("cold_ray",pixel.x,14,8); + break; + case "frostwind": + summonRay("cold_ray",pixel.x,20,15); + break; + case "liquid_frostwind": + summonRay("cold_ray",pixel.x,30,20); + break; + case "gelid_cryotheum": + summonRay("cold_ray",pixel.x,36,25); + break; + case "snow": + summonRay("freeze_ray",pixel.x,3,6); + break; + case "slush": + summonRay("freeze_ray",pixel.x,4,6); + break; + case "packed_snow": + summonRay("freeze_ray",pixel.x,4,7); + break; + case "ice": + summonRay("freeze_ray",pixel.x,4,8); + break; + case "alcohol_ice": + summonRay("freeze_ray",pixel.x,6,11); + break; + case "liquid_nitrogen": + summonRay("freeze_ray",pixel.x,9,18); + break; + case "nitrogen_ice": + summonRay("freeze_ray",pixel.x,11,19); + break; + case "liquid_hydrogen": + summonRay("freeze_ray",pixel.x,14,26); + break; + case "hydrogen_ice": + summonRay("freeze_ray",pixel.x,15,27); + break; + case "liquid_helium": + summonRay("freeze_ray",pixel.x,18,34); + break; + case "tectonic_petrotheum": + summonRay("smash_ray",pixel.x,2,10); + break; + case "bomb": + case "tnt": + summonRay("smash_ray",pixel.x,5,7); + break; + case "cluster_bomb": + summonRay("death_ray",pixel.x,7,11); + break; + case "nuke": + summonRay("annihilation_ray",pixel.x,20,40); + break; + case "cluster_nuke": + summonRay("annihilation_ray",pixel.x,30,60); + break; + case "armageddon": + summonRay("annihilation_ray",pixel.x,40,80); + break; + }; + //if(pixelUnder) { deletePixel(pixelUnder.x,pixelUnder.y) }; + delete pixel.charge; + pixel.chargeCD = 4; + return true; + } + }, + conduct: 1, + category: "machines", + hardness: 0.6 + }; //PUSHERS ## @@ -39390,6 +39589,8 @@ Make sure to save your command in a file if you want to add this preset again.` if(!supports) { behaviors.POWDER(pixel); }; + + elements.concrete.tick doDefaults(pixel); }, From 14e5d7bd03913cfc3226fa14b3f83847d78273d3 Mon Sep 17 00:00:00 2001 From: Ilikepizza2006 <146470829+Ilikepizza2006@users.noreply.github.com> Date: Thu, 4 Jan 2024 21:02:39 +0100 Subject: [PATCH 08/29] Update 1.1.1 oops looks like i accidentally removed mayo and added it back, that's on me --- mods/pizzasstuff.js | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/mods/pizzasstuff.js b/mods/pizzasstuff.js index b444b228..0b91bca7 100644 --- a/mods/pizzasstuff.js +++ b/mods/pizzasstuff.js @@ -57,13 +57,6 @@ elements.rose_sauce = { hidden: "TRUE", }; -elements.mayo = { - color: "#f7d00c", - behavior: behaviors.LIQUID, - category: "food", - state: "solid", -}; - elements.smashed_ice = { color: "#c3d4e6", behavior: behaviors.LIQUID, @@ -106,8 +99,5 @@ elements.moth = { if (!elements.lettuce.reactions) elements.lettuce.reactions = {}; elements.lettuce.reactions.ice_cream = { elem1: "moss", elem2: null } -if (!elements.yolk.reactions) elements.yolk.reactions = {}; -elements.yolk.reactions.vinegar = { elem1: null, elem2: "mayo" } - if (!elements.ketchup.reactions) elements.ketchup.reactions = {}; elements.ketchup.reactions.mayo = { elem1: "rose_sauce", elem2: null } From e028d0add0d698061086d813657d72d869366eca Mon Sep 17 00:00:00 2001 From: GGod <46885632+GGodPL@users.noreply.github.com> Date: Fri, 5 Jan 2024 00:37:02 +0100 Subject: [PATCH 09/29] add titleId to betterMenuScreens.js --- mods/betterMenuScreens.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/mods/betterMenuScreens.js b/mods/betterMenuScreens.js index 1c0509f1..355ff770 100644 --- a/mods/betterMenuScreens.js +++ b/mods/betterMenuScreens.js @@ -106,7 +106,7 @@ const inject = () => { /** * - * @param {string} menu Menu do be opened + * @param {string} menu Menu to be opened * @param {boolean} [closeCurrent] Whether it should forcefully close the current screen */ const openMenu = (menu, closeCurrent = false) => { @@ -130,6 +130,7 @@ class MenuScreen { this.showCloseButton = true; this.closeButtonText = "-"; this.closeButtonClass = "XButton"; + this.titleId = null; } /** @@ -141,6 +142,15 @@ class MenuScreen { return this; } + /** + * Sets screen title ID + * @param {string} [id] Screen title. "New Menu Screen" by default + */ + setTitleId(id) { + this.titleId = id; + return this; + } + /** * Sets close button visibility. When false the close button will not be added to the menu screen * @param {boolean} show Visibility of the close button @@ -253,7 +263,7 @@ class MenuScreen { const inner = document.createElement("div"); inner.className = this.innerDivClass ?? "menuScreen"; inner.innerHTML = `${this.showCloseButton ? ` - ${this.title ?? "Menu Screen"}

"; + ${this.title ?? "Menu Screen"}

"; this.nodes.forEach(n => inner.querySelector(".menuText").appendChild(n)); parent.appendChild(inner); document.getElementById(id).appendChild(parent); From 0d9eead62efc4d29db1cf318b8eab70039448bc7 Mon Sep 17 00:00:00 2001 From: GGod <46885632+GGodPL@users.noreply.github.com> Date: Fri, 5 Jan 2024 00:39:25 +0100 Subject: [PATCH 10/29] Update betterMenuScreens.js --- mods/betterMenuScreens.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/betterMenuScreens.js b/mods/betterMenuScreens.js index 355ff770..dc18861c 100644 --- a/mods/betterMenuScreens.js +++ b/mods/betterMenuScreens.js @@ -144,7 +144,7 @@ class MenuScreen { /** * Sets screen title ID - * @param {string} [id] Screen title. "New Menu Screen" by default + * @param {string} [id] Screen title element ID */ setTitleId(id) { this.titleId = id; From 6241de1d4959d94093fb6091d64a399d43b57adf Mon Sep 17 00:00:00 2001 From: Teqquu <122736042+Teqquu@users.noreply.github.com> Date: Thu, 4 Jan 2024 19:29:36 -0500 Subject: [PATCH 11/29] Add files via upload --- mods/nastystuff.js | 57 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 mods/nastystuff.js diff --git a/mods/nastystuff.js b/mods/nastystuff.js new file mode 100644 index 00000000..92e4c9f0 --- /dev/null +++ b/mods/nastystuff.js @@ -0,0 +1,57 @@ +elements.poop = { + color: "#411900", + density: 200, + state: "solid", + burn: 5, + tempHigh: 400, + burnTime: 200, + burnInto: ["driedPoop"], + category: "gross stuff", +} + +elements.driedPoop = { + behavior: behaviors.POWDER, + color: '#181100', + state: 'powder', + category: "gross stuff", + reactions: { + "water": { elem1: null, elem2: "wetPoop" }, + "milk": { elem1: null, elem2: "poopyMilk" }, + + }, + density: 10 +} + +elements.wetPoop = { + behavior: behaviors.LIQUID, + color: "#A9844F", + state: 'liquid', + category: 'gross stuff', + density: '25' +} + +elements.poopyMilk = { + behavior: behaviors.LIQUID, + color: '#BEB2AD', + state: 'liquid', + category: "gross stuff", + density: 10 +} + +elements.peePee = { + behavior: behaviors.LIQUID, + color: '#f1ed00', + state: 'liquid', + category: "gross stuff", + tempHigh: 100, + stateHigh: ["ammonia", "fragrance"], + density: 25 +} + +elements.ammonia = { + behavior: behaviors.GAS, + color: '#E5E4E2', + category: 'gross stuff', + density: .86, + state: 'gas', +} \ No newline at end of file From 99b5e0f7744363211c58482d407026f6132d1aee Mon Sep 17 00:00:00 2001 From: Clide4 <149531099+Clide4@users.noreply.github.com> Date: Thu, 4 Jan 2024 22:39:30 -0300 Subject: [PATCH 12/29] Add files via upload --- death.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 death.js diff --git a/death.js b/death.js new file mode 100644 index 00000000..d7c7a164 --- /dev/null +++ b/death.js @@ -0,0 +1,18 @@ +elements.chowder = { + color: "#c7c98b", + behavior: behaviors.POWDER, + category: "food", + state: "solid", + reactions: { + "water": { elem1: null, elem2: "soup" }, + }, + }; + + elements.soup = { + color: "#c28719", + behavior: behaviors.LIQUID, + category: "food", + state: "liquid", + stateHigh: "chowder", + tempHigh: 100 + }; \ No newline at end of file From 5b4100f42d93166e4bc602ec8aca50918cf8462b Mon Sep 17 00:00:00 2001 From: Clide4 <149531099+Clide4@users.noreply.github.com> Date: Thu, 4 Jan 2024 22:41:08 -0300 Subject: [PATCH 13/29] Add files via upload --- mods/death.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 mods/death.js diff --git a/mods/death.js b/mods/death.js new file mode 100644 index 00000000..d7c7a164 --- /dev/null +++ b/mods/death.js @@ -0,0 +1,18 @@ +elements.chowder = { + color: "#c7c98b", + behavior: behaviors.POWDER, + category: "food", + state: "solid", + reactions: { + "water": { elem1: null, elem2: "soup" }, + }, + }; + + elements.soup = { + color: "#c28719", + behavior: behaviors.LIQUID, + category: "food", + state: "liquid", + stateHigh: "chowder", + tempHigh: 100 + }; \ No newline at end of file From eb0185d9919149309cc6d9b164b64edc2e10c51a Mon Sep 17 00:00:00 2001 From: Clide4 <149531099+Clide4@users.noreply.github.com> Date: Fri, 5 Jan 2024 09:16:16 -0300 Subject: [PATCH 14/29] Update and rename mods/death.js to morefoodsmod.js --- mods/death.js => morefoodsmod.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename mods/death.js => morefoodsmod.js (93%) diff --git a/mods/death.js b/morefoodsmod.js similarity index 93% rename from mods/death.js rename to morefoodsmod.js index d7c7a164..48957d58 100644 --- a/mods/death.js +++ b/morefoodsmod.js @@ -15,4 +15,4 @@ elements.chowder = { state: "liquid", stateHigh: "chowder", tempHigh: 100 - }; \ No newline at end of file + }; From 809e2192a0cf98126230d3656082accd416b8d4b Mon Sep 17 00:00:00 2001 From: Clide4 <149531099+Clide4@users.noreply.github.com> Date: Fri, 5 Jan 2024 09:16:35 -0300 Subject: [PATCH 15/29] Delete morefoodsmod.js --- morefoodsmod.js | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 morefoodsmod.js diff --git a/morefoodsmod.js b/morefoodsmod.js deleted file mode 100644 index 48957d58..00000000 --- a/morefoodsmod.js +++ /dev/null @@ -1,18 +0,0 @@ -elements.chowder = { - color: "#c7c98b", - behavior: behaviors.POWDER, - category: "food", - state: "solid", - reactions: { - "water": { elem1: null, elem2: "soup" }, - }, - }; - - elements.soup = { - color: "#c28719", - behavior: behaviors.LIQUID, - category: "food", - state: "liquid", - stateHigh: "chowder", - tempHigh: 100 - }; From ef4b33bd0e1516cbe1db11a94007ed22e3ab7d39 Mon Sep 17 00:00:00 2001 From: Clide4 <149531099+Clide4@users.noreply.github.com> Date: Fri, 5 Jan 2024 09:16:54 -0300 Subject: [PATCH 16/29] Delete death.js --- death.js | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 death.js diff --git a/death.js b/death.js deleted file mode 100644 index d7c7a164..00000000 --- a/death.js +++ /dev/null @@ -1,18 +0,0 @@ -elements.chowder = { - color: "#c7c98b", - behavior: behaviors.POWDER, - category: "food", - state: "solid", - reactions: { - "water": { elem1: null, elem2: "soup" }, - }, - }; - - elements.soup = { - color: "#c28719", - behavior: behaviors.LIQUID, - category: "food", - state: "liquid", - stateHigh: "chowder", - tempHigh: 100 - }; \ No newline at end of file From a71a5cdf94e7359ef7b1527eb851cd3bc6d1f5a4 Mon Sep 17 00:00:00 2001 From: Clide4 <149531099+Clide4@users.noreply.github.com> Date: Fri, 5 Jan 2024 09:18:50 -0300 Subject: [PATCH 17/29] Add files via upload --- mods/morefoodsmod.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 mods/morefoodsmod.js diff --git a/mods/morefoodsmod.js b/mods/morefoodsmod.js new file mode 100644 index 00000000..d7c7a164 --- /dev/null +++ b/mods/morefoodsmod.js @@ -0,0 +1,18 @@ +elements.chowder = { + color: "#c7c98b", + behavior: behaviors.POWDER, + category: "food", + state: "solid", + reactions: { + "water": { elem1: null, elem2: "soup" }, + }, + }; + + elements.soup = { + color: "#c28719", + behavior: behaviors.LIQUID, + category: "food", + state: "liquid", + stateHigh: "chowder", + tempHigh: 100 + }; \ No newline at end of file From 76711e37ea2a58fe9dceddb416ad7bfb696274ed Mon Sep 17 00:00:00 2001 From: stefanblox <155691462+stefanblox@users.noreply.github.com> Date: Fri, 5 Jan 2024 12:59:04 -0300 Subject: [PATCH 18/29] my stuff mine stuff --- mods/sbstuff.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 mods/sbstuff.js diff --git a/mods/sbstuff.js b/mods/sbstuff.js new file mode 100644 index 00000000..cff18e40 --- /dev/null +++ b/mods/sbstuff.js @@ -0,0 +1,23 @@ +elements.rice = { + color: "#d1d1d1", + behavior: behaviors.POWDER, + category: "food", + state: "liquid", + reactions: { + "fire": { elem1: "rice", elem2: "burnt_rice" }, + "heat": { elem1: "rice", elem2: "burnt_rice" }, + "plasma": { elem1: "fire", elem2: "ash" }, + "incinerate": { elem1: "fire", elem2: "ash" }, + "heat_ray": { elem1: "fire", elem2: "ash" }, + } +}; + +elements.burnt_rice = { + color: "#242424", + behavior: behaviors.POWDER, + category: "food", + state: "liquid", + reactions: { + "water": { elem1 : null, elem2: "dirty_water" }, + } +}; \ No newline at end of file From acdf030d48ad6dc0fb862799c5858e8c36471f8a Mon Sep 17 00:00:00 2001 From: Clide4 <149531099+Clide4@users.noreply.github.com> Date: Fri, 5 Jan 2024 14:48:21 -0300 Subject: [PATCH 19/29] Add files via upload --- mods/morefoodsmod.js | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/mods/morefoodsmod.js b/mods/morefoodsmod.js index d7c7a164..9791eb3b 100644 --- a/mods/morefoodsmod.js +++ b/mods/morefoodsmod.js @@ -15,4 +15,33 @@ elements.chowder = { state: "liquid", stateHigh: "chowder", tempHigh: 100 - }; \ No newline at end of file + }; + + elements.rice = { + color: "#f6f8ed", + behavior: behaviors.POWDER, + category: "food", + state: "solid", + reactions: { + "broth": { elem1: "risotto", elem2: null }, + "beans": { elem1: null, elem2: "feijoada"}, + }, + }; + + elements.risotto = { + color: "#f8f4e9", + behavior: behaviors.SUPPORTPOWDER, + category: "food", + state: "solid", + }; + + elements.feijoada = { + color: "#291800", + behavior: behaviors.LIQUID, + category: "food", + state: "liquid", + viscosity: 9 + }; + + if (!elements.milk.reactions) elements.milk.reactions = {}; +elements.milk.reactions.corn = { elem1: null, elem2: "chowder" } \ No newline at end of file From 687a75609328e9a24d9bb630aa975eaaaeaf3d65 Mon Sep 17 00:00:00 2001 From: Ilikepizza2006 <146470829+Ilikepizza2006@users.noreply.github.com> Date: Fri, 5 Jan 2024 19:32:30 +0100 Subject: [PATCH 20/29] Update 1.2 added flavored ice cream, mold and some other stuff --- mods/pizzasstuff.js | 100 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 97 insertions(+), 3 deletions(-) diff --git a/mods/pizzasstuff.js b/mods/pizzasstuff.js index 0b91bca7..996a0d54 100644 --- a/mods/pizzasstuff.js +++ b/mods/pizzasstuff.js @@ -6,6 +6,14 @@ elements.fruit_slushy = { hidden: "TRUE", }; +elements.mold = { + color: "#86ab29", + behavior: behaviors.POWDER, + category: "food", + state: "solid", + hidden: "TRUE", +}; + elements.chocolate_slushy = { color: "#4f2e16", behavior: behaviors.LIQUID, @@ -22,6 +30,22 @@ elements.chocolate_sauce = { hidden: "TRUE", }; +elements.chocolate_ice_cream = { + color: "#704b3a", + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + hidden: "TRUE", +}; + +elements.fruit_ice_cream = { + color: "#de6ab7", + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + hidden: "TRUE", +}; + elements.cooking_oil = { color: "#c4ab4f", behavior: behaviors.LIQUID, @@ -35,7 +59,7 @@ elements.cooking_oil = { elements.chicken_nuggets = { color: "#967242", - behavior: behaviors.STURDYPOWDER, + behavior: behaviors.POWDER, category: "food", state: "solid", hidden: "TRUE", @@ -43,7 +67,7 @@ elements.chicken_nuggets = { elements.fries = { color: "#ebba34", - behavior: behaviors.STURDYPOWDER, + behavior: behaviors.POWDER, category: "food", state: "solid", hidden: "TRUE", @@ -68,6 +92,11 @@ elements.smashed_ice = { "juice": { elem1: null, elem2: "fruit_slushy" }, "chocolate_sauce": { elem1: null, elem2: "chocolate_slushy" }, }, + density: 100, + tempHigh: 25, + stateHigh: "water", + tempLow: -50, + stateLow: "snow", }; elements.moss = { @@ -95,9 +124,74 @@ elements.moth = { behavior: behaviors.BOUNCY, category: "life", state: "solid", + burn: 95, + burnTime: 25, + density: 600, + breakInto: "dead_bug", + tempHigh: 100, + stateHigh: "ash", + tempLow: 0, + stateLow: "dead_bug", }; + if (!elements.lettuce.reactions) elements.lettuce.reactions = {}; elements.lettuce.reactions.ice_cream = { elem1: "moss", elem2: null } if (!elements.ketchup.reactions) elements.ketchup.reactions = {}; -elements.ketchup.reactions.mayo = { elem1: "rose_sauce", elem2: null } +elements.ketchup.reactions.mayonnaise = { elem1: "rose_sauce", elem2: null } + + +if (!elements.bread.reactions) elements.bread.reactions = {}; +elements.bread.reactions.rotten_cheese = { elem1: "mold", elem2: null } + +if (!elements.bread.reactions) elements.bread.reactions = {}; +elements.bread.reactions.dirty_water = { elem1: "mold", elem2: null } + +if (!elements.toast.reactions) elements.toast.reactions = {}; +elements.toast.reactions.rotten_cheese = { elem1: "mold", elem2: null } + +if (!elements.toast.reactions) elements.toast.reactions = {}; +elements.toast.reactions.dirty_water = { elem1: "mold", elem2: null } + +if (!elements.baked_batter.reactions) elements.baked_batter.reactions = {}; +elements.baked_batter.reactions.rotten_cheese = { elem1: "mold", elem2: null } + +if (!elements.baked_batter.reactions) elements.baked_batter.reactions = {}; +elements.baked_batter.reactions.dirty_water = { elem1: "mold", elem2: null } + +if (!elements.bread.reactions) elements.bread.reactions = {}; +elements.bread.reactions.worm = { elem1: "mold", elem2: null } + +if (!elements.bread.reactions) elements.bread.reactions = {}; +elements.bread.reactions.mud = { elem1: "mold", elem2: null } + +if (!elements.toast.reactions) elements.toast.reactions = {}; +elements.toast.reactions.worm = { elem1: "mold", elem2: null } + +if (!elements.toast.reactions) elements.toast.reactions = {}; +elements.toast.reactions.mud = { elem1: "mold", elem2: null } + +if (!elements.baked_batter.reactions) elements.baked_batter.reactions = {}; +elements.baked_batter.reactions.worm = { elem1: "mold", elem2: null } + +if (!elements.baked_batter.reactions) elements.baked_batter.reactions = {}; +elements.baked_batter.reactions.mud = { elem1: "mold", elem2: null } + +elements.sugar_ice.breakInto = "smashed_ice" + +elements.chocolate.breakInto = "chocolate_sauce" + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.juice = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.grape = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.chocolate = { elem1: "chocolate_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.chocolate_sauce = { elem1: "chocolate_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.melted_chocolate = { elem1: "chocolate_ice_cream", elem2: null } From a9cbf1eda94fcebc80a0d1ea017612b22c451e88 Mon Sep 17 00:00:00 2001 From: slweeb <91897291+slweeb@users.noreply.github.com> Date: Fri, 5 Jan 2024 13:37:11 -0500 Subject: [PATCH 21/29] Update mod-list.html --- mod-list.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mod-list.html b/mod-list.html index 1312c8fc..b91092d2 100644 --- a/mod-list.html +++ b/mod-list.html @@ -200,6 +200,8 @@ Food & Cooking bananas.jsAdds bananas and banana plantsAlice ketchup_mod.jsAdds a bunch of ketchup related stuff, plus a few other condimentsNubo318 (main dev), Devi, Alice (contributors) +pizzasstuff.jsNew animals, foods, and plants_ilikepizza_ +sbstuff.jsAdds RiceStefan Blox Life & Nature apioforms_pre.jsAn incomplete implementation of elements from the Apioform GameAlice @@ -209,6 +211,7 @@ crimson.jsAdds elements relating to the Crimson from TerrariaAlice fairy_chain.jsAdds way too many fairies to fey_and_more.jsAlice fantastic_creatures.jsAdds various animalsMelecie +fantasy_elements.jsFantasy creatures and substancespixelegend4 fey_and_more.jsAdds fairies, magic, and a lot of other thingsMelecie fwibblen.jsAdds a flying creature that turns nickel into itself, and a second creature that does the same to the first oneAlice human_edit.jsImprovements to humansAlice @@ -216,10 +219,11 @@ mobs.jsAdds Creepers, Zombies, and SkeletonsAlice nocancer.jsRemoves cancer from the game one tick after it is createdmollthecoder nocancer2.jsRemoves cancer from the game altogether. May be incompatible with other mods that spawn cancermollthecoder +pizzasstuff.jsNew animals, foods, and plants_ilikepizza_ primordial_birthpool.jsA cross between Primordial Soup and Birthpool. Requires F&MAlice spring.jsMany nature elements, like sakura trees, butterflies, beehives, and moreR74n -the_ground.jsAdds several rock types, worldgen settings, and gemstonesAlice the_ground_og.jsSimplified and more stable version of the_ground.jsAlice +the_ground.jsAdds several rock types, worldgen settings, and gemstonesAlice toothpaste.jsTeeth and pasteAlice Fun & Games From 8cfcd7dcc090d24a6a0719a9220ebca477c86203 Mon Sep 17 00:00:00 2001 From: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> Date: Fri, 5 Jan 2024 19:42:07 +0000 Subject: [PATCH 22/29] 1.1 update fantasy_elements.js added 3 more elements R74n plz add it to the nature section in sandboxels.r74n.com/mod-list. (sandboxels mod list) Signed-off-by: HACKERPRO908 <130792075+HACKERPRO908@users.noreply.github.com> --- mods/fantasy_elements.js | 105 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) diff --git a/mods/fantasy_elements.js b/mods/fantasy_elements.js index 07b58981..87cc8f4e 100644 --- a/mods/fantasy_elements.js +++ b/mods/fantasy_elements.js @@ -44,6 +44,7 @@ elements.pulsium = { "molten_iron": { elem1: "pulsium_bar", elem2: "pulsium_bar" }, "molten_tin": { elem1: "pulsium_bar", elem2: "pulsium_bar" }, "water": { elem1: "sap", elem2: "sap" }, + "magma": { elem1: "pulsium_bar", elem2: "pulsium_bar" }, } }; @@ -128,6 +129,7 @@ elements.iced_pheonix = { behavior: behaviors.SOLID, category: "fantasy", state: "solid", + breakInto: "ice", density: 1.5, weight: 100, update: function(x, y) { @@ -135,4 +137,107 @@ elements.iced_pheonix = { }, }; +// New Fantasy Elements with Updated Reactions +elements.dragon_scale = { + color: "#8B4513", + behavior: behaviors.SOLID, + category: "fantasy", + state: "solid", + density: 0.8, + weight: 60, + update: function(x, y) { + // Update the element's behavior + }, + reactions: { + "fire": { elem1: null, elem2: "dragon_breath" }, + "plasma": { elem1: null, elem2: "dragon_breath" }, + "goblins_delight": { elem1: "dragon_breath", elem2: null }, + "pulsium": { elem1: "dragon_breath", elem2: null }, + "oil": { elem1: null, elem2: "dragon_breath" }, + "salt": { elem1: "dragon_breath", elem2: null }, + "sap": { elem1: "dragon_breath", elem2: null }, + "water": { elem1: "dragon_breath", elem2: null }, + "laser": { elem1: null, elem2: "dragon_breath" }, + "oxygen": { elem1: null, elem2: "dragon_breath" }, + "wall": { elem1: "dragon_breath", elem2: null }, + "glass": { elem1: null, elem2: "dragon_breath" }, + "wood": { elem1: null, elem2: "dragon_breath" }, + "charcoal": { elem1: null, elem2: "dragon_breath" }, + }, +}; +elements.mystic_runes = { + color: "#9932CC", + behavior: behaviors.SOLID, + category: "fantasy", + state: "solid", + density: 0.8, + weight: 60, + update: function(x, y) { + // Update the element's behavior + }, + reactions: { + "heat_ray": { elem1: null, elem2: "mystic_runes" }, + "god_ray": { elem1: null, elem2: "mystic_runes" }, + "laser": { elem1: null, elem2: "mystic_runes" }, + "helium": { elem1: null, elem2: "mystic_runes" }, + "oxygen": { elem1: null, elem2: "mystic_runes" }, + "sugar": { elem1: null, elem2: "mystic_runes" }, + "wall": { elem1: "mystic_runes", elem2: null }, + "glass": { elem1: null, elem2: "mystic_runes" }, + "wood": { elem1: null, elem2: "mystic_runes" }, + "charcoal": { elem1: null, elem2: "mystic_runes" }, + "diamond": { elem1: null, elem2: "mystic_runes" }, + }, +}; + +elements.enchanted_wood = { + color: "#923B70", + behavior: behaviors.SOLID, + category: "fantasy", + state: "solid", + density: 0.8, + weight: 60, + update: function(x, y) { + // Update the element's behavior + }, + reactions: { + "fire": { elem1: null, elem2: "charcoal" }, + "plasma": { elem1: null, elem2: "charcoal" }, + "water": { elem1: null, elem2: "mystic_runes" }, + }, +}; + +// update 1.1 below +// adds 3 more extra elements +// by hackerpro908 +// main game by R74N called sandboxels + +elements.quartzium = { + color: "#51484f", + behavior: behaviors.SOLID, + category: "fantasy", + state: "solid", + density: 1065, + weight: 100, + reactions: { + "fire": { elem1: "quartz", elem2: "quartz" }, + }, +}; +elements.quartz = { + color: "#ebedeb", + behavior: behaviors.SOLID, + category: "fantasy", + state: "solid", + density: 8076, + weight: 100, +}; + +elements.moonite = { + color: "#e6e6e6", + behavior: behaviors.SUPERFLUID, + category: "fantasy", + state: "solid", + density: 8076, + weight: 100, +}; From 4384034533aeef0af50ec5804422b238e8a2ef8d Mon Sep 17 00:00:00 2001 From: Ilikepizza2006 <146470829+Ilikepizza2006@users.noreply.github.com> Date: Fri, 5 Jan 2024 20:43:49 +0100 Subject: [PATCH 23/29] Update 1.3 --- mods/pizzasstuff.js | 139 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 137 insertions(+), 2 deletions(-) diff --git a/mods/pizzasstuff.js b/mods/pizzasstuff.js index 996a0d54..f887dc5b 100644 --- a/mods/pizzasstuff.js +++ b/mods/pizzasstuff.js @@ -46,6 +46,42 @@ elements.fruit_ice_cream = { hidden: "TRUE", }; +elements.chocolate_yogurt = { + color: "#825c4b", + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + hidden: "TRUE", + tempLow: 0, + stateLow: "frozen_chocolate_yogurt", +}; + +elements.fruit_yogurt = { + color: "#f587d0", + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + hidden: "TRUE", + tempLow: 0, + stateLow: "frozen_fruit_yogurt", +}; + +elements.frozen_fruit_yogurt = { + color: "#ffc2ea", + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + hidden: "TRUE", +}; + +elements.frozen_chocolate_yogurt = { + color: "#ad8776", + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + hidden: "TRUE", +}; + elements.cooking_oil = { color: "#c4ab4f", behavior: behaviors.LIQUID, @@ -81,6 +117,14 @@ elements.rose_sauce = { hidden: "TRUE", }; +elements.rose_sauce = { + color: "#f0340e", + behavior: behaviors.LIQUID, + category: "food", + state: "solid", + hidden: "TRUE", +}; + elements.smashed_ice = { color: "#c3d4e6", behavior: behaviors.LIQUID, @@ -88,6 +132,8 @@ elements.smashed_ice = { state: "solid", reactions: { "grape": { elem1: null, elem2: "fruit_slushy" }, + "green_grape": { elem1: null, elem2: "fruit_slushy" }, + "cherry": { elem1: null, elem2: "fruit_slushy" }, "chocolate": { elem1: null, elem2: "chocolate_slushy" }, "juice": { elem1: null, elem2: "fruit_slushy" }, "chocolate_sauce": { elem1: null, elem2: "chocolate_slushy" }, @@ -95,7 +141,7 @@ elements.smashed_ice = { density: 100, tempHigh: 25, stateHigh: "water", - tempLow: -50, + tempLow: -100, stateLow: "snow", }; @@ -134,11 +180,55 @@ elements.moth = { stateLow: "dead_bug", }; +elements.cherry = { + color: "#c41428", + behavior: behaviors.POWDER, + category: "food", + state: "solid", + breakInto: "juice", + tempHigh: 256, + stateHigh: "steam", + breakIntoColor: "#450008", +}; + +elements.orange = { + color: "#ff9100", + behavior: behaviors.POWDER, + category: "food", + state: "solid", + breakInto: "juice", + tempHigh: 256, + stateHigh: "steam", + breakIntoColor: "#d69c4f", +}; + +elements.kiwi = { + color: "#34611a", + behavior: behaviors.POWDER, + category: "food", + state: "solid", + breakInto: "juice", + tempHigh: 256, + stateHigh: "steam", + breakIntoColor: "#517a38", +}; + +elements.green_grape = { + color: "#b6eb7f", + behavior: behaviors.POWDER, + category: "food", + state: "solid", + breakInto: "juice", + breakIntoColor: "#5f8536", + tempHigh: 256, + stateHigh: "steam", +}; + if (!elements.lettuce.reactions) elements.lettuce.reactions = {}; elements.lettuce.reactions.ice_cream = { elem1: "moss", elem2: null } if (!elements.ketchup.reactions) elements.ketchup.reactions = {}; -elements.ketchup.reactions.mayonnaise = { elem1: "rose_sauce", elem2: null } +elements.ketchup.reactions.yolk = { elem1: "rose_sauce", elem2: null } if (!elements.bread.reactions) elements.bread.reactions = {}; @@ -187,6 +277,21 @@ elements.ice_cream.reactions.juice = { elem1: "fruit_ice_cream", elem2: null } if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; elements.ice_cream.reactions.grape = { elem1: "fruit_ice_cream", elem2: null } +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.jelly = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.cherry = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.orange = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.kiwi = { elem1: "fruit_ice_cream", elem2: null } + +if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; +elements.ice_cream.reactions.green_grape = { elem1: "fruit_ice_cream", elem2: null } + if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; elements.ice_cream.reactions.chocolate = { elem1: "chocolate_ice_cream", elem2: null } @@ -195,3 +300,33 @@ elements.ice_cream.reactions.chocolate_sauce = { elem1: "chocolate_ice_cream", e if (!elements.ice_cream.reactions) elements.ice_cream.reactions = {}; elements.ice_cream.reactions.melted_chocolate = { elem1: "chocolate_ice_cream", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.grape = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.juice = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.green_grape = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.cherry = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.kiwi = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.orange = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.jelly = { elem1: "fruit_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.chocolate = { elem1: "chocolate_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.chocolate_sauce = { elem1: "chocolate_yogurt", elem2: null } + +if (!elements.yogurt.reactions) elements.yogurt.reactions = {}; +elements.yogurt.reactions.melted_chocolate = { elem1: "chocolate_yogurt", elem2: null } From c0a7ca295fc63722bd4780a7efc60e94fc471d3b Mon Sep 17 00:00:00 2001 From: stefanblox <155691462+stefanblox@users.noreply.github.com> Date: Fri, 5 Jan 2024 16:44:57 -0300 Subject: [PATCH 24/29] sbstuff 1.1 new version of sbstuff mod --- mods/sbstuff.js | 157 +++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 141 insertions(+), 16 deletions(-) diff --git a/mods/sbstuff.js b/mods/sbstuff.js index cff18e40..238b5bd0 100644 --- a/mods/sbstuff.js +++ b/mods/sbstuff.js @@ -1,23 +1,148 @@ -elements.rice = { - color: "#d1d1d1", - behavior: behaviors.POWDER, - category: "food", - state: "liquid", - reactions: { - "fire": { elem1: "rice", elem2: "burnt_rice" }, - "heat": { elem1: "rice", elem2: "burnt_rice" }, - "plasma": { elem1: "fire", elem2: "ash" }, - "incinerate": { elem1: "fire", elem2: "ash" }, - "heat_ray": { elem1: "fire", elem2: "ash" }, - } -}; - elements.burnt_rice = { + density: 699, color: "#242424", behavior: behaviors.POWDER, category: "food", state: "liquid", reactions: { - "water": { elem1 : null, elem2: "dirty_water" }, + "water": { elem1: null, elem2: "dirty_water" } } -}; \ No newline at end of file +}; + +elements.rice = { + burnInto: "burnt_rice", + density: 696, + tempHigh: 232, + stateHigh: "burnt_rice", + color: "#d1d1d1", + behavior: behaviors.POWDER, + category: "food", + state: "liquid", +}; + +elements.moth = { + color: "#57381a", + behavior: behaviors.GAS, + category: "life", + state: "solid", +}; + +elements.moss = { + density: 1000, + color: "#2d571a", + behavior: behaviors.POWDER, + category: "land", + state: "solid", +}; + +elements.mc_donalds = { + density: 69, + color: "#ff0000", + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", +}; + +elements.maple_syrup = { + density: 1333, + hardness: 1, + color: "#9c6000", + behavior: behaviors.LIQUID, + category: "liquids", + state: "liquid", +}; + +elements.boiled_egg = { + density: 700, + breakInto: "yolk", + tempHigh: 500, + stateHigh: "ash", + color: "#fff9d1", + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "liquid", +}; + +elements.dark_oak = { + breakInto: "dark_oak_wood", + tempHigh: 500, + stateHigh: "ash", + color: "#302216", + behavior: behaviors.WALL, + category: "solids", + state: "solid", +}; + +elements.dark_oak_wood = { + tempHigh: 500, + stateHigh: "ash", + color: "#573e28", + behavior: behaviors.SUPPORT, + category: "land", + state: "solid", +}; + +elements.avocado = { + tempHigh: 1000, + breakInto: "guacamole", + stateHigh: "ash", + color: "#254a22", + behavior: behaviors.SUPPORTPOWDER, + category: "food", + state: "liquid", +}; + +elements.guacamole = { + tempHigh: 1000, + stateHigh: "ash", + color: "#a2e09d", + behavior: behaviors.POWDER, + category: "food", + state: "liquid", +}; + +elements.watermelon = { + tempHigh: 1000, + stateHigh: "ash", + breakInto: "water_from_the_melon", + color: "#40993f", + behavior: behaviors.SUPPORT, + category: "food", + state: "solid", +}; + +elements.water_from_the_melon = { + tempHigh: 1000, + stateHigh: "steam", + color: "#ff5d47", + behavior: behaviors.LIQUID, + category: "liquids", + state: "liquid", +}; + +elements.nachos = { + tempHigh: 1000, + stateHigh: "ash", + color: "#ff5d47", + behavior: behaviors.SUPPORTPOWDER, + category: "food", + state: "solid", +}; + +elements.cherry = { + tempHigh: 1000, + stateHigh: "ash", + color: "#ff0f0f", + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", +}; + +elements.green_cherry = { + tempHigh: 1000, + stateHigh: "ash", + color: "#5ce344", + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", +}; From 6969ead9b688432a56e1b077da01480cdbc1f5f0 Mon Sep 17 00:00:00 2001 From: stefanblox <155691462+stefanblox@users.noreply.github.com> Date: Fri, 5 Jan 2024 17:21:44 -0300 Subject: [PATCH 25/29] sbstuff 1.1.1 --- mods/sbstuff.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mods/sbstuff.js b/mods/sbstuff.js index 238b5bd0..f954b541 100644 --- a/mods/sbstuff.js +++ b/mods/sbstuff.js @@ -146,3 +146,12 @@ elements.green_cherry = { category: "food", state: "solid", }; + +elements.meth = { + tempHigh: 5000, + stateHigh: "steam", + color: "#0affef", + behavior: behaviors.POWDER, + category: "powders", + state: "solid", +}; From d39ba001f228058b8f66c7e235dbe2bedb5f3f36 Mon Sep 17 00:00:00 2001 From: Jayd-Rubies <155784127+Jayd-Rubies@users.noreply.github.com> Date: Fri, 5 Jan 2024 18:26:37 -0500 Subject: [PATCH 26/29] Add files via upload --- mods/jaydsmods.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 mods/jaydsmods.js diff --git a/mods/jaydsmods.js b/mods/jaydsmods.js new file mode 100644 index 00000000..1070777b --- /dev/null +++ b/mods/jaydsmods.js @@ -0,0 +1,31 @@ +elements.test_element = { + color: "#ff0000", + behavior: behaviors.POWDER, + category: "land", + state: "solid", + reactions: { + "dirt": { elem1: null, elem2: "mud" }, + } + }, +elements.tsar_bomba = { + color: "#524c41", + behavior: [ + "XX|EX:150>plasma|XX", + "XX|XX|XX", + "M2|M1 AND EX:150>plasma|M2", + ], + category: "weapons", + state: "solid", + density: 1300, + excludeRandom: true, + cooldown: defaultCooldown +} +elements.meese = { + color: "#996515", + behavior: [ + "XX|XX|XX", + "XX|FX%0.25|M2%0.5 AND BO", + "XX|M1|XX", + ], + category: "life" + } \ No newline at end of file From b6b736da4466d6cdcb12575e3abd327b5834577d Mon Sep 17 00:00:00 2001 From: stefanblox <155691462+stefanblox@users.noreply.github.com> Date: Fri, 5 Jan 2024 20:51:00 -0300 Subject: [PATCH 27/29] sbstuff 1.2 added a bunch more of stuff and a little special thing in special category ;) --- mods/sbstuff.js | 90 ++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 82 insertions(+), 8 deletions(-) diff --git a/mods/sbstuff.js b/mods/sbstuff.js index f954b541..725dce98 100644 --- a/mods/sbstuff.js +++ b/mods/sbstuff.js @@ -1,4 +1,6 @@ elements.burnt_rice = { + tempHigh: 999, + stateHigh: "ash", density: 699, color: "#242424", behavior: behaviors.POWDER, @@ -10,6 +12,7 @@ elements.burnt_rice = { }; elements.rice = { + isFood: true, burnInto: "burnt_rice", density: 696, tempHigh: 232, @@ -21,6 +24,8 @@ elements.rice = { }; elements.moth = { + tempHigh: 500, + stateHigh: "ash", color: "#57381a", behavior: behaviors.GAS, category: "life", @@ -28,6 +33,8 @@ elements.moth = { }; elements.moss = { + tempHigh: 500, + stateHigh: "ash", density: 1000, color: "#2d571a", behavior: behaviors.POWDER, @@ -36,6 +43,8 @@ elements.moss = { }; elements.mc_donalds = { + tempHigh: 6969, + stateHigh: "void", density: 69, color: "#ff0000", behavior: behaviors.STURDYPOWDER, @@ -44,6 +53,9 @@ elements.mc_donalds = { }; elements.maple_syrup = { + isFood: true, + tempHigh: 500, + stateHigh: "steam", density: 1333, hardness: 1, color: "#9c6000", @@ -53,6 +65,7 @@ elements.maple_syrup = { }; elements.boiled_egg = { + isFood: true, density: 700, breakInto: "yolk", tempHigh: 500, @@ -83,7 +96,8 @@ elements.dark_oak_wood = { }; elements.avocado = { - tempHigh: 1000, + isFood: true, + tempHigh: 500, breakInto: "guacamole", stateHigh: "ash", color: "#254a22", @@ -93,7 +107,8 @@ elements.avocado = { }; elements.guacamole = { - tempHigh: 1000, + isFood: true, + tempHigh: 500, stateHigh: "ash", color: "#a2e09d", behavior: behaviors.POWDER, @@ -102,7 +117,8 @@ elements.guacamole = { }; elements.watermelon = { - tempHigh: 1000, + isFood: true, + tempHigh: 500, stateHigh: "ash", breakInto: "water_from_the_melon", color: "#40993f", @@ -112,7 +128,8 @@ elements.watermelon = { }; elements.water_from_the_melon = { - tempHigh: 1000, + isFood: true, + tempHigh: 500, stateHigh: "steam", color: "#ff5d47", behavior: behaviors.LIQUID, @@ -121,16 +138,18 @@ elements.water_from_the_melon = { }; elements.nachos = { - tempHigh: 1000, + isFood: true, + tempHigh: 500, stateHigh: "ash", - color: "#ff5d47", + color: "#bd7b26", behavior: behaviors.SUPPORTPOWDER, category: "food", state: "solid", }; elements.cherry = { - tempHigh: 1000, + isFood: true, + tempHigh: 500, stateHigh: "ash", color: "#ff0f0f", behavior: behaviors.STURDYPOWDER, @@ -139,7 +158,8 @@ elements.cherry = { }; elements.green_cherry = { - tempHigh: 1000, + isFood: true, + tempHigh: 500, stateHigh: "ash", color: "#5ce344", behavior: behaviors.STURDYPOWDER, @@ -148,6 +168,7 @@ elements.green_cherry = { }; elements.meth = { + hardness: 1, tempHigh: 5000, stateHigh: "steam", color: "#0affef", @@ -155,3 +176,56 @@ elements.meth = { category: "powders", state: "solid", }; + +elements.garlic = { + isFood: true, + tempHigh: 500, + stateHigh: "ash", + color: "#ffebbd", + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", + reactions: { + "bread": { elem1: null, elem2: "garlic_bread" }, + } +}; + +elements.garlic_bread = { + isFood: true, + breakInto: "crumb", + tempHigh: 500, + stateHigh: "ash", + color: ["#db9b56", "#288a0c", "#db9b56", "#db9b56", "#db9b56", "#db9b56"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", +}; + +elements.kiwi = { + isFood: true, + tempHigh: 500, + stateHigh: "ash", + color: ["#0f4700", "#0f4700", "#0f4700", "#0f4700", "#0f4700", "#0f4700", "#0f4700", "#0f4700", "#0f4700", "#210a00"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", +}; + +elements.peanut_butter = { + isFood: true, + tempHigh: 500, + stateHigh: "ash", + color: "#d4903d", + behavior: behaviors.POWDER, + category: "food", + state: "solid", +}; + +elements.poop = { + tempHigh: 500, + stateHigh: "ash", + color: "#331600", + behavior: behaviors.STURDYPOWDER, + category: "special", + state: "solid", +}; From 15e52a694827fc6109cf3c1a348e8b1d52da3c4a Mon Sep 17 00:00:00 2001 From: stefanblox <155691462+stefanblox@users.noreply.github.com> Date: Fri, 5 Jan 2024 22:20:00 -0300 Subject: [PATCH 28/29] sbstuff 1.3 added some foods and 3 marshmallow variants --- mods/sbstuff.js | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/mods/sbstuff.js b/mods/sbstuff.js index 725dce98..45bb4c84 100644 --- a/mods/sbstuff.js +++ b/mods/sbstuff.js @@ -229,3 +229,48 @@ elements.poop = { category: "special", state: "solid", }; + +elements.marshmallow = { + tempHigh: 50, + stateHigh: "cooked_marshmallow", + color: "#ffe4e3", + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", +}; + +elements.cooked_marshmallow = { + tempHigh: 150, + stateHigh: "burnt_marshmallow", + color: "#d49e9d", + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "liquid", +}; + +elements.burnt_marshmallow = { + tempHigh: 500, + stateHigh: "ash", + color: "#1c1212", + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "solid", +}; + +elements.ramen = { + tempHigh: 500, + stateHigh: "ash", + color: "#fae34d", + behavior: behaviors.POWDER, + category: "food", + state: "solid", +}; + +elements.cereal = { + tempHigh: 500, + stateHigh: "ash", + color: ["#ba3425", "#baa31e", "#26ba1e", "#1e9dba", "#6f1eba"], + behavior: behaviors.STURDYPOWDER, + category: "food", + state: "liquid", +}; From 14297152e18a3aef2f07314212697e13cbc1c3c4 Mon Sep 17 00:00:00 2001 From: Jayd-Rubies <155784127+Jayd-Rubies@users.noreply.github.com> Date: Fri, 5 Jan 2024 21:07:04 -0500 Subject: [PATCH 29/29] Add files via upload --- mods/obsidian.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 mods/obsidian.js diff --git a/mods/obsidian.js b/mods/obsidian.js new file mode 100644 index 00000000..929e0050 --- /dev/null +++ b/mods/obsidian.js @@ -0,0 +1,29 @@ +elements.obsidian = { + color: ["#343434", "#313639"], + behavior: behaviors.SOLID, + category: "solids", + state: "solid", + reactions: { + "sand": { elem1: "obsidian_shard" }, + "dirt": { elem1: "obsidian_shard" }, + "rock": { elem1: "obsidian_shard" }, + "mudstone": { elem1: "obsidian_shard" }, + "packed_snow": { elem1: "obsidian_shard" }, + "gravel": { elem1: "obsidian_shard" }, + "clay": { elem1: "obsidian_shard" }, + "clay_soil": { elem1: "obsidian_shard" }, + "permafrost": { elem1: "obsidian_shard" }, + "mulch": { elem1: "obsidian_shard" }, + "basalt": { elem1: "obsidian_shard" }, + "tuff": { elem1: "mud" }, + "limestone": { elem1: "obsidian_shard" }, + "quicklime": { elem1: "obsidian_shard" }, + "slaked_lime": { elem1: "obsidian_shard" }, + } + }, + elements.obsidian_shard = { + color: ["#343434" , "#313639"], + behavior: behaviors.POWDER, + category: "powders", + state: "solid", + } \ No newline at end of file