Merge branch 'R74nCom:main' into main

This commit is contained in:
HACKERPRO908 2024-01-30 16:32:02 +00:00 committed by GitHub
commit 0c58f0077d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 982 additions and 20 deletions

View File

@ -171,6 +171,7 @@
<tr><td>nellfire.js</td><td>Adds a weird transforming flame and several rock types</td><td>Alice</td></tr>
<tr><td>Neutronium Mod.js</td><td>Variety of scientific elements<br>Explosions</td><td>StellarX20</td></tr>
<tr><td>neutronium_compressor.js</td><td>Adds a compressor (in reference to Minecrafts Avaritia mod) that compresses 10,000 pixels of an element into a “singularity”</td><td>Alice</td></tr>
<tr><td>noblegas.js</td><td>Adds the missing noble gases</td><td>nousernamefound</td></tr>
<tr><td>random_rocks.js</td><td>Randomly generates rocks on game load</td><td>Alice</td></tr>
<tr><td>roseyiede.js</td><td>Adds several variants of a substance called roseyiede</td><td>Alice</td></tr>
<tr><td>some_tf_liquids.js</td><td>Adds various liquids from the Thermal Foundation Minecraft mod</td><td>Alice</td></tr>
@ -242,6 +243,7 @@
<tr><td>all_around_fillers.js</td><td>Adds directional Filler variants</td><td>idk73248</td></tr>
<tr><td>allliquids.js</td><td>Made all elements liquids</td><td>Alex</td></tr>
<tr><td>amogus.js</td><td>Adds a small amogus structure</td><td>Alice</td></tr>
<tr><td>collab_mod.js</td><td>Created by multiple people, adds random things</td><td>mrapple, ilikepizza, stefanblox</td></tr>
<tr><td>elem3.js</td><td>Adds all elements and combinations from Elemental 3 [Very Large]</td><td>Sophie</td></tr>
<tr><td>funny elements 2022-11-15.js</td><td>Adds a few curated randomly-generated elements</td><td>Alice</td></tr>
<tr><td>funny_liquid_2.js</td><td>Adds urine</td><td>Alice</td></tr>
@ -277,6 +279,7 @@
<!----><tr><td class="modCat" colspan="3">Technical Libraries & Tests</td></tr><!---->
<tr><td>a_bundle_of_tests.js</td><td>Several test functions</td><td>Alice</td></tr>
<tr><td>all_stain.js</td><td>Makes every element stain solids</td><td>stefanblox</td></tr>
<tr><td>betterMenuScreens.js</td><td>Library for mods to create their own menus</td><td>ggod</td></tr>
<tr><td>changePixelDebug.js</td><td>Makes the changePixel() function abort and log to console when it tries to change to a non-existent element</td><td>Alice</td></tr>
<tr><td>changeTempReactionParameter.js</td><td>Adds the changeTemp property to modded reactions</td><td>Alice</td></tr>

View File

