This commit is contained in:
slweeb 2024-01-11 19:45:01 -05:00
commit 86efc106ef
12 changed files with 1846 additions and 85 deletions

View File

@ -201,6 +201,7 @@
<!----><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>greenitemsandmore.js</td><td>Adds various green things, including apples and more food</td><td>zonneschijn7</td>
<tr><td>food&animals.js</td><td>Adds more food and animals</td><td>SquareScreamYT and RealerRaddler</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>lemonade.js</td><td>Adds lemons and lemonade</td><td>personman / baconthemyth</td></tr>
<tr><td>morefoodsmod.js</td><td>Adds more foods</td><td>Clide4</td></tr>
@ -218,6 +219,7 @@
<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>food&animals.js</td><td>Adds more food and animals</td><td>SquareScreamYT and RealerRaddler</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>
<tr><td>miscible_psoup_and_birthpool.js</td><td>Makes Primordial Soup and Birthpool mix instead of the birthpool settling to the bottom. Will be deprecated upon the release of Magical Menagerie</td><td>Alice</td></tr>

View File

@ -137,6 +137,41 @@ elements.iced_pheonix = {
},
};
// placed both sceptrium and sceptrium_dust here -part of 1.3 update-
// -open-
elements.sceptrium = {
color: "#add8e6",
behavior: behaviors.SOLID,
category: "fantasy",
state: "solid",
density: 1500,
weight: 100,
reactions: {
"water": { elem1: "sceptrium", elem2: "sceptrium_dust" },
"fire": { elem1: "sceptrium", elem2: "sceptrium_dust" },
"plasma": { elem1: "sceptrium", elem2: "sceptrium_dust" },
"laser": { elem1: "sceptrium", elem2: "sceptrium_dust" },
"explosion": { elem1: "sceptrium", elem2: "sceptrium_dust" },
},
};
elements.sceptrium_dust = {
color: ["#87ceeb", "#add8e6", "#b0e0e6"],
behavior: behaviors.POWDER,
category: "fantasy",
state: "solid",
density: 0.5,
weight: 1,
reactions: {
"water": { elem1: "sceptrium_dust", elem2: "sceptrium_dust" },
"fire": { elem1: "sceptrium_dust", elem2: "sceptrium_dust" },
"plasma": { elem1: "sceptrium_dust", elem2: "sceptrium_dust" },
"laser": { elem1: "sceptrium_dust", elem2: "sceptrium_dust" },
"explosion": { elem1: "sceptrium_dust", elem2: "sceptrium_dust" },
},
};
// -end-
// New Fantasy Elements with Updated Reactions
elements.dragon_scale = {
color: "#8B4513",
@ -333,6 +368,13 @@ elements.goblin = {
"category":"fantasy",
reactions: {
"goblins_delight": { elem2:null, chance:0.9 },
"plasma": { elem2: "goblin_soul", elem2: "goblin_soul" },
"fire": { elem2: "goblin_soul", elem2: "goblin_soul" },
"incinerate": { elem2: "goblin_soul", elem2: "goblin_soul" },
"heat_ray": { elem2: "goblin_soul", elem2: "goblin_soul" },
},
};
@ -348,34 +390,221 @@ elements.fenzium = {
}
};
elements.sceptrium = {
color: "#add8e6",
elements.goblin_feeder = {
color: ["#307D7E", "#98FF98"],
behavior: behaviors.SOLID,
category: "fantasy",
state: "solid",
density: 1500,
weight: 100,
state: "soid",
density: 1000,
viscosity: 1,
weight: 300,
temperature: 20,
reactions: {
"water": { elem1: "sceptrium", elem2: "sceptrium_dust" },
"fire": { elem1: "sceptrium", elem2: "sceptrium_dust" },
"plasma": { elem1: "sceptrium", elem2: "sceptrium_dust" },
"laser": { elem1: "sceptrium", elem2: "sceptrium_dust" },
"explosion": { elem1: "sceptrium", elem2: "sceptrium_dust" },
"fire": { elem1: "pulsium_bar", elem2: null },
},
tick: function(pixel) {
if (Math.random() < 0.05) {
createPixel("goblins_delight", pixel.x, pixel.y);
}
},
};
elements.sceptrium_dust = {
color: ["#87ceeb", "#add8e6", "#b0e0e6"],
// fantasy_elements.js version 1.3
elements.thanosium = {
color: ["#8803fc", "#db03fc", "#ad03fc", "#cf03fc"],
behavior: behaviors.SOLID,
category: "fantasy",
state: "solid",
density: 1900,
breakInto: "thanosium_dust",
weight: 100,
};
elements.thanosium_dust = {
color: ["#8803fc", "#ad03fc", "#cf03fc", "#b12ee6", "#d62ee6", "#a8329d"],
behavior: behaviors.POWDER,
category: "fantasy",
state: "powder",
density: 1900,
weight: 100,
reactions: {
"diamond": { func: function(pixel1, pixel2){
autoResizeCanvas();
}
}
}
};
elements.exterminator_bomb = {
color: ["#23969e", "#28aeb8", "#2ec6d1", "#34deeb"],
behavior: [
"XX|EX:90>uranium,plasma,H_bomb,nuke,fire|XX",
"XX|XX|XX",
"M2|M1 AND EX:90>plasma,plasma,ember,fire,fire|M2",
],
category: "fantasyweapons",
state: "solid",
density: 2000,
excludeRandom: true,
};
elements.heat_bomb = {
color: ["#ff7700", "#ffbf00"],
behavior: [
"XX|EX:90>heat_ray,heat_ray,heat_ray,heat_ray,heat_ray|XX",
"XX|XX|XX",
"M2|M1 AND EX:90>heat_ray,heat_ray,heat_ray,heat_ray,heat_ray|M2",
],
category: "fantasyweapons",
state: "solid",
density: 2000,
excludeRandom: true,
};
elements.goblin_soul = {
color: ["#9fff05","#92e807","#56fc03","#4fe007","#07e03a","#19e649","#19e6b6"],
behavior: behaviors.FLY,
category: "fantasy",
state: "gas",
density: 1000,
};
elements.rainbow_flash = {
color: ["#ff0800","#ffae00","#ffe100","#51ff00","#005eff","#a200ff"],
tick: function(pixel) {
if (Math.random() < 3 && pixelTicks - pixel.start > 4) {
deletePixel(pixel.x, pixel.y)
}
},
reactions: {
"fire": { elem1:"rainbow_bomb" },
},
category: "fantasy",
temp: 40,
state: "gas",
density: 1,
tempLow: -270,
stateLow: "light",
};
elements.rainbow_bomb = {
color: ["#ff0800","#ffae00","#ffe100","#51ff00","#005eff","#a200ff"],
behavior: [
"XX|EX:90>rainbow_flash,rainbow_flash,rainbow_flash,rainbow_flash,rainbow_flash|XX",
"XX|XX|XX",
"M2|M1 AND EX:90>rainbow_flash,rainbow_flash,rainbow_flash,rainbow_flash,rainbow_flash|M2",
],
category: "fantasyweapons",
state: "solid",
density: 2500,
excludeRandom: true,
};
elements.cryptoberry = {
color: ["#34d8eb","#34e6fa","#24d9ed"],
behavior: behaviors.POWDER,
category: "fantasy",
state: "solid",
density: 0.5,
weight: 1,
reactions: {
"water": { elem1: "sceptrium_dust", elem2: "sceptrium_dust" },
"fire": { elem1: "sceptrium_dust", elem2: "sceptrium_dust" },
"plasma": { elem1: "sceptrium_dust", elem2: "sceptrium_dust" },
"laser": { elem1: "sceptrium_dust", elem2: "sceptrium_dust" },
"explosion": { elem1: "sceptrium_dust", elem2: "sceptrium_dust" },
density: 800,
breakInto: "cryptoberry_juice",
isFood: true,
};
elements.cryptoberry_juice = {
color: ["#34c9eb","#34d5eb","#34b7eb"],
behavior: behaviors.LIQUID,
category: "fantasy",
state: "solid",
density: 800,
isFood: true,
};
// adds more reactions to existing elements -part if 1.3 update-
// -open-
elements.water.reactions.cryptoberry_juice = {elem2: "shadowberry_juice", tempMin: 80}
// -close-
elements.shadowberry = {
color: "#ab34eb",
behavior: behaviors.POWDER,
category: "fantasy",
state: "solid",
density: 800,
breakInto: "shadowberry_juice",
isFood: true,
};
elements.shadowberry_juice = {
color: "#a600ff",
behavior: behaviors.LIQUID,
category: "fantasy",
state: "solid",
density: 800,
isFood: true,
reactions: {
"human": { elem1: "radiation", elem2: "radiation" },
},
};
elements.Frostberry = {
color: "#25f5cf",
behavior: behaviors.POWDER,
category: "fantasy",
state: "solid",
density: 800,
breakInto: "Frostberry_juice",
isFood: true,
};
elements.Frostberry_juice = {
color: "#25f5e0",
behavior: behaviors.LIQUID,
category: "fantasy",
state: "solid",
density: 800,
isFood: true,
reactions: {
"human": { elem1: "snow", elem2: "snow" },
},
};
elements.abyssberry = {
color: "#676b68",
behavior: behaviors.POWDER,
category: "fantasy",
state: "solid",
density: 800,
breakInto: "abyssberry_juice",
};
elements.abyssberry_juice = {
color: "#818a84",
behavior: behaviors.LIQUID,
category: "fantasy",
state: "solid",
density: 800,
isFood: true,
reactions: {
"shadowberry_juice": { elem1: "snow", elem2: "snow" },
},
};
//1.3.1 minor update
// below
elements.cicium = {
color: "#4287f5",
behavior: behaviors.WALL,
category: "fantasy",
state: "solid",
};
elements.Verdantium = {
color: ["#00c8f0", "#00bcf0","#00d8f0","#27b4e3","#0aaaf5"],
behavior: behaviors.LIQUID,
category: "fantasy",
state: "solid",
isFood: false,
};
elements.nebulaflare_wall = {
color: ["#7500FF", "#00FFFB", "#FF00FC"],
behavior: behaviors.WALL,
state: "solid",
density: 0.1,
category: "fantasy",
reactions: {
"water": { elem1: "nebulaflare", elem2: "nebulaflare" },
},
};

582
mods/food&animals.js Normal file
View File

@ -0,0 +1,582 @@
/*
food&animals.js
MORE FOODS AND ANIMALS!!
Created by @SquareScreamYT and @RealerRaddler
v1.0
Changelog (v1.0)
- added chickens
- lays chicken eggs
- added chicks
- hatches from chicken eggs
- grows into chickens
- added chicken eggs
- added frozen chicken eggs
- added hard boiled eggs
- made by putting chicken eggs in hot water
- added soup
- made from broth and water
- added noodles
- made by putting batter in hot water
- added chicken meat
- raw chicken meat
- cooked chicken meat
- battered raw chicken
- made by mixing raw chicken and batter
- raw chicken nuggets
- made by mixing battered raw chicken with crumbs
- (cooked) chicken nuggets
- added crushed worm
- chicken food
- made by smashing worms or mixing worms with rocks
- added frozen crushed worms
- added fried potato
- made by putting potatoes in hot cooking oil
- added smoked chicken
- made by putting raw chicken with smoke
- added boiled chicken
- made by putting raw chicken in hot water
- added fried chicken
- made by putting raw chicken in hot cooking oil
- added steamed chicken
- made by putting raw chicken with steam
- added olives
- added olives
- olives can be smashed into cooking oil
- added olive wood
- added olive branches
- added olive leaves
- added cooking oil
*/
elements.chicken = {
color: ["#c29046", "#f5d271", "#d4bd7d"],
behavior: [
"M2%1|M2%2|M2%1",
"M2%10|XX|M2%10",
"XX|M1%33|XX",
],
category:"life",
state: "solid",
reactions: {
"meat": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
"chicken_nugget": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
"grass": { elem2:null, chance:0.1, func:behaviors.FEEDPIXEL },
"worm": { elem2: "crushed_worm", chance:0.3},
"cooked_meat": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
"fish": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
"rat": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL },
"snail": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL },
"frog": { elem2:null, chance:0.1, func:behaviors.FEEDPIXEL },
"slug": { elem2:null, chance:0.1, func:behaviors.FEEDPIXEL },
"grape": { elem2:null, chance:0.3, func:behaviors.FEEDPIXEL },
"wheat_seed": { elem2:null, chance:0.4, func:behaviors.FEEDPIXEL },
"flower_seed": { elem2:null, chance:0.32, func:behaviors.FEEDPIXEL },
"corn_seed": { elem2:null, chance:0.35, func:behaviors.FEEDPIXEL },
"corn": { elem2:null, chance:0.4, func:behaviors.FEEDPIXEL },
"crumb": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
"potato_seed": { elem2:null, chance:0.4, func:behaviors.FEEDPIXEL },
"grass_seed": { elem2:null, chance:0.3, func:behaviors.FEEDPIXEL },
"pumpkin_seed": { elem2:null, chance:0.3, func:behaviors.FEEDPIXEL },
"pumpkin": { elem2:null, chance:0.1, func:behaviors.FEEDPIXEL },
"nut": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
"dead_bug": { elem2:null, chance:0.35, func:behaviors.FEEDPIXEL },
"bee": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
"ant": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
"flea": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
"termite": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
"lichen": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
"oxygen": { elem2:"carbon_dioxide", chance:0.3 },
"mercury": { elem1:"rotten_meat", chance:0.1 },
"bleach": { elem1:"rotten_meat", chance:0.1 },
"infection": { elem1:"rotten_meat", chance:0.025 },
"uranium": { elem1:"rotten_meat", chance:0.1 },
"cyanide": { elem1:"rotten_meat", chance:0.1 },
"chlorine": { elem1:"meat", chance:0.1 },
"dirty_water": { elem1:"rotten_meat", chance:0.0001 },
},
egg: "chicken_egg",
foodNeed: 10,
temp: 40,
tempHigh: 75,
stateHigh: "cooked_chicken",
tempLow: -18,
stateLow: "frozen_meat",
breakInto: ["feather", "raw_chicken"],
burn:85,
burnTime:450,
state: "solid",
density: 1117,
conduct: 0.3,
};
elements.chicken_egg = {
color: ["#e0d3ab","#d9cdb5"],
behavior: [
"XX|XX|XX",
"XX|FX%5 AND CH:chick%0.1|XX",
"M2%30|M1|M2%30",
],
category: "food",
state: "solid",
temp: 30,
tempLow: -18,
stateLow: "frozen_chicken_egg",
breakInto: ["yolk"],
tempHigh: 500,
stateHigh: ["calcium", "ash"],
burn:50,
burnTime:450,
state: "solid",
density: 900,
conduct: 0.1,
reactions: {
"water": { elem1:null, elem2:"hard_boiled_egg", chance:10, tempMin:80 }
}
};
elements.frozen_chicken_egg = {
color: ["#e0d3cf","#d9cdd3"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
temp: -20,
tempHigh: 10,
stateHigh: "chicken_egg",
breakInto: ["calcium", "hard_yolk"],
burn:50,
burnTime:450,
state: "solid",
density: 900,
conduct: 0.1,
hidden: true,
};
elements.hard_boiled_egg = {
color: ["#e0d3ab","#d9cdb5","#e4d4b4","#f3f3ef"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
hidden: "TRUE",
tempHigh: 1000,
stateHigh: ["ash", "smoke"],
density: 820.33,
isFood: true,
hidden: true,
};
elements.chick = {
color: ["#ffdf85", "#ffef5c"],
behavior: [
"M2%1|M2%2|M2%1",
"M2%10|FX%5 AND CH:chicken%0.1|M2%10",
"XX|M1%33|XX",
],
category: "life",
state: "solid",
egg: "chicken_egg",
foodNeed: 20,
temp: 40,
tempHigh: 75,
stateHigh: "cooked_meat",
tempLow: -18,
stateLow: "frozen_meat",
breakInto: "blood",
burn:85,
burnTime:450,
state: "solid",
density: 900,
conduct: 0.1,
reactions: {
"crushed_worm": { elem2:null, chance:0.4, func:behaviors.FEEDPIXEL},
"meat": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
"chicken_nugget": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
"grass": { elem2:null, chance:0.1, func:behaviors.FEEDPIXEL },
"worm": { elem2: "crushed_worm", chance:0.3},
"cooked_meat": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
"fish": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
"rat": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL },
"snail": { elem2:null, chance:0.05, func:behaviors.FEEDPIXEL },
"frog": { elem2:null, chance:0.1, func:behaviors.FEEDPIXEL },
"slug": { elem2:null, chance:0.1, func:behaviors.FEEDPIXEL },
"grape": { elem2:null, chance:0.3, func:behaviors.FEEDPIXEL },
"wheat_seed": { elem2:null, chance:0.4, func:behaviors.FEEDPIXEL },
"flower_seed": { elem2:null, chance:0.32, func:behaviors.FEEDPIXEL },
"corn_seed": { elem2:null, chance:0.35, func:behaviors.FEEDPIXEL },
"corn": { elem2:null, chance:0.4, func:behaviors.FEEDPIXEL },
"crumb": { elem2:null, chance:0.25, func:behaviors.FEEDPIXEL },
"potato_seed": { elem2:null, chance:0.4, func:behaviors.FEEDPIXEL },
"grass_seed": { elem2:null, chance:0.3, func:behaviors.FEEDPIXEL },
"pumpkin_seed": { elem2:null, chance:0.3, func:behaviors.FEEDPIXEL },
"pumpkin": { elem2:null, chance:0.1, func:behaviors.FEEDPIXEL },
"nut": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
"dead_bug": { elem2:null, chance:0.35, func:behaviors.FEEDPIXEL },
"bee": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
"ant": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
"flea": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
"termite": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
"lichen": { elem2:null, chance:0.2, func:behaviors.FEEDPIXEL },
"oxygen": { elem2:"carbon_dioxide", chance:0.3 },
"mercury": { elem1:"rotten_meat", chance:0.1 },
"bleach": { elem1:"rotten_meat", chance:0.1 },
"infection": { elem1:"rotten_meat", chance:0.025 },
"uranium": { elem1:"rotten_meat", chance:0.1 },
"cyanide": { elem1:"rotten_meat", chance:0.1 },
"chlorine": { elem1:"meat", chance:0.1 },
"dirty_water": { elem1:"rotten_meat", chance:0.0001 },
}
};
elements.soup = {
color: "#fbd189",
behavior: behaviors.LIQUID,
tempHigh: 130,
stateHigh: ["steam","steam","steam","fragrance"],
tempLow: 0,
category: "food",
state: "liquid",
density: 1052,
conduct: 0.03,
stain: -0.01,
isFood: true,
hidden: true,
}
if (!elements.broth.reactions) elements.broth.reactions = {};
elements.broth.reactions.water = { elem1: "soup", elem2: "soup" }
elements.noodles = {
color: ["#F3BA4F", "#F7D161"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
temp: 30,
breakInto: ["crumb"],
tempHigh: 130,
stateHigh: ["toast"],
burn:50,
burnTime:450,
state: "solid",
density: 900,
conduct: 0.1,
hidden: true,
};
if (!elements.batter.reactions) elements.batter.reactions = {};
elements.batter.reactions.water = {elem2: "noodles", tempMin: 70}
elements.battered_raw_chicken = {
color: ["#eacfa9", "#ecd2af"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
temp:25,
tempHigh: 600,
stateHigh: ["ash","smoke"],
reactions: {
"crumb": { elem1: "raw_chicken_nugget", elem2: null },
},
hidden: true,
};
elements.steamed_chicken = {
color:["#cfba8f", "#d2b788"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
temp:50,
tempHigh: 600,
stateHigh: ["ash","smoke"],
isFood: true,
hidden: true,
}
elements.smoked_chicken = {
color:["#AF4523", "#AC481F"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
temp:55,
tempHigh: 600,
stateHigh: ["ash","smoke"],
isFood: true,
hidden: true,
}
elements.crushed_worm = {
color: ["#e56932", "#c0714e"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
temp: 20,
tempHigh: 50,
stateHigh: ["ash", "smoke"],
tempLow: -4,
stateLow: "frozen_worm",
density: 200.33,
isFood: true,
hidden: true,
};
elements.worm.reactions.rock = { elem1: "crushed_worm" }
elements.worm.breakInto = "crushed_worm"
elements.frozen_crushed_worm = {
color: ["#2fcbae", "#3edabd", "#b2d5d9"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
temp: -4,
tempHigh: 20,
stateHigh: "crushed_worm",
density: 200.33,
isFood: false,
hidden: true,
};
elements.cooked_chicken = {
color: ["#c17c20", "#ebad2b", "#f7b846"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
temp: 40,
tempHigh: 600,
stateHigh: ["ash", "smoke"],
hidden: true,
};
elements.raw_chicken = {
color: ["#dfc8bd", "#e2cdc0", "#b9a195"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
burnInto: "cook_chicken",
temp:25,
tempHigh: 600,
stateHigh: ["ash", "smoke"],
reactions: {
"batter": { elem1: "battered_raw_chicken", elem2: null },
"smoke": {elem1: "smoked_chicken"},
"steam": {elem1: "steamed_chicken"},
"water": {elem1: "boiled_chicken", tempMin: 70},
"cooking_oil": {elem1: "fried_chicken", tempMin: 70}
}
};
elements.boiled_chicken = {
color: ["#F9CC84", "#EDCE89", "#F8CB78"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
isFood: true,
temp: 65,
tempHigh: 600,
stateHigh: ["ash", "smoke"],
hidden: true,
}
elements.fried_chicken = {
color: ["#E87D1A", "#E77106", "#E77106"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
isFood: true,
temp: 90,
tempHigh: 600,
stateHigh: ["ash", "smoke"],
hidden: true,
}
elements.raw_chicken_nugget = {
color: ["#d6bc7e", "#d2b47a", "#c7a969"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
burnInto: "chicken_nugget",
temp:25,
tempHigh: 600,
stateHigh: ["ash", "smoke"],
hidden: true,
reactions: {
"cooking_oil": {elem1: "chicken_nugget", tempMin: 70}
}
};
elements.chicken_nugget = {
color: ["#D77105", "#D77105", "#EB8C2C", "#EB8C2C"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
temp: 40,
tempHigh: 600,
stateHigh: ["ash", "smoke"],
tempLow: -20,
stateLow: "frozen_chicken_nugget",
isFood: true,
density: 100,
hidden: true,
};
elements.frozen_chicken_nugget = {
color: ["#45a69c", "#73d9cd", "#3f9f95", "#389d8e"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
temp: -20,
tempHigh: 40,
stateHigh: "chicken_nugget",
isFood: false,
density: 100,
hidden: true,
};
elements.olive_wood = {
color: "#632e1f",
behavior: behaviors.WALL,
tempHigh: 400,
stateHigh: ["ember","charcoal","fire","fire","fire"],
category: "solids",
burn: 5,
burnTime: 300,
burnInto: ["ember","charcoal","fire"],
state: "solid",
hardness: 0.15,
breakInto: "sawdust",
breakIntoColor: ["#dba66e","#cc8a64"],
}
elements.olive_branch = {
color: "#632e1f",
behavior: [
"CR:olive_leaves,olive_branch%2|CR:olive_leaves,olive_leaves,olive_leaves,olive_branch%2|CR:olive_leaves,olive_branch%2",
"XX|XX|XX",
"XX|XX|XX",
],
tempHigh: 100,
stateHigh: "olive_wood",
tempLow: -30,
stateLow: "olive_wood",
category: "life",
burn: 40,
burnTime: 50,
burnInto: ["sap","ember","charcoal"],
hidden: true,
state: "solid",
density: 1500,
hardness: 0.15,
breakInto: ["sap","sawdust"],
hidden: true,
}
elements.olive_leaves = {
color: ["#407603","#376502","#2e5502"],
behavior: [
"XX|XX|XX",
"XX|XX|XX",
"XX|CR:olive%0.15|XX",
],
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}
},
category:"life",
tempHigh: 100,
stateHigh: "dead_plant",
tempLow: -1.66,
stateLow: "frozen_plant",
burn:65,
burnTime:60,
burnInto: "dead_plant",
breakInto: "dead_plant",
state: "solid",
density: 1050,
seed: "olive_seed",
hidden: true
}
elements.olive = {
color: ["#6e8b3d","#7c9d45"],
behavior: behaviors.POWDER,
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 },
"rock": { elem1:"cooking_oil", elem2:"rock", chance:0.035 },
},
category:"food",
tempHigh: 100,
stateHigh: "dead_plant",
tempLow: -1.66,
stateLow: "frozen_plant",
burn:65,
burnTime:60,
burnInto: "dead_plant",
breakInto: "cooking_oil",
state: "solid",
density: 1050,
isFood: false
}
elements.cooking_oil = {
color: "#ffc844",
behavior: behaviors.LIQUID,
category: "liquids",
tempHigh: 400,
stateHigh: "fire",
burn: 70,
burnTime: 300,
burnInto: ["carbon_dioxide","fire"],
viscosity: 250,
state: "liquid",
density: 825,
hidden: true,
temp: 30,
reaction: {
"potato": {elem1: "fried_potato", tempMin: 70}
}
},
/*
elements.potato_skin = {
color: ["#DC8A5A", "#A86C36", "#DC9A59", "#A76B35"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
isFood: true,
temp: 20,
hidden: true,
tempHigh: 250,
stateHigh: ["ash", "smoke"]
}
elements.peeled_potato = {
color: ["#D6C39F", "#D1C09D", "#D1C09D", "#CDBF9E"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
isFood: true,
temp: 20,
hidden: true,
reaction: {
"cooking_oil": { elem1: "fried_potato", tempMin: 70 }
}
}
*/
elements.fried_potato = {
color: ["#DD7908", "#D57206", "#CA6801", "#D68001"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
temp: 35,
hidden: true,
tempHigh: 600,
stateHigh: ["ash", "smoke"],
isFood: true,
}

169
mods/greenitemsandmore.js Normal file
View File

@ -0,0 +1,169 @@
elements.green_apple = {
color: "#2ab54f",
behavior: behaviors.POWDER,
category: "food",
state: "solid",
tempHigh: 120,
stateHigh: "ash",
breakInto: "juice",
breakIntoColor: "#5fba65",
desc: "Green apple from the greenitemsandmore.js mod.",
reactions: {
"milk": { elem1: "fruit_milk", elem2: "fruit_milk", color1: "#86b867", color2: "#70b867" },
"red_apple": { elem1: "mixed_apples", elem2: "mixed_apples" },
}
};
elements.red_apple = {
color: "#e83838",
behavior: behaviors.POWDER,
category: "food",
state: "solid",
tempHigh: 120,
stateHigh: "ash",
breakInto: "juice",
breakIntoColor: "#c95555",
desc: "Red apple from the greenitemsandmore.js mod.",
reactions: {
"milk": { elem1: "fruit_milk", elem2: "fruit_milk", color1: "#d65151", color2: "#d65152" },
"green_apple": { elem1: "mixed_apples", elem2: "mixed_apples" },
}
};
elements.mixed_apples = {
color: ["#d13030", "#bf3d3d", "#369e3d", "#39b359"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
tempHigh: 120,
stateHigh: "ash",
breakInto: "juice",
breakIntoColor: ["#ba6859", "#71a676"],
desc: "Mixed apples from the greenitemsandmore.js mod.",
reactions: {
"milk": { elem1: "fruit_milk", elem2: "fruit_milk", color1: "#c47264", color2: "#66bd57"},
"sugar": { elem1: "mixed_sweet_apples", elem2: "mixed_sweet_apples" },
}
};
elements.mixed_sweet_apples = {
color: ["#d93f3f", "#d45555", "#50b556", "#50cc70"],
behavior: behaviors.POWDER,
category: "states",
state: "solid",
tempHigh: 135,
stateHigh: "ash",
breakInto: "juice",
breakIntoColor: ["#ad746a", "#82ba88"],
hidden: true,
desc: "Mixed sweet apples from the greenitemsandmore.js mod.",
reactions: {
"milk": {elem1: "fruit_milk", elem2: "fruit_milk", color1: "#f58989", color2: "#71a162"},
"flour": {elem1: "apple_pie", tempMin: 15, elem2: "apple_pie" },
}
};
elements.apple_pie = {
color: "#f0b55d",
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
tempHigh: 156,
stateHigh: "ash",
desc: "Apple pie from the greenitemsandmore.js mod.",
hidden: true,
};
elements.pear = {
color: "#3a8c3c",
behavior: behaviors.POWDER,
category: "food",
state: "solid",
tempHigh: 120,
stateHigh: "ash",
breakInto: "juice",
breakIntoColor: "#5f8f50",
desc: "Pear from the greenitemsandmore.js mod.",
reactions: {
"milk": {elem1: "fruit_milk", elem2: "fruit_milk", color1: "#60c483", color2: "#60c483"},
}
};
elements.coconut = {
color: "#8c6d3a",
behavior: behaviors.POWDER,
category: "food",
state: "solid",
tempHigh: 166,
stateHigh: "ash",
desc: "Coconut from the greenitemsandmore.js mod.",
breakInto: "coconut_flesh",
};
elements.coconut_flesh = {
color: "#faf4eb",
behavior: behaviors.POWDER,
category: "food",
state: "solid",
tempHigh: 134,
stateHigh: "ash",
hidden: true,
desc: "Coconut flesh from the greenitemsandmore.js mod.",
reactions: {
"water": {elem1: "coconut_milk", elem2: "coconut_milk" },
}
};
elements.coconut_milk = {
color: "#f7f5f2",
behavior: behaviors.LIQUID,
category: "liquids",
state: "liquid",
tempHigh: 124,
stateHigh: "steam",
tempLow: -10,
stateLow: "frozen_coconut_milk",
desc: "Coconut milk from the greenitemsandmore.js mod.",
hidden: true,
};
elements.frozen_coconut_milk = {
color: "#f0fcfc",
behavior: behaviors.WALL,
category: "states",
state: "ice",
tempHigh: -10,
stateHigh: "coconut_milk",
hidden: true,
desc: "Frozen coconut milk from the greenitemsandmore.js mod.",
temp: -20,
};
elements.fruit_doughnut = {
color: "#de9802",
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
tempHigh: 95,
stateHigh: "ash",
desc: "Fruit doughnuts, or as dutch people call it: Olliebollen. A newyear snack. Made from flour, yeast and milk. From the greenitemsandmore.js mod.",
breakInto: "flour",
hidden: true,
};
elements.dough.reactions = {
"yeast": { elem1: "fruit_doughnut", elem2: "fruit_doughnut" }
};
elements.beans.tempHigh = "40"
elements.beans.stateHigh = "baked_beans"
elements.baked_beans = {
color: ["#bf6211", "#c46b1d", "#b35d12", "#a65b19"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
tempLow: 40,
stateLow: "beans",
desc: "Baked beans from the greenitemsandmore.js mod.",
hidden: true,
};
elements.kiwi = {
color: ["#469e3e", "#9e813e"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
desc: "Kiwi from the greenitemsandmore.js mod.",
breakInto: "juice",
breakIntoColor: "#2e7533",
tempHigh: 120
stateHigh: "ash"
};

View File

@ -16,7 +16,7 @@ elements.tsar_bomba = {
],
category: "weapons",
state: "solid",
density: 1300,
density: 1700,
excludeRandom: true,
cooldown: defaultCooldown
}
@ -28,4 +28,24 @@ elements.meese = {
"XX|M1|XX",
],
category: "life"
}
},
elements.blackpowder = {
color: ["#555D50","#36454F"],
behavior: behaviors.STURDYPOWDER,
category: "powders",
burn: 100,
burnTime: 250,
tempHigh: 292,
state: "solid",
density: 5150,
},
elements.rp1= {
color: "#db5968",
behavior: behaviors.LIQUID,
category: "liquids",
state: "liquid",
density: 1700,
alias: "rocket propellant 1",
burn: 100,
burnTime: 400,
};

18
mods/more_gold.js Normal file
View File

@ -0,0 +1,18 @@
elements.green_gold = {
color: ["#94c7a3","#7bb298","#94c7a3"],
behavior: behaviors.WALL,
tempHigh: 500,
category: "solids",
density: 13000,
burnInto: ["molten_green_gold"],
conduct: 0.87,
};
elements.molten_green_gold = {
color: "#d9f046",
behavior: behaviors.MOLTEN,
tempHigh: 500,
category: "states",
density: 13000,
conduct: 0.87,
Hidden: true
};

View File

@ -1018,7 +1018,7 @@ elements.pipe.tick = function(pixel) {
var x = pixel.x+coord[0];
var y = pixel.y+coord[1];
if (isEmpty(x,y)) {
createPixel("brick",x,y);
createPixel("pipe_wall",x,y);
pixelMap[x][y].color = pixelColorPick(pixel,"#808080");
}
}

View File

@ -1,5 +1,5 @@
elements.beer = {
color: "#ffc64a",
color: ["#ffc43d","#ffc43d","#ebc59f"],
behavior: behaviors.LIQUID,
category: "food",
state: "solid",
@ -7,7 +7,7 @@ elements.beer = {
};
elements.root_beer = {
color: "#9e7723",
color: ["#8b2f02","#732803"],
behavior: behaviors.LIQUID,
category: "food",
state: "solid",
@ -15,7 +15,7 @@ elements.root_beer = {
};
elements.fruit_slushy = {
color: "#b867cf",
color: ["#d43968","#ec5885","#f57ca1","#fba9c2","#ffe3eb"],
behavior: behaviors.LIQUID,
category: "food",
state: "solid",
@ -23,7 +23,7 @@ elements.fruit_slushy = {
};
elements.mold = {
color: "#86ab29",
color: ["#b6d7a8","#6d9d5c","#ad8d6f"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
@ -31,7 +31,7 @@ elements.mold = {
};
elements.chocolate_slushy = {
color: "#4f2e16",
color: ["#c3ae9a","#ae967f","#977b5f","#876b4f","#816346"],
behavior: behaviors.LIQUID,
category: "food",
state: "solid",
@ -39,7 +39,7 @@ elements.chocolate_slushy = {
};
elements.chocolate_sauce = {
color: "#754828",
color: ["#491904","#54240b","#5e2d0b","#69371b","#764636"],
behavior: behaviors.LIQUID,
category: "food",
state: "solid",
@ -47,7 +47,7 @@ elements.chocolate_sauce = {
};
elements.chocolate_ice_cream = {
color: "#704b3a",
color: ["#a47551","#523a28"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
@ -55,7 +55,7 @@ elements.chocolate_ice_cream = {
};
elements.fruit_ice_cream = {
color: "#de6ab7",
color: ["#f8d8d8","#f6c1c1","#e39898"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
@ -63,7 +63,7 @@ elements.fruit_ice_cream = {
};
elements.chocolate_yogurt = {
color: "#825c4b",
color: ["#654321","#71512b","#7e5f36","#8a6e42","#967d50"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
@ -73,7 +73,7 @@ elements.chocolate_yogurt = {
};
elements.fruit_yogurt = {
color: "#f587d0",
color: ["#ffc3d8","#ffabd6","#ff96c5","#ff84c2","#ff5daf"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
@ -83,7 +83,7 @@ elements.fruit_yogurt = {
};
elements.frozen_fruit_yogurt = {
color: "#ffc2ea",
color: ["#ffdfdf","#ffc0c0","#ff9b9b"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
@ -94,7 +94,7 @@ elements.frozen_fruit_yogurt = {
};
elements.frozen_chocolate_yogurt = {
color: "#ad8776",
color: ["#a87848","#a57e57","#c1a07f","#e2c5ac","#efd0b1"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
@ -118,7 +118,7 @@ elements.cooking_oil = {
};
elements.chicken_nuggets = {
color: "#967242",
color: ["#8f411c","#a35935"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
@ -126,7 +126,7 @@ elements.chicken_nuggets = {
};
elements.advanced_dough = {
color: "#dbbc72",
color: ["#f3e6c6","#f9e8a2","#ebd27b","#dba94e","#c08932"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
@ -139,7 +139,7 @@ elements.advanced_dough = {
};
elements.fries = {
color: "#ebba34",
color: ["#f4c63e","#f6d165","#f8dd8b"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
@ -147,13 +147,22 @@ elements.fries = {
};
elements.fried_snow = {
color: "#a16f37",
color: ["#f6c66a","#d29829","#905c1b"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
hidden: "TRUE",
};
elements.battery_acid = {
color: ["#8fff00","#1de446"],
behavior: behaviors.LIQUID,
category: "machines",
state: "solid",
hidden: "TRUE",
};
elements.steampunk_pancakes = {
color: "#252a33",
behavior: behaviors.POWDER,
@ -163,7 +172,7 @@ elements.steampunk_pancakes = {
};
elements.churros = {
color: "#c29a3c",
color: ["#ce9958","#b8732d","#9f633b"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
@ -175,7 +184,7 @@ elements.churros = {
};
elements.chocolate_churros = {
color: "#1c0c01",
color: ["#9f6204","#875200","#764100","#582c00","#492100"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
@ -183,7 +192,7 @@ elements.chocolate_churros = {
};
elements.croissant = {
color: "#e0c46e",
color: ["#c68028","#ad7023","#905c1b","#794d16","#674112"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
@ -195,7 +204,7 @@ elements.croissant = {
};
elements.eggy_dough = {
color: "#c4ad7c",
color: ["#df8c43","#e5a369","#ecba8e","#f2d1b4","#f9e8d9"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
@ -205,7 +214,7 @@ elements.eggy_dough = {
};
elements.french_toast = {
color: "#ab8d4f",
color: ["#a77644","#af7b4b","#af7f57"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
@ -216,7 +225,7 @@ elements.french_toast = {
};
elements.rose_sauce = {
color: "#f0340e",
color: ["#db2300","#e24f33"],
behavior: behaviors.LIQUID,
category: "food",
state: "solid",
@ -224,7 +233,7 @@ elements.rose_sauce = {
};
elements.seasoning = {
color: "#734631",
color: ["#945239","#896251"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
@ -232,7 +241,7 @@ elements.seasoning = {
};
elements.parmesan = {
color: "#e0c66e",
color: ["#ffffdd","#ffffe4","#ffffeb","#fffff1","#fffff8"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
@ -249,7 +258,7 @@ elements.baking_powder = {
};
elements.smashed_ice = {
color: "#c3d4e6",
color: ["#e3fdff","#d1f7ff","#c0f7ff"],
behavior: behaviors.LIQUID,
category: "food",
state: "solid",
@ -273,7 +282,7 @@ elements.smashed_ice = {
};
elements.moss = {
color: "#389639",
color: ["#355438","#416044","#4c7450","#68946c","#81a984"],
behavior: behaviors.STURDYPOWDER,
category: "life",
state: "solid",
@ -294,7 +303,7 @@ elements.moss = {
elements.moth = {
color: "#665233",
behavior: behaviors.BOUNCY,
behavior: behaviors.FLY,
category: "life",
state: "solid",
burn: 95,
@ -308,7 +317,7 @@ elements.moth = {
};
elements.cherry = {
color: "#c41428",
color: ["#ff0000","#e30202","#c00000","#9c0101"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
@ -320,71 +329,153 @@ elements.cherry = {
};
elements.strawberry = {
color: "#ff0033",
color: ["#fb2943","#ff0033"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
breakInto: "juice",
tempHigh: 256,
stateHigh: "steam",
breakIntoColor: "#bd0f32",
breakIntoColor: ["#bf0147","#c61548","#cc2857","#c62354","#c11848"],
};
elements.apple = {
color: "#f21313",
color: ["#fc3434","#f91515","#d30404","#9f0606","#aa0404"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
breakInto: "juice",
tempHigh: 256,
stateHigh: "steam",
breakIntoColor: "#ffd500",
breakIntoColor: ["#ffda69","#ffdb84"],
};
elements.orange = {
color: "#ff9100",
elements.green_apple = {
color: ["#a8da61","#66cc00","#66cc33","#00cc00","#009900"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
breakInto: "juice",
tempHigh: 256,
stateHigh: "steam",
breakIntoColor: ["#ffda69","#ffdb84"],
};
elements.orange = {
color: ["#ff9a00","#ffc100","#ff8100"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
breakInto: "juice",
breakIntoColor: ["#ffc659","#ffb646","#ffa700","#ff8d00"],
tempHigh: 256,
stateHigh: "steam",
};
elements.kiwi = {
color: "#34611a",
color: ["#a9c77e","#61ab5a"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
breakInto: "juice",
tempHigh: 256,
stateHigh: "steam",
breakIntoColor: "#517a38",
breakIntoColor: ["#a9c77e","#bad98f"],
};
elements.green_grape = {
color: "#b6eb7f",
color: ["#b6f271","#a1f02f","#97d60c","#65ba14","#8bc33a"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
breakInto: "juice",
breakIntoColor: "#5f8536",
breakIntoColor: ["#5f8536","#7ba84a"],
tempHigh: 256,
stateHigh: "steam",
};
elements.banana = {
color: ["#ffb400","#ffc100","#ffdb00","#ffe700","#f0ff00"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
breakInto: "juice",
breakIntoColor: "#f0f060",
reactions: {
"steam": { elem1: "potassium", elem2: null },
}
};
elements.mint = {
color: ["#72e88d","#53bd6c"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
reactions: {
"cream": { elem1: null, elem2: "toorhpaste" },
}
};
elements.potassium = {
color: "#a3a333",
behavior: behaviors.POWDER,
category: "states",
state: "solid",
breakInto: "juice",
};
elements.onion = {
color: ["#62121b","#a92940","#c04b65","#d8699e"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
breakInto: ["stench", null, null, null, null],
};
elements.garlic = {
color: ["#f7f3e1","#f6f3c3","#f0e6bd"],
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
breakInto: "garlic_clove",
};
elements.garlic_clove = {
color: ["#b8b17f","#6b5628"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
hidden: "TRUE",
};
elements.oreo = {
color: "#120600",
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
reactions: {
"toorhpaste": { elem1: "poison_oreo", elem2: null },
}
};
elements.poison_oreo = {
color: "#001112",
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "solid",
hidden: "TRUE",
};
elements.toorhpaste = {
color: "#7dfff2",
color: ["#31ffe0","#65ffe8","#97ffef","#c9fff7","#f3fffd"],
behavior: behaviors.LIQUID,
category: "liquids",
state: "solid",
reactions: {
"juice": { elem1: "poison", elem2: null },
}
};
if (!elements.lettuce.reactions) elements.lettuce.reactions = {};
@ -450,6 +541,8 @@ elements.baked_batter.reactions.mud = { elem1: "mold", elem2: null }
elements.sugar_ice.breakInto = "smashed_ice"
elements.battery.breakInto = "battery_acid"
elements.herb.breakInto = "seasoning"
elements.chocolate.breakInto = "chocolate_sauce"

321
mods/pressure.js Normal file
View File

@ -0,0 +1,321 @@
runAfterLoad(function(){
tryMove = function(pixel,nx,ny,leaveBehind,force) {
if (pixel.drag && !force) { return true; }
var info = elements[pixel.element];
var oob = outOfBounds(nx,ny);
if (isEmpty(nx,ny,false,oob)) { // If coords is empty, move to coords
movePixel(pixel,nx,ny,leaveBehind);
return true;
}
else if (!oob) {
// Reactions
newPixel = pixelMap[nx][ny];
if (info.density !== undefined) {
newPixel.pressure = info.density/5000 + (pixel.pressure ? pixel.pressure : 0);
}
var rr1 = false;
if (info.reactions !== undefined && info.reactions[newPixel.element] !== undefined) {
rr1 = reactPixels(pixel,newPixel)
if (rr1) {
return true;
}
}
if (!rr1 && elements[newPixel.element].reactions !== undefined && elements[newPixel.element].reactions[pixel.element] !== undefined && !elements[newPixel.element].reactions[pixel.element].oneway) {
if (reactPixels(newPixel,pixel)) {
return true;
}
}
// Density
if (elements[pixel.element].id !== elements[newPixel.element].id) {
if (info.density !== undefined && elements[newPixel.element].density !== undefined) {
// if the pixel's state + ">" + newPixel's state is in validDensitySwaps, and the pixel's density is larger than the newPixel's density, swap the pixels
if (validDensitySwaps[info.state][elements[newPixel.element].state] && info.density >= elements[newPixel.element].density) {
// chance depending on the difference in density
if (Math.random() < (info.density - elements[newPixel.element].density)/(info.density + elements[newPixel.element].density)) {
swapPixels(pixel,newPixel);
return true;
}
}
}
}
// else { // same-element density swapping
// if (info.density !== undefined) {
// if (validDensitySwaps[info.state][info.state]) {
// if (Math.random() < 0.01) {
// swapPixels(pixel,newPixel);
// return true;
// }
// }
// }
// }
}
return false;
}
doVelocity = function(pixel) {
if ((pixel.vx||pixel.vy) && elements[pixel.element].movable) {
if (pixel.vx) {
// move the pixel vx times
for (var i = 0; i < Math.floor(Math.abs(pixel.vx)); i++) {
var x = pixel.x+Math.sign(pixel.vx);
var y = pixel.y;
if (!tryMove(pixel,x,y)) {
// if (!isEmpty(x,y,true)) {
// var newPixel = pixelMap[x][y];
// if (elements[newPixel.element].movable) {
// newPixel.vx = (newPixel.vx||0) + pixel.vx - Math.sign(pixel.vx);
// if (elements[pixel.element].breakInto && Math.random()<elements[pixel.element].breakIntoChance) {
// changePixel(pixel,elements[pixel.element].breakInto);
// }
// }
// }
pixel.vx = -pixel.vx/2;
return;
}
else
{
pixel.pressure = 0;
}
if(pixel.del)
{
return;
}
}
if (pixel.vx) { pixel.vx = Math.abs(pixel.vx)/1.25*Math.sign(pixel.vx) }
}
if (pixel.vy) {
// move the pixel vy times
for (var i = 0; i < Math.floor(Math.abs(pixel.vy)); i++) {
var x = pixel.x;
var y = pixel.y+Math.sign(pixel.vy);
if (!tryMove(pixel,x,y)) {
// if (!isEmpty(x,y,true)) {
// var newPixel = pixelMap[x][y];
// if (elements[newPixel.element].movable) {
// newPixel.vy = (newPixel.vy||0) + pixel.vy - Math.sign(pixel.vy);
// if (elements[pixel.element].breakInto && Math.random()<elements[pixel.element].breakIntoChance) {
// changePixel(pixel,elements[pixel.element].breakInto);
// }
// }
// }
pixel.vy = -pixel.vy/2;
return;
}
else
{
pixel.pressure = 0;
}
if(pixel.del)
{
return;
}
}
if (pixel.vy) { pixel.vy = Math.abs(pixel.vy)/1.25*Math.sign(pixel.vy) }
}
}
}
drawPixels = function(forceTick=false) {
// newCurrentPixels = shuffled currentPixels
var newCurrentPixels = currentPixels.slice();
var pixelsFirst = [];
var pixelsLast = [];
if (!paused || forceTick) {
shuffleArray(newCurrentPixels);
}
/*{newCurrentPixels.sort(function(p) { // shuffle the pixels but keep elements[p.element].isGas last
return 0.5 - Math.random();
})} // shuffle the pixels if not paused*/
for (var i = 0; i < newCurrentPixels.length; i++) {
pixel = newCurrentPixels[i];
//if (pixelMap[pixel.x][pixel.y] == undefined || currentPixels.indexOf(pixel) == -1) {continue}
if (pixel.del) {continue}
if (!paused || forceTick) {
doVelocity(pixel);
pixel.prevX = pixel.x;
pixel.prevY = pixel.y;
if (pixel.del) {continue}
if (elements[pixel.element].tick) { // Run tick function if it exists
elements[pixel.element].tick(pixel);
}
if (pixel.del) {continue}
if (elements[pixel.element].behavior) { // Parse behavior if it exists
pixelTick(pixel);
}
};
if (pixel.con) { pixel = pixel.con }
if (elements[pixel.element].isGas || elements[pixel.element].glow) {
pixelsLast.push(pixel);
}
else {
pixelsFirst.push(pixel);
}
}
for (var i = 0; i < newCurrentPixels.length; i++) {
pixel = newCurrentPixels[i];
let density = elements[pixel.element].density ? elements[pixel.element].density : 1;
let accelx = (pixel.x - pixel.prevX)/2 * (1+(pixel.pressure ? pixel.pressure : 0)/density);
let accely = (pixel.y - pixel.prevY)/2 * (1+(pixel.pressure ? pixel.pressure : 0)/density);
if(!pixel.vx)
pixel.vx = accelx;
else
pixel.vx += accelx;
if(!pixel.vy)
pixel.vy = accely;
else
pixel.vy += accely;
}
// Draw the current pixels
var canvas = document.getElementById("game");
var ctx = canvas.getContext("2d");
// Clear the canvas
if (!settings["bg"]) {ctx.clearRect(0, 0, canvas.width, canvas.height)}
else {
ctx.fillStyle = settings["bg"];
ctx.fillRect(0, 0, canvas.width, canvas.height);
}
var pixelDrawList = pixelsFirst.concat(pixelsLast);
for (var i = 0; i < pixelDrawList.length; i++) {
pixel = pixelDrawList[i];
if (pixelMap[pixel.x][pixel.y] == undefined) {continue}
if (pixel.con) { pixel = pixel.con }
if (view===null || view===3) {
ctx.fillStyle = pixel.color;
}
else if (view === 2) { // thermal view
var temp = pixel.temp;
if (temp < -50) {temp = -50}
if (temp > 6000) {temp = 6000}
// logarithmic scale, with coldest being 225 (-50 degrees) and hottest being 0 (6000 degrees)
var hue = Math.round(225 - (Math.log(temp+50)/Math.log(6000+50))*225);
if (hue < 0) {hue = 0}
if (hue > 225) {hue = 225}
ctx.fillStyle = "hsl("+hue+",100%,50%)";
}
else if (view === 4) { // smooth view, average of surrounding pixels
var colorlist = [];
// check adjacent coords on the pixelMap, add the color to the list if the pixel is not empty and the color indexOf "rgb" is not -1
for (var j = 0; j < biCoords.length; j++) {
var x = pixel.x + biCoords[j][0];
var y = pixel.y + biCoords[j][1];
if (isEmpty(x,y,true) || elements[pixelMap[x][y].element].state !== elements[pixel.element].state) {continue}
var color = pixelMap[x][y].color;
if (color.indexOf("rgb") !== -1) {
colorlist.push(color.match(/\d+/g));
}
}
if (colorlist.length === 0) {
ctx.fillStyle = pixel.color;
}
else {
ctx.fillStyle = averageRGB(colorlist);
}
}
if (ctx.globalAlpha < 1 && !(elements[pixel.element].isGas || elements[pixel.element].glow)) {
ctx.globalAlpha = 1;
}
if ((view === null || view === 4) && (elements[pixel.element].isGas || elements[pixel.element].glow)) {
if (ctx.globalAlpha!==0.5) { ctx.globalAlpha = 0.5; }
ctx.fillRect((pixel.x-1)*pixelSize, (pixel.y)*pixelSize, pixelSize*3, pixelSize);
ctx.fillRect((pixel.x)*pixelSize, (pixel.y-1)*pixelSize, pixelSize, pixelSize*3);
}
else { // draw the pixel (default)
ctx.fillRect(pixel.x*pixelSize, pixel.y*pixelSize, pixelSize, pixelSize);
}
if (pixel.charge && view !== 2) { // Yellow glow on charge
if (!elements[pixel.element].colorOn) {
ctx.fillStyle = "rgba(255,255,0,0.5)";
ctx.fillRect(pixel.x*pixelSize, pixel.y*pixelSize, pixelSize, pixelSize);
}
}
}
if (ctx.globalAlpha < 1) {
ctx.globalAlpha = 1;
}
if ((!paused) || forceTick) {pixelTicks++};
}
})
explodeAt = function(x,y,radius,fire="fire") {
// if fire contains , split it into an array
if (fire.indexOf(",") !== -1) {
fire = fire.split(",");
}
var coords = circleCoords(x,y,radius);
var power = radius/10;
//for (var p = 0; p < Math.round(radius/10+1); p++) {
for (var i = 0; i < coords.length; i++) {
// damage value is based on distance from x and y
var damage = Math.random() + (Math.floor(Math.sqrt(Math.pow(coords[i].x-x,2) + Math.pow(coords[i].y-y,2)))) / radius;
// invert
damage = 1 - damage;
if (damage < 0) { damage = 0; }
damage *= power;
if (isEmpty(coords[i].x,coords[i].y)) {
// create smoke or fire depending on the damage if empty
if (damage < 0.02) { } // do nothing
else if (damage < 0.2) {
createPixel("smoke",coords[i].x,coords[i].y);
}
else {
// if fire is an array, choose a random item
if (Array.isArray(fire)) {
createPixel(fire[Math.floor(Math.random() * fire.length)],coords[i].x,coords[i].y);
}
else {
createPixel(fire,coords[i].x,coords[i].y);
}
}
}
else if (!outOfBounds(coords[i].x,coords[i].y)) {
// damage the pixel
var pixel = pixelMap[coords[i].x][coords[i].y];
var info = elements[pixel.element];
if (info.hardness) { // lower damage depending on hardness(0-1)
if (info.hardness < 1) {
damage = damage * ((1 - info.hardness)*10);
}
else { damage = 0; }
}
if (damage > 0.9) {
if (Array.isArray(fire)) {
var newfire = fire[Math.floor(Math.random() * fire.length)];
}
else {
var newfire = fire;
}
changePixel(pixel,newfire);
continue;
}
else if (damage > 0.25) {
if (info.breakInto !== undefined) {
breakPixel(pixel);
continue;
}
else {
if (Array.isArray(fire)) {
var newfire = fire[Math.floor(Math.random() * fire.length)];
}
else {
var newfire = fire;
}
changePixel(pixel,newfire);
continue;
}
}
if (damage > 0.75 && info.burn) {
pixel.burning = true;
pixel.burnStart = pixelTicks;
}
pixel.temp += damage*radius*power;
pixelTempCheck(pixel);
// set the pixel.vx and pixel.vy depending on the angle and power
if (!elements[pixel.element].excludeRandom) {
var angle = Math.atan2(pixel.y-y,pixel.x-x);
pixel.vx = Math.round((pixel.vx|0) + Math.cos(angle) * (radius * power));
pixel.vy = Math.round((pixel.vy|0) + Math.sin(angle) * (radius * power));
}
}
}
}

View File

@ -27,7 +27,7 @@ elements.moth = {
tempHigh: 500,
stateHigh: "ash",
color: "#57381a",
behavior: behaviors.GAS,
behavior: behaviors.FLY,
category: "life",
state: "solid",
};
@ -237,7 +237,7 @@ elements.lemon = {
elements.lemon.reactions = {
"juice": { elem1: null, elem2: "lemonade" }
}
};
elements.lemonade = {
isFood: true,
@ -511,12 +511,14 @@ elements.mashed_pea = {
state: "liquid",
};
elements.beans = {
elements.burnt_beans = {
tempHigh: 500,
stateHigh: "ash",
isFood: true,
viscosity: 1000,
viscosity: 10000,
density: 721,
hardness: 1,
color: ["#ff751f", "#ff411f"],
color: "#1a0d04",
category: "food",
behavior: behaviors.LIQUID,
state: "liquid",
@ -552,15 +554,17 @@ elements.cocaine = {
};
elements.zombie = {
viscosity: 1000,
density: 1000,
hardness: 1,
tempHigh: 500,
stateHigh: "ash",
color: "#114700",
behavior: behaviors.LIQUID,
behavior: [
"M1%2|M1%2 AND SW%1|M1%2",
"M1%2 AND CH:zombie|XX|M1%2 AND CH:zombie",
"M1|M1 AND SW%1|M1"
],
category: "special",
state: "liquid",
ignore: ["fire","smoke","antimatter","strange_matter","filler","lattice","wall","ewall","plasma","void","border"]
};
elements.toothpaste = {
@ -576,12 +580,91 @@ elements.radioactive_grape = {
hidden: true,
tempHigh: 1000,
stateHigh: "ash",
color: "#7d00d1",
color: ["#7d00d1", "#8047d6"],
behavior: behaviors.RADPOWDER,
category: "food",
state: "liquid",
};
elements.radioactive_meat = {
hidden: true,
tempHigh: 1000,
stateHigh: "ash",
color: ["#4b5742", "#91564a"],
behavior: behaviors.RADPOWDER,
category: "food",
state: "liquid",
};
elements.radioactive_chocolate = {
hidden: true,
tempHigh: 1000,
stateHigh: "ash",
color: ["#404d29", "#4d3429"],
behavior: behaviors.RADPOWDER,
category: "food",
state: "liquid",
};
elements.radioactive_egg = {
hidden: true,
tempHigh: 1000,
stateHigh: "ash",
color: "#93cc87",
behavior: behaviors.RADPOWDER,
category: "food",
state: "liquid",
};
elements.radioactive_milk = {
hidden: true,
tempHigh: 1000,
stateHigh: "ash",
color: "#9bb895",
behavior: behaviors.RADLIQUID,
category: "liquids",
state: "liquid",
};
elements.radioactive_potato = {
hidden: true,
tempHigh: 1000,
stateHigh: "ash",
color: "#6e8544",
behavior: behaviors.RADPOWDER,
category: "food",
state: "liquid",
};
elements.radioactive_water = {
hidden: true,
tempHigh: 1000,
stateHigh: "steam",
color: "#baf0aa",
behavior: behaviors.RADLIQUID,
category: "liquids",
state: "liquid",
};
elements.radioactive_bread = {
hidden: true,
tempHigh: 1000,
stateHigh: "ash",
color: "#aec74c",
behavior: behaviors.RADPOWDER,
category: "food",
state: "liquid",
};
elements.radioactive_toast = {
hidden: true,
tempHigh: 1000,
stateHigh: "ash",
color: "#565e38",
behavior: behaviors.RADPOWDER,
category: "food",
state: "liquid",
};
elements.shampoo = {
viscosity: 1000,
@ -863,6 +946,9 @@ elements.incinerator = {
category: "machines",
state: "solid",
insulate: true,
reactions: {
"fart": { elem1: null, elem2: "ohio" },
}
};
elements.cocoa = {
@ -994,15 +1080,6 @@ elements.cooked_bacon = {
state: "liquid",
};
elements.pickle = {
tempHigh: 200,
stateHigh: "steam",
color: "#12400c",
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "liquid",
};
elements.strawberry = {
viscosity: 10000,
density: 754,
@ -1014,10 +1091,157 @@ elements.strawberry = {
state: "liquid",
};
elements.grape.reactions = {
"radiation": { elem1: null, elem2: "radioactive_grape" },
"melted_chocolate": { elem1: null, elem2: "chocolate_grape" },
"chocolate": { elem1: null, elem2: "chocolate_grape", chance: 0.1 },
elements.beer = {
tempHigh: 300,
stateHigh: "steam",
color: "#b39329",
behavior: behaviors.LIQUID,
category: "liquids",
state: "liquid",
};
elements.cardboard = {
tempHigh: 500,
stateHigh: "ash",
color: "#7d4725",
behavior: behaviors.STURDYPOWDER,
category: "land",
state: "liquid",
};
elements.carrot = {
tempHigh: 500,
stateHigh: "ash",
color: "#f06c0e",
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "liquid",
};
elements.wine = {
tempHigh: 400,
stateHigh: "steam",
color: "#2e0206",
behavior: behaviors.LIQUID,
category: "liquids",
state: "liquid",
};
elements.plasma_bomb = {
tempHigh: 1000,
stateHigh: "ash",
color: "#452f4a",
behavior: [
"XX|EX:20>plasma|XX",
"XX|XX|XX",
"M2|M1 AND EX:20>plasma|M2"
],
category: "weapons",
state: "liquid",
},
elements.dark_energy = {
hardness: 1,
tempHigh: 1000000,
stateHigh: "void",
color: "#1b161c",
behavior: [
"M1%10|M1%10 AND SW%5|M1%10",
"M1%10 AND CH:dark_energy|XX|M1%10 AND CH:dark_energy",
"M1|M1 AND SW%5|M1"
],
category: "special",
state: "gas",
};
elements.ohio = {
hidden: true,
hardness: 1,
hidden: true,
color: "#40174d",
behavior: [
"XX|XX|XX",
"XX|EX:800>plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,plasma,molten_iron,molten_uranium,molten_lead,oxygen,molten_sodium,sulfur_gas,neon,chlorine,molten_calcium,molten_nickel,molten_copper,molten_zinc,gallium_gas AND CH:void|XX",
"XX|XX|XX",
],
temp: 99999999700,
category: "joke",
state: "gas",
desc: "use at own risk",
};
elements.papaya = {
tempHigh: 300,
stateHigh: "steam",
color: "#e38934",
behavior: behaviors.STURDYPOWDER,
category: "food",
state: "liquid",
};
elements.caviar = {
viscosity: 10000,
tempHigh: 500,
stateHigh: "steam",
color: "#1f1b18",
behavior: behaviors.LIQUID,
category: "food",
state: "liquid",
};
elements.peeper = {
hidden: true,
density: 1000,
burn: 0.00001,
burnTime: 9999,
ignoreAir: true,
burning: true,
hardness: 1,
tempHigh: 5000000000000000000,
stateHigh: "ash",
color: "#9c1208",
behavior: behaviors.STURDYPOWDER,
category: "joke",
state: "solid",
};
elements.dollar = {
hidden: true,
viscosity: 10000,
tempHigh: 500,
stateHigh: "fire",
color: ["#4a8741", "#4bb53c"],
behavior: behaviors.LIQUID,
category: "joke",
state: "liquid",
};
elements.ruby = {
tempHigh: 2000,
stateHigh: "magma",
color: ["#d6091a", "#e83544"],
behavior: behaviors.WALL,
category: "solids",
state: "solid",
};
elements.incinerate.category = "tools",
elements.cook.category = "tools",
elements.room_temp.category = "tools",
elements.beans.tempHigh = 349,
elements.beans.stateHigh = "burnt_beans",
elements.radiation.reactions = {
"meat": { elem1: null, elem2: "radioactive_meat" },
"grape": { elem1: null, elem2: "radioactive_grape" },
"egg": { elem1: null, elem2: "radioactive_egg" },
"potato": { elem1: null, elem2: "radioactive_potato" },
"water": { elem1: null, elem2: "radioactive_water" },
"chocolate": { elem1: null, elem2: "radioactive_chocolate" },
"milk": { elem1: null, elem2: "radioactive_milk" },
"bread": { elem1: null, elem2: "radioactive_bread" },
"toast": { elem1: null, elem2: "radioactive_toast" },
};
elements.egg.reactions = {
@ -1037,3 +1261,7 @@ elements.potato.reactions = {
elements.water.reactions = {
"cocaine": { elem1: null, elem2: "solid_water", chance: 0.1 }
};
elements.paper.reactions = {
"bless": { elem1: null, elem2: "dollar", chance: 0.1 },
};

View File

@ -0,0 +1,93 @@
elements.obsidian = {
color: ["#343434", "#313639"],
behavior: behaviors.SOLID,
category: "land",
state: "solid",
density: 2380,
tempHigh: 900,
stateHigh: "magma",
breakInto: "obsidian_shard",
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",
density: 2380,
tempHigh: 900,
stateHigh: "magma",
reactions: {
"glue": { elem1: "obsidian" },
}
},
elements.pumice = {
color: "#bac0b4",
behavior: behaviors.POWDER,
category: "land",
state: "solid",
density: 550,
tempHigh: 900,
stateHigh: "magma",
hardness: 0.5,
},
elements.magma.stateLow = ["basalt","basalt","basalt","pumice","doritoite","basalt","rock","obsidian_shard","diorite","andesite"],
elements.eruption = {
color: ["#ff6f00","#ff8c00","#ff4d00"],
behavior: [
"XX|M1|XX",
"XX|DL%1|XX",
"CR:magma|CR:magma|CR:magma",
],
category: "weapons",
state: "solid",
temp:1200,
density: 2725,
},
elements.andesite = {
color: "#777C7C",
behavior: behaviors.SOLID,
category: "land",
state: "solid",
density: 2771,
tempHigh: 900,
stateHigh: "magma",
},
elements.diorite = {
color: ["#d4d4d4","#2b2b2b"],
behavior: behaviors.SOLID,
category: "land",
state: "solid",
density: 2900,
tempHigh: 900,
stateHigh: "magma",
},
elements.doritoite = {
color: ["#ff5349","#f2ba49"],
behavior: behaviors.POWDER,
category: "food",
state: "solid",
density: 157.8,
tempHigh: 900,
stateHigh: "magma",
reactions: {
"head": { elem1: "null" },
},
isFood: true
};

6
mods/zonneschijn7.js Normal file
View File

@ -0,0 +1,6 @@
elements.green_wall = {
color: "#00ff00",
behavior: behaviors.WALL,
category: "land",
state: "solid",
};