Merge branch 'main' into main

This commit is contained in:
slweeb 2024-01-06 10:27:30 -05:00 committed by GitHub
commit 4b6973005f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 1144 additions and 160 deletions

View File

@ -200,6 +200,8 @@
<!----><tr><td class="modCat" colspan="3">Food & Cooking</td></tr><!---->
<tr><td>bananas.js</td><td>Adds bananas and banana plants</td><td>Alice</td></tr>
<tr><td>ketchup_mod.js</td><td>Adds a bunch of ketchup related stuff, plus a few other condiments</td><td>Nubo318 (main dev), Devi, Alice (contributors)</td></tr>
<tr><td>pizzasstuff.js</td><td>New animals, foods, and plants</td><td>_ilikepizza_</td></tr>
<tr><td>sbstuff.js</td><td>Adds Rice</td><td>Stefan Blox</td></tr>
<!----><tr><td class="modCat" colspan="3">Life & Nature</td></tr><!---->
<tr><td>apioforms_pre.js</td><td>An incomplete implementation of elements from the <a href="https://osmarks.net/apioform/">Apioform Game</a></td><td>Alice</td></tr>
@ -209,6 +211,7 @@
<tr><td>crimson.js</td><td>Adds elements relating to the Crimson from Terraria</td><td>Alice</td></tr>
<tr><td>fairy_chain.js</td><td>Adds way too many fairies to fey_and_more.js</td><td>Alice</td></tr>
<tr><td>fantastic_creatures.js</td><td>Adds various animals</td><td>Melecie</td></tr>
<tr><td>fantasy_elements.js</td><td>Fantasy creatures and substances</td><td>pixelegend4</td></tr>
<tr><td>fey_and_more.js</td><td>Adds fairies, magic, and a lot of other things</td><td>Melecie</td></tr>
<tr><td>fwibblen.js</td><td>Adds a flying creature that turns nickel into itself, and a second creature that does the same to the first one</td><td>Alice</td></tr>
<tr><td>human_edit.js</td><td>Improvements to humans</td><td>Alice</td></tr>
@ -216,10 +219,11 @@
<tr><td>mobs.js</td><td>Adds Creepers, Zombies, and Skeletons</td><td>Alice</td></tr>
<tr><td>nocancer.js</td><td>Removes cancer from the game one tick after it is created</td><td>mollthecoder</td></tr>
<tr><td>nocancer2.js</td><td>Removes cancer from the game altogether. May be incompatible with other mods that spawn cancer</td><td>mollthecoder</td></tr>
<tr><td>pizzasstuff.js</td><td>New animals, foods, and plants</td><td>_ilikepizza_</td></tr>
<tr><td>primordial_birthpool.js</td><td>A cross between Primordial Soup and Birthpool. Requires F&M</td><td>Alice</td></tr>
<tr><td>spring.js</td><td>Many nature elements, like sakura trees, butterflies, beehives, and more</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
<tr><td>the_ground.js</td><td>Adds several rock types, worldgen settings, and gemstones</td><td>Alice</td></tr>
<tr><td>the_ground_og.js</td><td>Simplified and more stable version of the_ground.js</td><td>Alice</td></tr>
<tr><td>the_ground.js</td><td>Adds several rock types, worldgen settings, and gemstones</td><td>Alice</td></tr>
<tr><td>toothpaste.js</td><td>Teeth and paste</td><td>Alice</td></tr>
<!----><tr><td class="modCat" colspan="3">Fun & Games</td></tr><!---->

View File