@ -2,7 +2,7 @@
Created by SquareScreamYT and RealerRaddler
Thanks to Alice, nousernamefound and Fioushemastor for helping :)
v1.3.2
v1.4
Changelog (v1.0)
- added chickens
@ -170,6 +170,28 @@ Changelog (v1.3.2)
- added turnips
- added turnip seeds and leaves
- added turnip juice
Changelog (v1.4)
- added baking powder
- added corn starch
- added maple syrup
- added pancakes
- added pancake mix
- added pancake batter
- added normal pancakes
- added crispy pancakes
- added burnt pancakes
- added strawberries
- added strawberries
- added strawberry seeds, stem, and leaves
- added strawberry juice
- added whipped cream
- chicken eggs no longer hatch under 20 degrees
- added ginger
- added ginger juice
- added ginger rhizomes, pseudostems and leaves
*/
/*
@ -262,16 +284,22 @@ elements.chicken_egg = {
color: ["#e0d3ab","#d9cdb5"],
behavior: [
"XX|XX|XX",
"XX|FX%5 AND CH:chick%0.1|XX",
"XX|FX%5|XX",
"M2%30|M1|M2%30",
],
tick: function(pixel) {
if (Math.random() < 0.1 && pixel.temp > 20) {
changePixel(pixel,"chick")
}
doDefaults(pixel);
},
category: "food",
state: "solid",
temp: 30,
temp: 20,
tempLow: -18,
stateLow: "frozen_chicken_egg",
breakInto: ["yolk"],
tempHigh: 500,
tempHigh: 400,
stateHigh: ["calcium", "ash"],
burn:50,
burnTime:450,
@ -1700,7 +1728,7 @@ elements.grape = {
stateHigh: ["steam","sugar"],
category: "food",
state: "solid",
density: 1154,
density: 825,
breakInto: "grape_juice",
ignoreAir: true,
isFood: true
@ -2013,7 +2041,6 @@ elements.coconut_milk = {
reactions: {
"melted_chocolate": { elem1:"chocolate_milk", elem2:null },
"chocolate": { elem1:"chocolate_milk", elem2:"melted_chocolate", chance:0.05 },
"coffee_ground": { elem1:"chocolate_milk", chance:0.05 },
"juice": { elem1:"fruit_milk", elem2:null, chance:0.05 },
"soda": { elem1:"pilk", elem2:null, chance:0.1 },
"yolk": { elem1:"eggnog", elem2:null, chance:0.1 },
@ -2529,7 +2556,7 @@ elements.turnip_leaves = {
}
elements.turnip = {
color: ["#945bb3","#a05cbd","#a053b8","#b364c4"],
behavior: behaviors.STURDYPOWDER,
behavior: behaviors.POWDER,
category:"food",
tempHigh: 100,
stateHigh: ["steam"],
@ -2557,3 +2584,567 @@ elements.turnip_juice = {
hidden: true,
temp: 30,
};
elements.corn = {
color: ["#f8d223","#d6ba2a","#f7f5ba","#dbd281","#cdb12d"],
tick: function(pixel) {
if (pixel.temp >= 180) {
changePixel(pixel,"popcorn");
if (isEmpty(pixel.x,pixel.y-1)) {
tryMove(pixel,pixel.x,pixel.y-1);
if (isEmpty(pixel.x-1,pixel.y)) { createPixel("pop",pixel.x-1,pixel.y) }
if (isEmpty(pixel.x+1,pixel.y)) { createPixel("pop",pixel.x+1,pixel.y) }
if (isEmpty(pixel.x,pixel.y-1)) { createPixel("pop",pixel.x,pixel.y-1) }
if (isEmpty(pixel.x,pixel.y+1)) { createPixel("pop",pixel.x,pixel.y+1) }
}
}
doDefaults(pixel)
},
category: "food",
burn: 10,
burnTime: 200,
breakInto: "corn_starch",
breakIntoColor: ["#ffe9a8","#ffecb3","#ffe28a"],
state: "solid",
density: 721,
seed: "corn_seed",
isFood: true,
movable: false,
}
elements.corn_starch = {
color: ["#fcf2e1","#f2e7d3","#fcf3de"],
behavior: behaviors.POWDER,
reactions: {
"water": { elem1: "dough", elem2: null },
"salt_water": { elem1: "dough", elem2: null },
"sugar_water": { elem1: "dough", elem2: null },
"seltzer": { elem1: "dough", elem2: null },
"pool_water": { elem1: "dough", elem2: null },
"juice": { elem1: "dough", elem2: null },
"yolk": { elem1: "batter", elem2: null },
"yogurt": { elem1: "batter", elem2: null },
"honey": { elem1:"gingerbread", elem2:null },
"molasses": { elem1:"gingerbread", elem2:null },
"sap": { elem1:"gingerbread", elem2:null },
"caramel": { elem1:"gingerbread", elem2:null },
"broth": { elem1:"dough", elem2:null },
"soda": { elem1:"dough", elem2:null },
"tea": { elem1:"dough", elem2:null },
"blood": { elem1:"dough", elem2:null },
"infection": { elem1:"dough", elem2:null },
"antibody": { elem1:"dough", elem2:null },
"milk": { elem1:"dough", elem2:null },
"cream": { elem1:"dough", elem2:null },
"melted_butter": { elem1:"sauce", elem2:null, color1:"#DF8D32" },
},
category: "food",
tempHigh: 400,
stateHigh: "fire",
burn:40,
burnTime:25,
state: "solid",
density: 600,
isFood: true
}
elements.baking_powder = {
color: "#fffaf0",
behavior: behaviors.POWDER,
category: "food",
state: "solid",
burn: 40,
tempHigh: 400,
stateHigh: ["salt","carbon_dioxide"],
burnTime: 25,
density: 600,
isFood: true,
reactions: {
"flour": { elem1: "pancake_mix", elem2: null, color1: "#e8b77b"},
},
};
if (!elements.baking_soda.reactions) elements.baking_soda.reactions = {};
elements.baking_soda.reactions.neutral_acid = { elem1: "baking_powder", elem2: null }
elements.pancake_mix = {
color: ["#f2e9c7","#f7ebbe"],
behavior: behaviors.POWDER,
reactions: {
"water": { elem1: "pancake_batter", elem2: null },
},
category: "food",
tempHigh: 400,
stateHigh: "fire",
burn:40,
burnTime:25,
state: "solid",
density: 600,
isFood: true
},
elements.pancake_batter = {
color: "#e6da9e",
behavior: behaviors.LIQUID,
category: "food",
tempHigh: 70,
stateHigh: "pancake",
stateHighColorMultiplier: 0.9,
burn:40,
burnTime:25,
burnInto:"ash",
state: "liquid",
viscosity: 10000,
density: 1001,
hidden: true,
isFood: true
}
elements.sap = {
color: ["#b67f18","#c86305","#cf7a19","#e4ae3a"],
behavior: behaviors.LIQUID,
reactions: {
"dead_bug": { elem1:"amber", elem2:null, chance:0.1 },
"ant": { elem1:"amber", elem2:null, chance:0.1 },
"fly": { elem1:"amber", elem2:null, chance:0.1 },
"flea": { elem1:"amber", elem2:null, chance:0.1 },
"termite": { elem1:"amber", elem2:null, chance:0.1 },
"worm": { elem1:"amber", elem2:null, chance:0.1 },
"bee": { elem1:"amber", elem2:null, chance:0.1 },
"firefly": { elem1:"amber", elem2:null, chance:0.1 },
"stinkbug": { elem1:"amber", elem2:null, chance:0.1 },
"slug": { elem1:"amber", elem2:null, chance:0.1 },
"snail": { elem1:"amber", elem2:null, chance:0.1 },
},
tempHigh: 104,
stateHigh: ["maple_syrup","maple_syrup","maple_syrup","sap"],
tempLow: 0,
stateLowName: "amber",
category:"liquids",
state: "liquid",
viscosity: 15,
density: 1400
}
elements.maple_syrup = {
color: ["#fabb34","#facc34","#fabb34"],
behavior: behaviors.LIQUID,
tempHigh: 170,
stateHigh: ["sugar","smoke","smoke"],
tempLow: 0,
category:"liquids",
state: "liquid",
viscosity: 15,
hidden: true,
density: 1400
}
elements.pancake = {
color: "#e0d080",
behavior: behaviors.STURDYPOWDER,
tempHigh: 95,
stateHigh: "crispy_pancake",
category: "food",
burn: 10,
burnTime: 400,
burnInto: ["smoke","smoke","smoke","ash"],
breakInto: "crumb",
state: "solid",
density: 233.96,
hidden: true,
isFood: true
}
elements.crispy_pancake = {
color: "#c7a34a",
behavior: behaviors.STURDYPOWDER,
tempHigh: 150,
stateHigh: "burnt_pancake",
category: "food",
burn: 10,
burnTime: 400,
burnInto: ["smoke","smoke","smoke","ash"],
breakInto: "crumb",
state: "solid",
density: 233.96,
hidden: true,
isFood: true
}
elements.burnt_pancake = {
color: "#332709",
behavior: behaviors.STURDYPOWDER,
tempHigh: 550,
stateHigh: "ash",
category: "food",
burn: 10,
burnTime: 400,
burnInto: ["smoke","smoke","smoke","ash"],
breakInto: "crumb",
state: "solid",
density: 233.96,
hidden: true,
isFood: true
}
elements.strawberry_seed = {
color: "#7a7133",
behavior: behaviors.STURDYPOWDER,
reactions: {
"vinegar": { elem1:"dead_plant", elem2:null, chance:0.035 },
"baking_soda": { elem1:"dead_plant", elem2:null, chance:0.01 },
"bleach": { elem1:"dead_plant", elem2:null, chance:0.05 },
"alcohol": { elem1:"dead_plant", elem2:null, chance:0.035 },
"mercury": { elem1:"dead_plant", elem2:null, chance:0.01 },
"stench": { elem2:null, chance:0.25 },
},
tick: function(pixel) {
if (isEmpty(pixel.x,pixel.y+1)) {
movePixel(pixel,pixel.x,pixel.y+1);
}
else {
if (Math.random() < 0.02 && pixel.temp < 100) {
if (!outOfBounds(pixel.x,pixel.y+1)) {
var dirtPixel = pixelMap[pixel.x][pixel.y+1];
if (dirtPixel.element === "dirt" || dirtPixel.element === "mud" || dirtPixel.element === "sand" || dirtPixel.element === "wet_sand" || dirtPixel.element === "clay_soil" || dirtPixel.element === "mycelium") {
changePixel(pixel,"strawberry_stem");
}
}
}
pixel.age++;
}
doDefaults(pixel);
},
category:"life",
tempHigh: 100,
stateHigh: "dead_plant",
tempLow: -1.66,
stateLow: "frozen_plant",
burn:15,
burnTime:60,
burnInto: "dead_plant",
breakInto: "dead_plant",
state: "solid",
density: 1050,
cooldown: defaultCooldown
}
elements.strawberry_stem = {
color: "#419c2f",
behavior: [
"CR:strawberry_stem,strawberry_leaves,strawberry_leaves,strawberry_leaves,strawberry_leaves%3|CR:strawberry_stem,strawberry_leaves,strawberry_leaves,strawberry_leaves,strawberry_leaves%3|CR:strawberry_stem,strawberry_leaves,strawberry_leaves,strawberry_leaves,strawberry_leaves%3",
"CR:strawberry_stem,strawberry_leaves,strawberry_leaves,strawberry_leaves,strawberry_leaves%3|XX|CR:strawberry_stem,strawberry_leaves,strawberry_leaves,strawberry_leaves,strawberry_leaves%3",
"XX|M1|XX",
],
tick: function(pixel) {
if (isEmpty(pixel.x,pixel.y+1)) {
movePixel(pixel,pixel.x,pixel.y+1);
}
else {
if (Math.random() < 0.02 && pixel.age > 50 && pixel.temp < 100) {
if (!outOfBounds(pixel.x,pixel.y+1)) {
var dirtPixel = pixelMap[pixel.x][pixel.y+1];
if (dirtPixel.element === "dirt" || dirtPixel.element === "mud" || dirtPixel.element === "sand" || dirtPixel.element === "wet_sand" || dirtPixel.element === "clay_soil" || dirtPixel.element === "mycelium") {
changePixel(dirtPixel,"root");
}
}
}
pixel.age++;
}
doDefaults(pixel);
},
reactions: {
"vinegar": { elem1:"dead_plant", elem2:null, chance:0.035 },
"baking_soda": { elem1:"dead_plant", elem2:null, chance:0.01 },
"bleach": { elem1:"dead_plant", elem2:null, chance:0.05 },
"alcohol": { elem1:"dead_plant", elem2:null, chance:0.035 },
"mercury": { elem1:"dead_plant", elem2:null, chance:0.01 },
"stench": { elem2:null, chance:0.25 },
},
properties: {
"age":0
},
category:"life",
tempHigh: 100,
stateHigh: "dead_plant",
tempLow: -1.66,
stateLow: "frozen_plant",
burn:15,
burnTime:60,
burnInto: "dead_plant",
breakInto: "dead_plant",
state: "solid",
density: 1050,
}
elements.strawberry_leaves = {
color: "#4bad37",
behavior: [
"XX|CR:strawberry%2|XX",
"CR:strawberry%2|XX|CR:strawberry%2",
"M2|M1|M2",
],
reactions: {
"vinegar": { elem1:"dead_plant", elem2:null, chance:0.035 },
"baking_soda": { elem1:"dead_plant", elem2:null, chance:0.01 },
"bleach": { elem1:"dead_plant", elem2:null, chance:0.05 },
"alcohol": { elem1:"dead_plant", elem2:null, chance:0.035 },
"mercury": { elem1:"dead_plant", elem2:null, chance:0.01 },
"stench": { elem2:null, chance:0.25 },
},
category:"life",
tempHigh: 100,
stateHigh: "dead_plant",
tempLow: -1.66,
stateLow: "frozen_plant",
burn:15,
burnTime:60,
burnInto: "dead_plant",
breakInto: "dead_plant",
state: "solid",
density: 1050
}
elements.strawberry = {
color: "#f04b3c",
behavior: [
"XX|ST:strawberry_stem,strawberry_leaves|XX",
"ST:strawberry_stem,strawberry_leaves|XX|ST:strawberry_stem,strawberry_leaves",
"M2|M1|M2",
],
reactions: {
"vinegar": { elem1:"dead_plant", elem2:null, chance:0.035 },
"baking_soda": { elem1:"dead_plant", elem2:null, chance:0.01 },
"bleach": { elem1:"dead_plant", elem2:null, chance:0.05 },
"alcohol": { elem1:"dead_plant", elem2:null, chance:0.035 },
"mercury": { elem1:"dead_plant", elem2:null, chance:0.01 },
"stench": { elem2:null, chance:0.25 },
},
category:"food",
tempHigh: 100,
stateHigh: "dead_plant",
burn:15,
burnTime:60,
burnInto: "dead_plant",
breakInto: "strawberry_juice",
state: "solid",
density: 1050
}
elements.strawberry_juice = {
color: "#e03a3a",
behavior: behaviors.LIQUID,
category: "liquids",
tempHigh: 100,
stateHigh: ["steam","sugar"],
burn: 70,
burnTime: 300,
burnInto: ["steam", "smoke"],
state: "liquid",
density: 825,
hidden: true,
temp: 30,
tempLow: 0
};
elements.cream = {
color: "#f7f7f7",
behavior: behaviors.LIQUID,
onMix: function(cream1, cream2) {
if ((shiftDown && Math.random() < 0.01) || (elements[cream2.element].id === elements.cream.id && Math.random() < 0.1)) {
changePixel(cream1,"whipped_cream")
}
},
reactions: {
"dirt": { elem1: null, elem2: "mud" },
"sand": { elem1: null, elem2: "wet_sand" },
"clay_soil": { elem1: null, elem2: "clay" },
"melted_chocolate": { color1:"#664934", elem2:null },
"chocolate": { color1:"#664934", elem2:"melted_chocolate", chance:0.05 },
"juice": { elem1:"fruit_milk", elem2:null, chance:0.05 },
"soda": { elem1:"pilk", elem2:null, chance:0.1 },
"yolk": { elem1:"#eggnog", elem2:null, chance:0.1 },
"caramel": { color1:"#C8B39A", chance:0.05 },
"sugar": { elem2:null, chance:0.005},
},
viscosity: 1.5,
tempHigh: 1000,
stateHigh: ["smoke","smoke","smoke","steam","steam","calcium"],
tempLow: 0,
stateLow: "ice_cream",
stateLowColorMultiplier: 0.97,
category: "liquids",
hidden: true,
isFood: true,
state: "liquid",
density: 959.97,
}
elements.whipped_cream = {
color: "#fafafa",
behavior: behaviors.LIQUID,
reactions: {
"dirt": { elem1: null, elem2: "mud" },
"sand": { elem1: null, elem2: "wet_sand" },
"clay_soil": { elem1: null, elem2: "clay" },
"melted_chocolate": { color1:"#664934", elem2:null },
"chocolate": { color1:"#664934", elem2:"melted_chocolate", chance:0.05 },
"juice": { elem1:"fruit_milk", elem2:null, chance:0.05 },
"soda": { elem1:"pilk", elem2:null, chance:0.1 },
"yolk": { elem1:"#eggnog", elem2:null, chance:0.1 },
"caramel": { color1:"#C8B39A", chance:0.05 },
"sugar": { elem2:null, chance:0.005},
},
viscosity: 1.5,
tempHigh: 1000,
stateHigh: ["smoke","smoke","smoke","steam","steam","calcium"],
tempLow: 0,
stateLow: "ice_cream",
stateLowColorMultiplier: 0.97,
category: "food",
hidden: true,
isFood: true,
state: "liquid",
density: 959.97,
viscosity: 2500000
}
elements.ginger = {
color: ["#b88f30","#d6a73a"],
behavior: [
"XX|XX|XX",
"XX|XX|XX",
"M2 AND CH:dirt,mud,sand,wet_sand,clay_soil,clay,mycelium,grass,color_sand>ginger,fiber%0.5|M1 AND CH:dirt,mud,sand,wet_sand,clay_soil,clay,mycelium,grass,color_sand>ginger,fiber,fiber%0.5|M2 AND CH:dirt,mud,sand,wet_sand,clay_soil,clay,mycelium,grass,color_sand>ginger,fiber%0.5",
],
reactions: {
"flour": { elem1:"gingerbread", elem2:null },
"bread": { elem1:"gingerbread", elem2:null },
},
tempHigh: 275,
stateHigh: "dirt",
tempLow: -50,
stateLow: "fiber",
burn: 20,
burnTime: 60,
burnInto: "dirt",
breakInto: "ginger_juice",
category: "food",
state: "solid",
density: 1250,
conduct: 0.1,
hidden: true
}
elements.ginger_rhizome = {
color: "#c7ad58",
tick: function(pixel) {
if (isEmpty(pixel.x,pixel.y+1)) {
movePixel(pixel,pixel.x,pixel.y+1);
}
else {
if (Math.random() < 0.02 && pixel.age > 50 && pixel.temp < 100) {
if (!outOfBounds(pixel.x,pixel.y+1)) {
var dirtPixel = pixelMap[pixel.x][pixel.y+1];
if (dirtPixel.element === "dirt" || dirtPixel.element === "mud" || dirtPixel.element === "sand" || dirtPixel.element === "wet_sand" || dirtPixel.element === "clay_soil" || dirtPixel.element === "mycelium") {
changePixel(dirtPixel,"ginger");
}
}
if (isEmpty(pixel.x,pixel.y-1)) {
movePixel(pixel,pixel.x,pixel.y-1);
createPixel("ginger_pseudostem",pixel.x,pixel.y+1);
}
if (isEmpty(pixel.x+1,pixel.y) && Math.random() < 0.2) {
createPixel("ginger_leaves",pixel.x+1,pixel.y);
}
if (isEmpty(pixel.x-1,pixel.y) && Math.random() < 0.2) {
createPixel("ginger_leaves",pixel.x-1,pixel.y);
}
}
else if (pixel.age > 250) {
changePixel(pixel,"ginger_leaves");
}
pixel.age++;
}
doDefaults(pixel);
},
properties: {
"age":0
},
tempHigh: 100,
stateHigh: "dead_plant",
tempLow: -2,
stateLow: "frozen_plant",
burn: 65,
burnTime: 15,
category: "life",
state: "solid",
density: 1500,
breakInto: "ginger_juice",
cooldown: defaultCooldown,
seed: true,
behavior: [
"XX|XX|XX",
"XX|FX%10|XX",
"XX|M1|XX",
],
reactions: {
"flour": { elem1:"gingerbread", elem2:null },
"bread": { elem1:"gingerbread", elem2:null },
},
};
elements.ginger_pseudostem = {
color: "#69a82d",
behavior: behaviors.STURDYPOWDER,
reactions: {
"vinegar": { elem1:"dead_plant", elem2:null, chance:0.035 },
"baking_soda": { elem1:"dead_plant", elem2:null, chance:0.01 },
"bleach": { elem1:"dead_plant", elem2:null, chance:0.05 },
"alcohol": { elem1:"dead_plant", elem2:null, chance:0.035 },
"mercury": { elem1:"dead_plant", elem2:null, chance:0.01 },
"stench": { elem2:null, chance:0.25 },
},
category:"life",
tempHigh: 100,
stateHigh: "dead_plant",
tempLow: -1.66,
stateLow: "frozen_plant",
burn:15,
burnTime:60,
burnInto: "dead_plant",
breakInto: "dead_plant",
state: "solid",
density: 1050
}
elements.ginger_leaves = {
color: "#52bd31",
behavior: behaviors.WALL,
reactions: {
"vinegar": { elem1:"dead_plant", elem2:null, chance:0.035 },
"baking_soda": { elem1:"dead_plant", elem2:null, chance:0.01 },
"bleach": { elem1:"dead_plant", elem2:null, chance:0.05 },
"alcohol": { elem1:"dead_plant", elem2:null, chance:0.035 },
"mercury": { elem1:"dead_plant", elem2:null, chance:0.01 },
"stench": { elem2:null, chance:0.25 },
"carbon_dioxide": { elem2:"oxygen", chance:0.25 },
},
category:"life",
tempHigh: 100,
stateHigh: "dead_plant",
tempLow: -1.66,
stateLow: "frozen_plant",
burn:15,
burnTime:60,
burnInto: "dead_plant",
breakInto: "dead_plant",
state: "solid",
density: 1050
}
elements.ginger_juice = {
color: "#ccc056",
behavior: behaviors.LIQUID,
category: "liquids",
tempHigh: 100,
stateHigh: ["steam","sugar"],
burn: 70,
burnTime: 300,
burnInto: ["steam", "smoke"],
state: "liquid",
density: 825,
hidden: true,
temp: 30,
tempLow: 0,
reactions: {
"flour": { elem1:"gingerbread", elem2:null },
"bread": { elem1:"gingerbread", elem2:null },
},
};

View File

@ -4177,7 +4177,6 @@ color1 and color2 spread through striped paint like dye does with itself. <u>col
return
})
};
doDefaults(pixel);
},
temp:6000,
@ -4195,6 +4194,39 @@ color1 and color2 spread through striped paint like dye does with itself. <u>col
ignoreAir: true
};
elements.holy_bomb = {
color: ["#dbb260", "#94591e"],
tick: function(pixel) {
if(!isEmpty(pixel.x,pixel.y-1,true)) { //[0][1] EX (ignore bounds)
var newPixel = pixelMap[pixel.x][pixel.y-1];
var newElement = newPixel.element;
var newInfo = elements[newElement];
if(newInfo.state !== "gas" && newElement !== pixel.element) {
explodeAtPlus(pixel.x,pixel.y,13,"holy_fire","plasma",null,firebombFire);
};
};
if(!isEmpty(pixel.x,pixel.y+1,true)) { //[2][1] EX (don't ignore bounds, non-bound case)
var newPixel = pixelMap[pixel.x][pixel.y+1];
var newElement = newPixel.element;
var newInfo = elements[newElement];
if(newInfo.state !== "gas" && newElement !== pixel.element) {
explodeAtPlus(pixel.x,pixel.y,13,"holy_fire","plasma",null,firebombFire);
};
};
if(outOfBounds(pixel.x,pixel.y+1)) { //[2][1] EX (don't ignore bounds, bound case)
explodeAtPlus(pixel.x,pixel.y,13,"holy_fire","plasma",null,firebombFire);
};
if(!tryMove(pixel,pixel.x,pixel.y+1)) { //behaviors.POWDER
Math.random() < 0.5 ? tryMove(pixel,pixel.x-1,pixel.y+1) : tryMove(pixel,pixel.x+1,pixel.y+1);
};
},
category: "weapons",
state: "solid",
density: 4000,
excludeRandom: true,
desc: "A bomb that burns the world to pure ash. <br/>To enable automatic bomb generation, set the generateBombs query parameter.",
};
elements.bless.ignore ??= [];
elements.bless.ignore.push("holy_fire");
@ -4288,6 +4320,39 @@ color1 and color2 spread through striped paint like dye does with itself. <u>col
ignoreAir: true
};
elements.god_slayer_bomb = {
color: ["#a43dcc", "#49b6d1"],
tick: function(pixel) {
if(!isEmpty(pixel.x,pixel.y-1,true)) { //[0][1] EX (ignore bounds)
var newPixel = pixelMap[pixel.x][pixel.y-1];
var newElement = newPixel.element;
var newInfo = elements[newElement];
if(newInfo.state !== "gas" && newElement !== pixel.element) {
explodeAtPlus(pixel.x,pixel.y,40,"god_slayer_fire","plasma");
};
};
if(!isEmpty(pixel.x,pixel.y+1,true)) { //[2][1] EX (don't ignore bounds, non-bound case)
var newPixel = pixelMap[pixel.x][pixel.y+1];
var newElement = newPixel.element;
var newInfo = elements[newElement];
if(newInfo.state !== "gas" && newElement !== pixel.element) {
explodeAtPlus(pixel.x,pixel.y,40,"god_slayer_fire","plasma");
};
};
if(outOfBounds(pixel.x,pixel.y+1)) { //[2][1] EX (don't ignore bounds, bound case)
explodeAtPlus(pixel.x,pixel.y,40,"god_slayer_fire","plasma");
};
if(!tryMove(pixel,pixel.x,pixel.y+1)) { //behaviors.POWDER
Math.random() < 0.5 ? tryMove(pixel,pixel.x-1,pixel.y+1) : tryMove(pixel,pixel.x+1,pixel.y+1);
};
},
category: "weapons",
state: "solid",
density: 4500,
excludeRandom: true,
desc: "A bomb that makes gods tremble. <br/>To enable automatic bomb generation, set the generateBombs query parameter.",
};
elements.cloner.burnTime = Infinity;
elements.cloner.burnInto = "cloner";
@ -28481,6 +28546,7 @@ Make sure to save your command in a file if you want to add this preset again.`
})
});
lightlikes = ["light","flash","laser","radiation","insulate_flash"];
firelikes = ["fire","plasma","smoke","stellar_plasma","liquid_plasma","liquid_stellar_plasma"];
grbBreakIntos = Object.keys(elements).filter(function(elemName) {
var to = typeof(elements[elemName]);
if(to == "undefined") {
@ -28661,6 +28727,75 @@ Make sure to save your command in a file if you want to add this preset again.`
noMix: true
};
elements.melt_ray = {
color: ["#ffbf7f","#ffffbf"],
tick: function(pixel) {
var x = pixel.x;
for (var y = pixel.y; y < height; y++) {
if (outOfBounds(x, y)) {
break;
}
if (isEmpty(x, y)) {
if (Math.random() > 0.02) { continue }
createPixel("insulate_flash", x, y);
pixelMap[x][y].color = "#e1f8fc";
}
else {
var otherPixel = pixelMap[x][y];
var otherInfo = elements[otherPixel.element];
//Gas: Heat, always penetrate
if (otherInfo.isGas) {
if(Math.random() < 0.05 && otherInfo.stateLow) {
meltPixel(otherPixel)
};
if(elements[otherPixel.element].isSun) {
otherPixel.temp += 0.5;
} else {
otherPixel.temp += 50;
};
continue;
};
//Self: Break
if (otherInfo.id === elements.melt_ray.id) { break }
//Non-gas, Melt chance, heat more, half penetrate
if(Math.random() < 0.05 && !otherInfo.isGas) {
meltPixel(otherPixel)
};
pixelMap[x][y].temp += 200;
if(Math.random() < 0.05) {
if(!isEmpty(x,y-1,false)) {
if(pixelMap[x]?.[y-1]?.element && lightlikes.includes(pixelMap[x][y-1].element)) {
deletePixel(x,y-1);
};
};
var newPlasma = tryCreatePixelReturn("liquid_plasma",x,y-1);
if(newPlasma) { newPlasma.temp += 500 };
};
//Penetrate snow and ice
if(firelikes && firelikes.includes(otherPixel.element)) {
continue;
};
if(Math.random() < 0.7) { //thanks, I hate random continue
continue;
};
break;
}
}
deletePixel(pixel.x, pixel.y);
},
temp: 4000,
category: "energy",
state: "gas",
excludeRandom: true,
noMix: true
};
elements.smash_ray = {
color: ["#ff9999", "#8c8279"],
tick: function(pixel) {

View File

@ -1,11 +1,30 @@
// Warning: This mod will remove all of your previously unlocked elements.
// unhide oxygen (air), dirt (earth), fire, and water
if (!settings.alchemyUnlocked) {
settings.alchemyUnlocked = {
"oxygen": true,
"dirt": true,
"fire": true,
"water": true,
};
}
if (settings.unlocked.alchemymod) {
for (var element in settings.unlocked) {
if (settings.unlocked[element]) {
settings.alchemyUnlocked[element] = true
}
}
}
// loop through the elements object
if (elements.explosion) {
elements.explosion.category = "tools";
}
for (var element in elements) {
if (elements[element].category !== "tools") {
if (settings.alchemyUnlocked[element]) {
elements[element].hidden = false;
if (elements[element].category !== "tools") { elements[element].category = "alchemy mod"; }
}
else if (elements[element].category !== "tools") {
// give the element the hidden attribute true
elements[element].hidden = true;
// set its category to "alchemy mod"
@ -16,13 +35,35 @@ for (var element in elements) {
// set the unhide setting to Unlock as Discovered (2)
settings.unhide = 2;
// unhide oxygen (air), dirt (earth), fire, and water
if (!settings.unlocked.alchemymod) {
settings.unlocked = {
"oxygen": true,
"dirt": true,
"fire": true,
"water": true,
"alchemymod": true,
};
}
runAfterLoad(function(){
checkUnlock = function(element) {
if (elements[element] && elements[element].hidden && !settings.alchemyUnlocked[element]) {
settings.alchemyUnlocked[element] = true;
if (settings.unhide === 2) {
createElementButton(element)
var categoryButton = document.querySelector(".categoryButton[current='true']");
var currentCategory = categoryButton.getAttribute("category");
if (currentCategory !== elements[element].category) {
document.getElementById("categoryButton-"+elements[element].category).classList.add("notify");
}
// add notify to the elementButton of the element
document.getElementById("elementButton-"+element).classList.add("notify");
}
saveSettings();
}
}
})
runAfterAutogen(function(){
for (var element in elements) {
if (elements[element].category === "states") {
elements[element].category = "alchemy mod"
}
}
})
window.addEventListener("load",function(){
for (var element in elements) {
if (elements[element].hidden && document.getElementById("elementButton-"+element)) {
document.getElementById("elementButton-"+element).remove()
}
}
})

7
mods/all_stain.js Normal file
View File

@ -0,0 +1,7 @@
window.addEventListener('load', function() {
for (var element in elements) {
elements[element].stain = 0.1;
}
});
// sorry alice

80
mods/applestuff.js Normal file
View File

@ -0,0 +1,80 @@
elements.cat = {
color: ["#ffffff", "#494949", "#ffc505"],
behavior: [
"XX|XX|XX",
"M2%25|XX|M2%25",
"XX|M1|XX",
],
category: "life",
state: "solid",
desc: "cat.",
tempHigh: 100,
stateHigh: "meat",
tempLow: 0,
stateLow: "frozen_meat"
};
elements.the_hot_destroyer = {
color: "#ff0000",
behavior: behaviors.POWDER,
category: "weapons",
state: "solid",
desc: "literally just is super hot, destroys anything that can be melted",
temp: Infinity,
reactions: {
"the_cold_destroyer": {elem1: null, elem2: null}
}
};
elements.the_cold_destroyer = {
color: "#00ccff",
behavior: behaviors.POWDER,
category: "weapons",
state: "solid",
desc: "literally just is super cold, freezes anything that can be frozen",
temp: -Infinity,
reactions: {
"the_hot_destroyer": {elem1: null, elem2: null}
}
};
elements.plutoneeum = {
color: ["#38a30e", "#0d662b", "#5d995d"],
behavior: behaviors.RADPOWDER,
category: "powders",
state: "solid",
desc: "misspelled on purpose to avoid conflicts with other mods",
};
elements.lipstick = {
color: "#a30000",
behavior: behaviors.LIQUID,
category: "liquids",
state: "liquid",
viscosity: 650,
tempHigh: 100,
stateHigh: "steam",
desc: "this mod is meant to have a description to everything but i don't know what to put here... its lipstick i guess?"
};
elements.very_hot_gold = {
color: ["#fff0b5","#986a1a","#f0bb62"],
behavior: behaviors.WALL,
category: "solids",
density: 19300,
conduct: 0.81,
hardness: 0.25,
breakInto: "gold_coin",
temp: Infinity,
desc: "i'm running out of ideas, have this i guess"
};
elements.sour_patch_kids = {
color:["#ff0000", "#00ff00", "#c8ff02", "#ff00c8"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
desc: "don't think their meant to be purple"
};
// this piece of text is gonna change every update

105
mods/noblegas.js Normal file
View File

@ -0,0 +1,105 @@
elements.argon = {
color: elements.neon.color,
behavior: behaviors.GAS,
colorOn: ["#c831ee","#d683eb","#7a258f"],
category: "gases",
state: "gas",
tempLow: -185.8,
stateLow: "liquid_argon",
density: 1.784,
conduct: 0.8
}
elements.liquid_argon = {
color: elements.neon.color,
behavior: behaviors.LIQUID,
colorOn: ["#c831ee","#d683eb","#7a258f"],
category: "states",
state: "liquid",
tempHigh: -183.8,
stateHigh: "argon",
density: 1401,
tempLow: -189.3,
stateLow: "frozen_argon",
conduct: 0.8
}
elements.frozen_argon = {
color: elements.neon.color,
behavior: behaviors.WALL,
colorOn: ["#c831ee","#d683eb","#7a258f"],
category: "states",
state: "solid",
tempHigh: -187.3,
stateHigh: "liquid_argon",
density: 1616,
conduct: 0.8
}
elements.krypton = {
color: elements.neon.color,
behavior: behaviors.GAS,
colorOn: ["#c49dce","#ac8ab4","#715579"],
category: "gases",
state: "gas",
tempLow: -153.22,
stateLow: "liquid_krypton",
density: 3.75,
conduct: 0.8
}
elements.liquid_krypton = {
color: elements.neon.color,
behavior: behaviors.LIQUID,
colorOn: ["#c49dce","#ac8ab4","#715579"],
category: "states",
state: "liquid",
tempHigh: -150.22,
stateHigh: "krypton",
density: 2423,
tempLow: -157.36,
stateLow: "frozen_krypton",
conduct: 0.8
}
elements.frozen_krypton = {
color: elements.neon.color,
behavior: behaviors.WALL,
colorOn: ["#c49dce","#ac8ab4","#715579"],
category: "states",
state: "solid",
tempHigh: -154.36,
stateHigh: "liquid_krypton",
density: 2160,
conduct: 0.8
}
elements.xenon = {
color: elements.neon.color,
behavior: behaviors.GAS,
colorOn: ["#627eca","#4572d3","#333cb1"],
category: "gases",
state: "gas",
tempLow: -108,
stateLow: "liquid_xenon",
density: 5.9,
conduct: 0.8
}
elements.liquid_xenon = {
color: elements.neon.color,
behavior: behaviors.LIQUID,
colorOn: ["#627eca","#4572d3","#333cb1"],
category: "states",
state: "liquid",
tempHigh: -104,
stateHigh: "xenon",
density: 2948,
tempLow: -111.8,
stateLow: "frozen_xenon",
conduct: 0.8
}
elements.frozen_xenon = {
color: elements.neon.color,
behavior: behaviors.WALL,
colorOn: ["#627eca","#4572d3","#333cb1"],
category: "states",
state: "solid",
tempHigh: -109.8,
stateHigh: "liquid_xenon",
density: 3410,
conduct: 0.8
}