@ -3669,8 +3669,13 @@ color1 and color2 spread through striped paint like dye does with itself. <u>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;
@ -7986,7 +7991,7 @@ color1 and color2 spread through striped paint like dye does with itself. <u>col
behavior: behaviors.WALL,
state: "solid",
category: "rainbow variants",
};
}; //7989 yay soshi!
elements.lavashimmer = {
color: ["#ff3f00","#200800","#ff3f00","#200800"],
@ -8216,7 +8221,7 @@ color1 and color2 spread through striped paint like dye does with itself. <u>col
}
},
reactions: {
dye: elements.rainbow.reactions.dye, //7989 yay soshi!
dye: elements.rainbow.reactions.dye,
},
behavior: behaviors.WALL,
state: "solid",
@ -9648,7 +9653,7 @@ color1 and color2 spread through striped paint like dye does with itself. <u>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 +11280,11 @@ color1 and color2 spread through striped paint like dye does with itself. <u>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 +11535,7 @@ color1 and color2 spread through striped paint like dye does with itself. <u>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));
@ -13430,12 +13437,13 @@ Pixel size (rendering only): <input id="pixelSize"> (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 = {
@ -13461,7 +13469,7 @@ Pixel size (rendering only): <input id="pixelSize"> (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,
@ -13499,7 +13507,7 @@ Pixel size (rendering only): <input id="pixelSize"> (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
@ -13533,7 +13541,7 @@ Pixel size (rendering only): <input id="pixelSize"> (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,
@ -13562,7 +13570,7 @@ Pixel size (rendering only): <input id="pixelSize"> (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,
@ -13578,6 +13586,7 @@ Pixel size (rendering only): <input id="pixelSize"> (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) {
@ -13611,7 +13620,7 @@ Pixel size (rendering only): <input id="pixelSize"> (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,
@ -22516,28 +22525,30 @@ Pixel size (rendering only): <input id="pixelSize"> (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.
@ -23995,14 +24006,20 @@ Pixel size (rendering only): <input id="pixelSize"> (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
@ -24018,6 +24035,16 @@ Pixel size (rendering only): <input id="pixelSize"> (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
@ -24033,6 +24060,16 @@ Pixel size (rendering only): <input id="pixelSize"> (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)
@ -26326,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);
@ -26805,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 ##
@ -39388,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);
},
@ -41507,25 +41710,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;

View File

@ -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 element ID
*/
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 ? `<button class="${this.closeButtonClass ?? "XButton"}" onclick="closeMenu();">${this.closeButtonText}` : ""}</button>
<span class="menuTitle">${this.title ?? "Menu Screen"}</span><br><br><div class="menuText">` + this.innerHtml + "</div>";
<span class="menuTitle"${this.titleId ? ` id="${this.titleId}"` : ""}>${this.title ?? "Menu Screen"}</span><br><br><div class="menuText">` + this.innerHtml + "</div>";
this.nodes.forEach(n => inner.querySelector(".menuText").appendChild(n));
parent.appendChild(inner);
document.getElementById(id).appendChild(parent);

View File

@ -1396,9 +1396,7 @@ class GameScreen {
}
onKey(ev) {
if (!this.menuScreen) {
player.update(ev);
} else {
if (this.menuScreen) {
this.menuScreen.onKey(ev);
}
}

View File

@ -151,7 +151,6 @@ elements.dragon_scale = {
reactions: {
"fire": { elem1: null, elem2: "dragon_breath" },
"plasma": { elem1: null, elem2: "dragon_breath" },
"incinerate": { elem1: null, elem2: "ash" },
"goblins_delight": { elem1: "dragon_breath", elem2: null },
"pulsium": { elem1: "dragon_breath", elem2: null },
"oil": { elem1: null, elem2: "dragon_breath" },
@ -179,7 +178,7 @@ elements.mystic_runes = {
},
reactions: {
"heat_ray": { elem1: null, elem2: "mystic_runes" },
"god_ray": { elem1: dragon_scale, elem2: "dragon_scale" },
"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" },
@ -203,7 +202,7 @@ elements.enchanted_wood = {
// Update the element's behavior
},
reactions: {
"fire": { elem1: null, elem2: "mystic_runes" },
"fire": { elem1: null, elem2: "charcoal" },
"plasma": { elem1: null, elem2: "charcoal" },
"water": { elem1: null, elem2: "mystic_runes" },
},
@ -211,7 +210,7 @@ elements.enchanted_wood = {
// update 1.1 below
// adds 3 more extra elements
// by pixelegend4
// by hackerpro908
// main game by R74N called sandboxels
elements.quartzium = {
@ -223,7 +222,6 @@ elements.quartzium = {
weight: 100,
reactions: {
"fire": { elem1: "quartz", elem2: "quartz" },
"plasma": { elem1: "quartz", elem2: "quartz" },
},
};
elements.quartz = {
@ -243,101 +241,3 @@ elements.moonite = {
density: 8076,
weight: 100,
};
elements.faustium = {
color: "#8B008B",
behavior: behaviors.SUPERFLUID,
category: "fantasy",
state: "liquid",
density: 800,
viscosity: 0.01,
weight: 300,
reactions: {
"water": { elem1: "moonite", elem2: "moonite" },
},
};
// update 1.2
// adds more below
// added faustium reaction
elements.nebulaflare = {
color: ["#7500FF", "#00FFFB", "#FF00FC"],
behavior: behaviors.GAS,
state: "gas",
density: 0.1,
weight: 0.1,
category: "fantasy",
reactions: {
"fire": { elem1: "moonite", elem2: "moonite" },
"moonite": { elem1: "quartzium", elem2: "quartzium" },
},
};
elements.flaro = {
color: ["#ff4d4d", "#ff9933", "#ffd11a", "#ff9933", "#ff4d4d"],
behavior: behaviors.GAS,
category: "fantasy",
state: "gas",
density: 8076,
weight: 100,
};
elements.aurorium = {
color: ["#75c0e0", "#00ff00", "#ffffff", "#00ff00", "#75c0e0"],
behavior: behaviors.GAS,
category: "fantasy",
state: "gas",
density: 55,
weight: 1,
reactions: {
"plasma": { elem1: "explosion", elem2: "explosion" },
"flaro": { elem1: "nebulaflare", elem2: "nebulaflare" },
}
};
elements.glimmerium = {
color: ["#ff3333", "#ff6666", "#ff9999", "#ffcc99", "#ff6633"],
behavior: behaviors.LIGHT,
category: "fantasy",
state: "gas",
density: 0.01,
weight: 0.5,
temperature: 3000,
reactions: {
"aurorium": { elem1: "sodium", elem2: "sodium" },
"flaro": { elem1: "nebulaflare", elem2: "nebulaflare" },
"pulsium": { elem1: "water", elem2: "water" },
}
};
elements.goblin = {
"color": "#2ae856",
"state": "solid",
"category":"fantasy",
"behavior": [
"XX|XX|DL",
"XX|FX%0.5|M2%3 AND DL",
"XX|M1|XX",
],
reactions: {
"goblins_delight": { elem2:null, chance:0.9 },
},
};
elements.osmoz = {
color: "#1ff099",
behavior: behaviors.SOLID,
category: "fantasy",
state: "solid",
density: 5000,
weight: 300,
reactions: {
"fire": { elem1: "nebulaflare", elem2: "nebulaflare" },
}
};

31
mods/jaydsmods.js Normal file
View File

@ -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"
}

47
mods/morefoodsmod.js Normal file
View File

@ -0,0 +1,47 @@
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
};
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" }

57
mods/nastystuff.js Normal file
View File

@ -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',
}

View File

@ -1527,4 +1527,101 @@ elements.invisiblewall = {
}
},
category: "solids",
},
elements.bismuth = {
color: ["#818181","#989898","#b0b0b0","#c9c9c9"],
behavior: behaviors.WALL,
category: "solids",
tempHigh: 271.4,
stateHigh: "molten_bismuth",
density: 9780,
state: "solid"
}
function RGBtoHSV(r, g, b) {
if (arguments.length === 1) {
g = r.g, b = r.b, r = r.r;
}
var max = Math.max(r, g, b), min = Math.min(r, g, b),
d = max - min,
h,
s = (max === 0 ? 0 : d / max),
v = max / 255;
switch (max) {
case min: h = 0; break;
case r: h = (g - b) + d * (g < b ? 6: 0); h /= 6 * d; break;
case g: h = (b - r) + d * 2; h /= 6 * d; break;
case b: h = (r - g) + d * 4; h /= 6 * d; break;
}
return {
h: h,
s: s,
v: v
};
}
function HSVtoRGB(h, s, v) {
var r, g, b, i, f, p, q, t;
if (arguments.length === 1) {
s = h.s, v = h.v, h = h.h;
}
i = Math.floor(h * 6);
f = h * 6 - i;
p = v * (1 - s);
q = v * (1 - f * s);
t = v * (1 - (1 - f) * s);
switch (i % 6) {
case 0: r = v, g = t, b = p; break;
case 1: r = q, g = v, b = p; break;
case 2: r = p, g = v, b = t; break;
case 3: r = p, g = q, b = v; break;
case 4: r = t, g = p, b = v; break;
case 5: r = v, g = p, b = q; break;
}
return {
r: Math.round(r * 255),
g: Math.round(g * 255),
b: Math.round(b * 255)
};
}
elements.molten_bismuth = {
color: ["#ee8d63", "#ef7e5e", "#f06e5c", "#f05c5c"],
behavior: behaviors.MOLTEN,
category: "states",
state: "liquid",
temp: 280,
tick: function(pixel){
if (pixel.temp <= 261.4){
pixel.tHue = 0;
for (var i = 0; i < squareCoords.length; i++) {
var coord = squareCoords[i];
var x = pixel.x+coord[0];
var y = pixel.y+coord[1];
if (!isEmpty(x, y, true)){
if (pixelMap[x][y].element == "bismuth"){
var otherPixel = pixelMap[x][y]
var nR = parseInt(otherPixel.color.slice(4, otherPixel.color.indexOf(',')), 10)
var nG = parseInt(otherPixel.color.slice(otherPixel.color.indexOf(',') + 1, otherPixel.color.lastIndexOf(',')), 10)
var nB = parseInt(otherPixel.color.slice(otherPixel.color.lastIndexOf(',') + 1, -1), 10)
var hsvResult = RGBtoHSV(nR, nG, nB)
if ((pixel.tHue+1)%1 < hsvResult.h){
pixel.tHue = hsvResult.h;
}
}
}
}
changePixel(pixel, "bismuth")
if (1 == 1){
var rgbResult = HSVtoRGB(pixel.tHue + 0.02, 0.8, 0.8);
} else {
var rgbResult = HSVtoRGB(pixel.tHue, 0.8, 0.8);
}
const hexR = rgbResult.r.toString(16).padStart(2, '0');
const hexG = rgbResult.g.toString(16).padStart(2, '0');
const hexB = rgbResult.b.toString(16).padStart(2, '0');
const hexCode = `#${hexR}${hexG}${hexB}`;
pixel.color = pixelColorPick(pixel, hexCode)
}
},
density: 10049,
}

29
mods/obsidian.js Normal file
View File

@ -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",
}

332
mods/pizzasstuff.js Normal file
View File

@ -0,0 +1,332 @@
elements.fruit_slushy = {
color: "#b867cf",
behavior: behaviors.LIQUID,
category: "food",
state: "solid",
hidden: "TRUE",
};
elements.mold = {
color: "#86ab29",
behavior: behaviors.POWDER,
category: "food",
state: "solid",
hidden: "TRUE",
};
elements.chocolate_slushy = {
color: "#4f2e16",
behavior: behaviors.LIQUID,
category: "food",
state: "solid",
hidden: "TRUE",
};
elements.chocolate_sauce = {
color: "#754828",
behavior: behaviors.LIQUID,
category: "food",
state: "solid",
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.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,
category: "liquids",
state: "solid",
reactions: {
"meat": { elem1: null, elem2: "chicken_nuggets" },
"potato": { elem1: null, elem2: "fries" },
}
};
elements.chicken_nuggets = {
color: "#967242",
behavior: behaviors.POWDER,
category: "food",
state: "solid",
hidden: "TRUE",
};
elements.fries = {
color: "#ebba34",
behavior: behaviors.POWDER,
category: "food",
state: "solid",
hidden: "TRUE",
};
elements.rose_sauce = {
color: "#f0340e",
behavior: behaviors.LIQUID,
category: "food",
state: "solid",
hidden: "TRUE",
};
elements.rose_sauce = {
color: "#f0340e",
behavior: behaviors.LIQUID,
category: "food",
state: "solid",
hidden: "TRUE",
};
elements.smashed_ice = {
color: "#c3d4e6",
behavior: behaviors.LIQUID,
category: "food",
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" },
},
density: 100,
tempHigh: 25,
stateHigh: "water",
tempLow: -100,
stateLow: "snow",
};
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 = {
color: "#665233",
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",
};
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.yolk = { 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.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 }
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 }
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 }

276
mods/sbstuff.js Normal file
View File

@ -0,0 +1,276 @@
elements.burnt_rice = {
tempHigh: 999,
stateHigh: "ash",
density: 699,
color: "#242424",
behavior: behaviors.POWDER,
category: "food",
state: "liquid",
reactions: {
"water": { elem1: null, elem2: "dirty_water" }
}
};
elements.rice = {
isFood: true,
burnInto: "burnt_rice",
density: 696,
tempHigh: 232,
stateHigh: "burnt_rice",
color: "#d1d1d1",
behavior: behaviors.POWDER,
category: "food",
state: "liquid",
};
elements.moth = {
tempHigh: 500,
stateHigh: "ash",
color: "#57381a",
behavior: behaviors.GAS,
category: "life",
state: "solid",
};
elements.moss = {
tempHigh: 500,
stateHigh: "ash",
density: 1000,
color: "#2d571a",
behavior: behaviors.POWDER,
category: "land",
state: "solid",
};
elements.mc_donalds = {
tempHigh: 6969,
stateHigh: "void",
density: 69,
color: "#ff0000",
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
};
elements.maple_syrup = {
isFood: true,
tempHigh: 500,
stateHigh: "steam",
density: 1333,
hardness: 1,
color: "#9c6000",
behavior: behaviors.LIQUID,
category: "liquids",
state: "liquid",
};
elements.boiled_egg = {
isFood: true,
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 = {
isFood: true,
tempHigh: 500,
breakInto: "guacamole",
stateHigh: "ash",
color: "#254a22",
behavior: behaviors.SUPPORTPOWDER,
category: "food",
state: "liquid",
};
elements.guacamole = {
isFood: true,
tempHigh: 500,
stateHigh: "ash",
color: "#a2e09d",
behavior: behaviors.POWDER,
category: "food",
state: "liquid",
};
elements.watermelon = {
isFood: true,
tempHigh: 500,
stateHigh: "ash",
breakInto: "water_from_the_melon",
color: "#40993f",
behavior: behaviors.SUPPORT,
category: "food",
state: "solid",
};
elements.water_from_the_melon = {
isFood: true,
tempHigh: 500,
stateHigh: "steam",
color: "#ff5d47",
behavior: behaviors.LIQUID,
category: "liquids",
state: "liquid",
};
elements.nachos = {
isFood: true,
tempHigh: 500,
stateHigh: "ash",
color: "#bd7b26",
behavior: behaviors.SUPPORTPOWDER,
category: "food",
state: "solid",
};
elements.cherry = {
isFood: true,
tempHigh: 500,
stateHigh: "ash",
color: "#ff0f0f",
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
};
elements.green_cherry = {
isFood: true,
tempHigh: 500,
stateHigh: "ash",
color: "#5ce344",
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
};
elements.meth = {
hardness: 1,
tempHigh: 5000,
stateHigh: "steam",
color: "#0affef",
behavior: behaviors.POWDER,
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",
};
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",
};