2024-04-26 06:18:12 -04:00
// created by SquareScreamYT
// https://github.com/SquareScreamYT/aChefsDream.js
2024-04-12 09:36:56 -04:00
2024-04-26 06:18:12 -04:00
runAfterLoad ( function ( ) {
console . log ( "Thanks for using aChefsDream.js! -sqec" )
console . log ( "aChefsDream is hosted at https://github.com/SquareScreamYT/aChefsDream.js" )
} )
2024-04-12 09:36:56 -04:00
function interpolateRgb ( rgb1 , rgb2 , ratio ) {
const interpolatedRgb = {
r : Math . round ( rgb1 . r + ( rgb2 . r - rgb1 . r ) * ratio ) ,
g : Math . round ( rgb1 . g + ( rgb2 . g - rgb1 . g ) * ratio ) ,
b : Math . round ( rgb1 . b + ( rgb2 . b - rgb1 . b ) * ratio ) ,
} ;
return interpolatedRgb ;
}
function getRGB ( rgb ) {
let rgb2 = rgb . replace ( ")" , "" ) . replace ( "rgb(" , "" ) . replace ( /,/g , "r" ) . split ( "r" )
return { r : parseInt ( rgb2 [ 0 ] ) , g : parseInt ( rgb2 [ 1 ] ) , b : parseInt ( rgb2 [ 2 ] ) } ;
}
2024-05-10 21:17:53 -04:00
function findMostFrequent ( arr ) {
let freqMap = { } ;
if ( arr ) {
if ( arr . length === 0 ) {
return "water" ;
} else if ( arr . length === 1 ) {
return arr [ 0 ]
} else {
arr . forEach ( item => {
if ( ! freqMap [ item ] ) {
freqMap [ item ] = 0 ;
}
freqMap [ item ] ++ ;
} ) ;
let max = 0 ;
let mostFrequent = [ ] ;
for ( let item in freqMap ) {
if ( freqMap [ item ] > max ) {
max = freqMap [ item ] ;
mostFrequent = [ item ] ;
} else if ( freqMap [ item ] === max ) {
mostFrequent . push ( item ) ;
}
}
return mostFrequent . join ( ', ' ) ;
}
}
}
2024-04-12 09:36:56 -04:00
behaviors . STURDYPOWDER2 = [
"XX|XX|XX" ,
"XX|XX|XX" ,
"M2%30|M1|M2%30" ,
] ,
elements . knife = {
color : "#adb5bd" ,
// other needed properties
tool : ( pixel ) => {
//store cutInto as a variable for legibility
var cutInto = elements [ pixel . element ] . cutInto ;
//if there’ s no cutInto, it should equal undefined, which is falsey and !undefined = true
if ( ! cutInto ) { return } ;
//if cutInto is an array, randomly pick one of its elements
if ( cutInto instanceof Array ) { cutInto = cutInto [ Math . floor ( Math . random ( ) * cutInto . length ) ] } ;
//change pixel into the (chosen) element
//changePixel(pixel, cutInto)
if ( shiftDown ) {
if ( Math . random ( ) < 0.5 ) {
var thiselement = pixel . element ;
2024-05-10 21:17:53 -04:00
changePixel ( pixel , cutInto )
pixelTempCheck ( pixel ) ;
if ( elements [ thiselement ] . cutIntoColor ) {
pixel . color = pixelColorPick ( pixel , elements [ thiselement ] . cutIntoColor ) ;
2024-04-12 09:36:56 -04:00
}
}
}
else if ( ! shiftDown ) {
if ( Math . random ( ) < 0.1 ) {
var thiselement = pixel . element ;
2024-05-10 21:17:53 -04:00
changePixel ( pixel , cutInto )
pixelTempCheck ( pixel ) ;
if ( elements [ thiselement ] . cutIntoColor ) {
pixel . color = pixelColorPick ( pixel , elements [ thiselement ] . cutIntoColor ) ;
2024-04-12 09:36:56 -04:00
}
}
}
} ,
category : "tools" ,
canPlace : false ,
desc : "Use on pixels to cut them, if possible."
}
elements . whisk = {
color : [ "#a4a7b0" , "#a4a7b0" , "#a4a7b0" , "#bfc2c9" , "#e9eaf0" , "#bfc2c9" , "#a4a7b0" ] ,
// other needed properties
tool : ( pixel ) => {
//store whiskInto as a variable for legibility
var whiskInto = elements [ pixel . element ] . whiskInto ;
//if there’ s no whiskInto, it should equal undefined, which is falsey and !undefined = true
if ( ! whiskInto ) { return } ;
//if whiskInto is an array, randomly pick one of its elements
if ( whiskInto instanceof Array ) { whiskInto = whiskInto [ Math . floor ( Math . random ( ) * whiskInto . length ) ] } ;
//change pixel into the (chosen) element
//changePixel(pixel, whiskInto)
if ( shiftDown ) {
if ( Math . random ( ) < 0.5 ) {
changePixel ( pixel , whiskInto )
}
}
else if ( ! shiftDown ) {
if ( Math . random ( ) < 0.1 ) {
changePixel ( pixel , whiskInto )
}
}
} ,
category : "tools" ,
canPlace : false ,
desc : "Use on pixels to whisk them, if possible."
}
elements . freeze _dry = {
color : "#3a65b5" ,
tool : function ( pixel ) {
if ( elements [ pixel . element ] . freezeDryInto !== undefined ) {
if ( Math . random ( ) < 0.2 ) {
var freezeDryInto = elements [ pixel . element ] . freezeDryInto ;
if ( Array . isArray ( freezeDryInto ) ) {
freezeDryInto = freezeDryInto [ Math . floor ( Math . random ( ) * freezeDryInto . length ) ] ;
}
if ( freezeDryInto === null ) {
deletePixel ( pixel . x , pixel . y ) ;
return ;
}
var previouselement = pixel . element ;
changePixel ( pixel , freezeDryInto ) ;
pixelTempCheck ( pixel ) ;
if ( elements [ previouselement ] . freezeDryIntoColor ) {
pixel . color = pixelColorPick ( pixel , elements [ previouselement ] . freezeDryIntoColor ) ;
}
}
}
} ,
category : "tools" ,
excludeRandom : true ,
desc : "Use on pixels to freeze dry them, if possible."
}
2024-04-26 06:18:12 -04:00
elements . food _paint = {
color : [ "#c27070" , "#c29c70" , "#c2c270" , "#70c270" , "#70c2c2" , "#7070c2" , "#c270c2" ] ,
tool : function ( pixel ) {
if ( elements [ pixel . element ] . isFood == true ) {
if ( ! shiftDown ) {
pixel . color = pixelColorPick ( pixel , currentColor )
}
else {
var rgb = currentColor . replace ( "#" , "" ) . match ( /.{1,2}/g ) ;
for ( var i = 0 ; i < rgb . length ; i ++ ) {
rgb [ i ] = parseInt ( rgb [ i ] , 16 ) ;
}
pixel . color = "rgb(" + rgb . join ( "," ) + ")"
}
delete pixel . origColor ;
}
} ,
customColor : true ,
category : "tools" ,
canPlace : false ,
desc : "Use on edible pixels to change color."
}
2024-04-12 09:36:56 -04:00
elements . eat = {
color : [ "#ffba79" , "#efff79" ] ,
tool : function ( pixel ) {
if ( elements [ pixel . element ] . isFood || elements [ pixel . element ] . category === "food" || eLists . JUICEMIXABLE . includes ( pixel . element ) || elements [ pixel . element ] . id === elements . uranium . id || elements [ pixel . element ] . id === elements . mercury . id ) {
deletePixel ( pixel . x , pixel . y ) ;
}
} ,
category : "tools" ,
desc : "Eats pixels."
}
elements . drink = {
color : [ "#03c6fc" , "#03a1fc" ] ,
tool : function ( pixel ) {
if ( elements [ pixel . element ] . state === "liquid" ) {
deletePixel ( pixel . x , pixel . y ) ;
}
} ,
category : "tools" ,
desc : "Drinks pixels."
}
eLists . JUICEMIXABLE = [ "juice" ] ;
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 : "raw_chicken" ,
burn : 85 ,
burnTime : 450 ,
state : "solid" ,
density : 1117 ,
conduct : 0.3 ,
cutInto : "raw_chicken" ,
} ;
elements . chicken _egg = {
color : [ "#e0d3ab" , "#d9cdb5" ] ,
behavior : behaviors . STURDYPOWDER2 ,
tick : function ( pixel ) {
if ( Math . random ( ) < 0.1 && pixel . temp > 20 && pixel . temp < 35 ) {
changePixel ( pixel , "chick" )
}
doDefaults ( pixel ) ;
} ,
category : "food" ,
state : "solid" ,
temp : 20 ,
tempLow : - 18 ,
stateLow : "frozen_chicken_egg" ,
breakInto : [ "yolk" ] ,
tempHigh : 400 ,
stateHigh : [ "calcium" , "ash" ] ,
burn : 50 ,
burnTime : 450 ,
state : "solid" ,
density : 900 ,
conduct : 0.1 ,
reactions : {
"water" : { elem2 : null , elem1 : "hard_boiled_egg" , chance : 10 , tempMin : 80 }
}
} ;
elements . water . reactions . egg = { 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 . barbecued _chicken = {
color : [ "#bf743b" , "#b57026" , "#8f5e29" , "#a87b11" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 55 ,
tempHigh : 600 ,
stateHigh : [ "ash" , "smoke" ] ,
isFood : true ,
hidden : true ,
}
elements . barbecue _sauce = {
color : "#571e1A" ,
behavior : behaviors . LIQUID ,
viscosity : 50000 ,
tempHigh : 260 ,
stateHigh : [ "carbon_dioxide" , "methane" , "steam" , "salt" , "sugar" ] ,
category : "food" ,
state : "liquid" ,
density : 1235 ,
stain : 0.05 ,
isFood : true ,
}
if ( ! elements . ketchup . reactions ) { elements . ketchup . reactions = { } ; }
elements . ketchup . reactions . molasses = { elem1 : "barbecue_sauce" , elem2 : "barbecue_sauce" }
elements . mustard = {
color : "#e1ad01" ,
behavior : behaviors . LIQUID ,
viscosity : 50000 ,
tempHigh : 260 ,
stateHigh : [ "carbon_dioxide" , "methane" , "steam" , "sugar" ] ,
category : "food" ,
state : "liquid" ,
density : 1235 ,
stain : 0.05 ,
isFood : true
}
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 ,
//thanks to nouser
onMix : function ( soup , ingredient ) {
2024-04-26 06:18:12 -04:00
if ( elements [ ingredient . element ] . id !== elements . soup . id && elements [ ingredient . element ] . id !== elements . broth . id && ingredient . temp > 40 ) {
2024-04-12 09:36:56 -04:00
if ( elements [ ingredient . element ] . isFood || elements [ ingredient . element ] . category === "food" || elements [ ingredient . element ] . category === "liquids" ) {
var rgb1 = soup . color . match ( /\d+/g ) ;
var rgb2 = ingredient . color . match ( /\d+/g ) ;
// average the colors
var rgb = [
Math . round ( ( parseInt ( rgb1 [ 0 ] ) + parseInt ( rgb2 [ 0 ] ) ) / 2 ) ,
Math . round ( ( parseInt ( rgb1 [ 1 ] ) + parseInt ( rgb2 [ 1 ] ) ) / 2 ) ,
Math . round ( ( parseInt ( rgb1 [ 2 ] ) + parseInt ( rgb2 [ 2 ] ) ) / 2 )
] ;
if ( ! soup . elemlist ) {
soup . elemlist = [ ] ;
}
soup . decidedHigh = soup . elemlist [ Math . floor ( Math . random ( ) * soup . elemlist . length ) ] ;
soup . elemlist . push ( ingredient . element )
soup . stateHigh = soup . elemlist ;
changePixel ( ingredient , "soup" ) ;
var hex = RGBToHex ( rgb ) ;
soup . color = pixelColorPick ( soup , hex ) ;
if ( Math . random ( ) < 0.5 ) { deletePixel ( ingredient . x , ingredient . y ) ; }
else {
ingredient . color = pixelColorPick ( ingredient , hex ) ;
2024-05-10 21:17:53 -04:00
if ( ! ingredient . elemlist ) {
ingredient . elemlist = [ ] ;
}
ingredient . elemlist . push ( soup . elemlist [ Math . floor ( Math . random ( ) * soup . elemlist . length ) ] )
2024-04-12 09:36:56 -04:00
}
}
}
} ,
tick : function ( pixel ) {
if ( ! pixel . decidedHigh ) {
pixel . decidedHigh = "steam" ;
}
if ( pixel . temp > 100 ) {
if ( Math . random ( ) < 0.5 ) {
changePixel ( pixel , "steam" ) ;
}
else {
changePixel ( pixel , pixel . decidedHigh )
}
}
} ,
2024-05-10 21:17:53 -04:00
hoverStat : function ( soup , ingredient ) {
if ( findMostFrequent ( soup . elemlist ) == undefined ) {
return "Ingredients:None"
} else {
return "Ingredients:" + findMostFrequent ( soup . elemlist )
}
} ,
2024-04-12 09:36:56 -04:00
}
if ( ! elements . broth . reactions ) elements . broth . reactions = { } ;
2024-04-26 06:18:12 -04:00
elements . broth . reactions . water = { elem1 : "soup" , elem2 : "soup" , tempMin : 70 }
2024-04-12 09:36:56 -04:00
elements . noodles = {
desc : "whatever 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 = { elem1 : "noodles" , tempMin : 70 }
elements . battered _raw _chicken = {
color : [ "#eacfa9" , "#ecd2af" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 25 ,
tempHigh : 125 ,
stateHigh : "cooked_chicken" ,
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_crushed_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 : "cooked_chicken" ,
temp : 25 ,
tempHigh : 600 ,
stateHigh : [ "cooked_chicken" ] ,
reactions : {
"batter" : { elem1 : "battered_raw_chicken" , elem2 : null } ,
"smoke" : { elem1 : "smoked_chicken" } ,
"steam" : { elem1 : "steamed_chicken" } ,
"water" : { elem1 : "boiled_chicken" , tempMin : 70 } ,
"nut_oil" : { elem1 : "fried_chicken" , tempMin : 70 } ,
"charcoal" : { elem1 : "barbecued_chicken" , tempMin : 70 } ,
"fire" : { elem1 : "barbecued_chicken" }
}
} ;
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 : {
"nut_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 : "nut_oil" , elem2 : "rock" , chance : 0.035 , color1 : "#ffc844" } ,
} ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "nut_oil" ,
breakIntoColor : "#ffc844" ,
density : 1050 ,
isFood : false
}
elements . olive _seed = {
color : "#854610" ,
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" ) ;
}
}
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y - 1 ) ;
createPixel ( Math . random ( ) > 0.5 ? "olive_wood" : "olive_branch" , pixel . x , pixel . y + 1 ) ;
}
}
else if ( pixel . age > 1000 ) {
changePixel ( pixel , "olive_wood" ) ;
}
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 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"XX|XX|XX" ,
"XX|FX%10|XX" ,
"XX|M1|XX" ,
] ,
} ;
/ *
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 ,
temp : 30 ,
reactions : {
"peeled_potato" : { elem2 : "fried_potato" , tempMin : 70 }
}
} ,
* /
elements . pepper = {
color : [ "#1f190a" , "#2b200d" , "#362712" , "#3b2211" ] ,
behavior : behaviors . POWDER ,
category : "food" ,
state : "solid" ,
isFood : true ,
temp : 20 ,
hidden : true ,
tempHigh : 250 ,
stateHigh : [ "ash" , "smoke" ] ,
}
elements . potato . cutInto = [ "peeled_potato" , "peeled_potato" , "peeled_potato" , "potato_skin" ] //{elem1: ["potato_skin","peeled_potato"] }
elements . potato _skin = {
color : [ "#DC8A5A" , "#A86C36" , "#DC9A59" , "#A76B35" ] ,
behavior : behaviors . POWDER ,
category : "food" ,
state : "solid" ,
isFood : true ,
temp : 20 ,
hidden : true ,
density : 1100 ,
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 ,
breakInto : "mashed_potato" ,
tempHigh : 176 ,
stateHigh : "baked_potato" ,
density : 1100 ,
reactions : {
"nut_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 ,
density : 1110 ,
stateHigh : [ "ash" , "smoke" ] ,
isFood : true ,
}
elements . applewood = {
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" ] ,
hidden : true
}
elements . apple _branch = {
color : "#632e1f" ,
behavior : [
"CR:apple_leaves,apple_branch%2|CR:apple_leaves,apple_branch%2|CR:apple_leaves,apple_branch%2" ,
"XX|XX|XX" ,
"XX|XX|XX" ,
] ,
tempHigh : 100 ,
stateHigh : "applewood" ,
tempLow : - 30 ,
stateLow : "applewood" ,
category : "life" ,
burn : 40 ,
burnTime : 50 ,
burnInto : [ "sap" , "ember" , "charcoal" ] ,
hidden : true ,
state : "solid" ,
density : 1500 ,
hardness : 0.15 ,
breakInto : [ "sap" , "sawdust" ] ,
}
elements . apple _leaves = {
color : [ "#00d404" , "#0ec911" , "#109e12" ] ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|CR:apple%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 ,
hidden : true
}
elements . apple = {
color : [ "#eb1a1a" , "#f22c2c" , "#d62020" ] ,
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 }
} ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "apple_juice" ,
cutInto : "apple_slice" ,
state : "solid" ,
density : 1050 ,
freezeDryInto : "freeze_dried_fruits" ,
freezeDryIntoColor : "#cfc540" ,
}
elements . apple _slice = {
color : "#f0af37" ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
tempHigh : 100 ,
stateHigh : [ "sugar" , "steam" ] ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "apple_juice" ,
state : "solid" ,
density : 1050 ,
hidden : true ,
}
elements . apple _seed = {
color : "#854610" ,
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" ) ;
}
}
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y - 1 ) ;
createPixel ( Math . random ( ) > 0.5 ? "applewood" : "apple_branch" , pixel . x , pixel . y + 1 ) ;
}
}
else if ( pixel . age > 1000 ) {
changePixel ( pixel , "applewood" ) ;
}
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 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"XX|XX|XX" ,
"XX|FX%10|XX" ,
"XX|M1|XX" ,
] ,
} ;
elements . apple _juice = {
color : "#ffde55" ,
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 ,
onMix : function ( pixel ) {
if ( shiftDown ) {
if ( Math . random ( ) < 0.2 ) {
changePixel ( pixel , "juice" )
pixel . color = pixelColorPick ( pixel , "#ffde55" )
}
}
} ,
reactions : {
"sugar" : { elem1 : "apple_jam" , elem2 : null , chance : 0.35 } ,
"yeast" : { elem1 : "apple_cider_vinegar" , elem2 : null , chance : 0.35 }
} ,
tempLow : 0
} ;
eLists . JUICEMIXABLE . push ( "apple_juice" ) ;
elements . apple _jam = {
color : "#ebc034" ,
behavior : behaviors . LIQUID ,
category : "food" ,
tempHigh : 400 ,
stateHigh : [ "sugar" , "smoke" ] ,
burn : 70 ,
burnTime : 300 ,
viscosity : 750 ,
state : "liquid" ,
density : 825 ,
hidden : true
} ;
elements . cake = {
color : [ "#f2e5bf" , "#e8daba" ] ,
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 . icing _sugar = {
color : "#f8f8f1" ,
behavior : behaviors . POWDER ,
onMix : function ( icing _sugar1 , icing _sugar2 ) {
if ( shiftDown && Math . random ( ) < 0.2 ) {
changePixel ( icing _sugar1 , "icing" )
}
} ,
tempHigh : 186 ,
stateHigh : "caramel" ,
viscosity : 1.5 ,
category : "food" ,
state : "solid" ,
density : 1036.86 ,
isFood : true
} ;
elements . icing = {
color : "#fefefb" ,
behavior : behaviors . LIQUID ,
onMix : function ( icing _sugar1 , icing _sugar2 ) {
if ( ( shiftDown && Math . random ( ) < 0.2 ) || ( elements [ icing _sugar2 . element ] . id === elements . icing _sugar . id && Math . random ( ) < 0.25 ) ) {
changePixel ( icing _sugar1 , "icing" )
}
} ,
tempHigh : 45 ,
stateHigh : [ "dry_icing" ] ,
stateLowColorMultiplier : 0.97 ,
category : "food" ,
isFood : true ,
state : "solid" ,
density : 959.97 ,
viscosity : 9000 ,
hidden : true
} ;
elements . dry _icing = {
color : "#fffefa" ,
behavior : behaviors . STURDYPOWDER ,
tempHigh : 1000 ,
stateHigh : [ "smoke" , "smoke" , "smoke" , "steam" , "steam" , "calcium" ] ,
stateLowColorMultiplier : 0.97 ,
category : "food" ,
isFood : true ,
state : "solid" ,
density : 959.97 ,
viscosity : 9000 ,
hidden : true
} ;
elements . cream . reactions . baked _batter = { elem2 : "cake" }
2025-06-01 21:23:23 -04:00
elements . sugar . breakInto = "icing_sugar"
2024-04-12 09:36:56 -04:00
elements . boiler = {
color : "#73fff8" ,
behavior : behaviors . WALL ,
tick : function ( pixel ) {
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 ] . temp < - 230 ) {
pixelMap [ x ] [ y ] . temp = ( pixelMap [ x ] [ y ] . temp + 7 )
} else if ( pixelMap [ x ] [ y ] . temp > 270 ) {
pixelMap [ x ] [ y ] . temp = ( pixelMap [ x ] [ y ] . temp - 7 )
} else if ( pixelMap [ x ] [ y ] . temp < 95 ) {
pixelMap [ x ] [ y ] . temp = ( pixelMap [ x ] [ y ] . temp + 2 )
} else if ( pixelMap [ x ] [ y ] . temp > 95 ) {
pixelMap [ x ] [ y ] . temp = ( pixelMap [ x ] [ y ] . temp - 2 )
}
}
}
} ,
category : "machines" ,
state : "solid" ,
insulate : true ,
noMix : true ,
movable : false ,
temp : 110
} ;
elements . steamer = {
color : "#45daff" ,
behavior : [
"CR:steam%90|CR:steam%90|CR:steam%90" ,
"XX|XX|XX" ,
"XX|XX|XX" ,
] ,
category : "machines" ,
state : "solid" ,
insulate : true ,
noMix : true ,
movable : false ,
temp : 110
} ;
elements . smoker = {
color : "#bfa797" ,
behavior : [
"CR:smoke%90|CR:smoke%90|CR:smoke%90" ,
"XX|XX|XX" ,
"XX|XX|XX" ,
] ,
category : "machines" ,
state : "solid" ,
insulate : true ,
noMix : true ,
movable : false ,
temp : 110
} ;
elements . orange _wood = {
color : "#a88c4a" ,
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" ] ,
hidden : true
}
elements . orange _branch = {
color : "#a88c4a" ,
behavior : [
"CR:orange_leaves,orange_branch%2|CR:orange_leaves,orange_branch%2|CR:orange_leaves,orange_branch%2" ,
"XX|XX|XX" ,
"XX|XX|XX" ,
] ,
tempHigh : 100 ,
stateHigh : "orange_wood" ,
tempLow : - 30 ,
stateLow : "orange_wood" ,
category : "life" ,
burn : 40 ,
burnTime : 50 ,
burnInto : [ "sap" , "ember" , "charcoal" ] ,
hidden : true ,
state : "solid" ,
density : 1500 ,
hardness : 0.15 ,
breakInto : [ "sap" , "sawdust" ] ,
}
elements . orange _leaves = {
color : [ "#61c43d" , "#5ddb3d" , "#51d44c" ] ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|CR:orange%0.1|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 ,
hidden : true
}
elements . orange = {
color : [ "#eda137" , "#e39230" , "#d1882e" ] ,
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 }
} ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "orange_juice" ,
cutInto : [ "orange_slice" , "orange_slice" , "orange_slice" , "orange_slice" , "orange_peels" ] ,
state : "solid" ,
density : 1050 ,
freezeDryInto : "freeze_dried_fruits" ,
freezeDryIntoColor : "#cf9f40" ,
}
elements . orange _slice = {
color : "#f5b133" ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
tempHigh : 100 ,
stateHigh : [ "sugar" , "steam" ] ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "orange_juice" ,
state : "solid" ,
density : 1050 ,
hidden : true ,
reactions : {
"sugar" : { elem1 : "marmalade" , elem2 : null , chance : 0.35 }
} ,
}
elements . orange _seed = {
color : "#695531" ,
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" ) ;
}
}
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y - 1 ) ;
createPixel ( Math . random ( ) > 0.5 ? "orange_wood" : "orange_branch" , pixel . x , pixel . y + 1 ) ;
}
}
else if ( pixel . age > 1000 ) {
changePixel ( pixel , "orange_wood" ) ;
}
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 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"XX|XX|XX" ,
"XX|FX%10|XX" ,
"XX|M1|XX" ,
] ,
} ;
elements . orange _juice = {
color : "#ffb326" ,
onMix : function ( pixel ) {
if ( shiftDown ) {
if ( Math . random ( ) < 0.2 ) {
changePixel ( pixel , "juice" )
pixel . color = pixelColorPick ( pixel , "#ffde55" )
}
}
} ,
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
} ;
eLists . JUICEMIXABLE . push ( "orange_juice" ) ;
elements . orange _peels = {
color : "#d69c31" ,
behavior : behaviors . POWDER ,
category : "food" ,
tempHigh : 100 ,
stateHigh : [ "sugar" , "steam" ] ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "orange_juice" ,
state : "solid" ,
density : 1050 ,
hidden : true ,
reactions : {
"sugar" : { elem1 : "marmalade" , elem2 : null , chance : 0.35 }
} ,
}
elements . marmalade = {
color : "#fc9a38" ,
behavior : behaviors . LIQUID ,
category : "food" ,
tempHigh : 400 ,
stateHigh : [ "sugar" , "smoke" ] ,
burn : 70 ,
burnTime : 300 ,
viscosity : 750 ,
state : "liquid" ,
density : 825 ,
hidden : true
} ;
elements . tuna = {
color : [ "#3D74BA" , "#4A6FB1" , "#4A6FB1" ] ,
behavior : [
"XX|M2%5|SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water,primordial_soup%14" ,
"XX|FX%0.5|BO" ,
"M2|M1|M2 AND SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water,primordial_soup%5" ,
] ,
category : "life" ,
state : "solid" ,
cutInto : "raw_tuna" ,
2024-04-26 06:18:12 -04:00
conduct : 0.2 ,
eggColor : [ "#211316" , "#2C1A1D" , "#503734" ] ,
breakInto : "blood" ,
burn : 20 ,
burnTime : 200 ,
temp : 20 ,
tempHigh : 120 ,
stateHigh : "cooked_tuna" ,
tempLow : - 20 ,
stateLow : "frozen_fish" ,
2024-04-12 09:36:56 -04:00
reactions : {
"algae" : { elem2 : null , chance : 0.25 , func : behaviors . FEEDPIXEL } ,
"plant" : { elem2 : null , chance : 0.125 , func : behaviors . FEEDPIXEL } ,
"fly" : { elem2 : null , chance : 0.4 , func : behaviors . FEEDPIXEL } ,
"firefly" : { elem2 : null , chance : 0.6 , func : behaviors . FEEDPIXEL } ,
"worm" : { elem2 : null , chance : 0.25 , func : behaviors . FEEDPIXEL } ,
"tadpole" : { elem2 : null , chance : 0.25 , func : behaviors . FEEDPIXEL } ,
"oxygen" : { elem2 : "carbon_dioxide" , chance : 0.5 } ,
"dead_bug" : { elem2 : null , chance : 0.2 , func : behaviors . FEEDPIXEL } ,
"broth" : { elem2 : "water" , chance : 0.2 , func : behaviors . FEEDPIXEL } ,
"slug" : { elem2 : null , chance : 0.2 , func : behaviors . FEEDPIXEL } ,
"herb" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"lettuce" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"dead_plant" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"lichen" : { elem2 : null , chance : 0.1 , func : behaviors . FEEDPIXEL } ,
"yeast" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"yogurt" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"tea" : { elem2 : null , chance : 0.2 , func : behaviors . FEEDPIXEL } ,
"meat" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"rotten_meat" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"cooked_meat" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"yolk" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"cell" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"crumb" : { elem2 : null , chance : 0.1 , func : behaviors . FEEDPIXEL } ,
} ,
}
elements . salmon = {
color : [ "#C0C3CF" , "#B7BAC3" , "#ADB0B8" ] ,
behavior : [
"XX|M2%5|SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water,primordial_soup%14" ,
"XX|FX%0.5|BO" ,
"M2|M1|M2 AND SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water,primordial_soup%5" ,
] ,
category : "life" ,
state : "solid" ,
2024-04-26 06:18:12 -04:00
conduct : 0.2 ,
eggColor : [ "#e8961c" , "#faa82d" ] ,
breakInto : "blood" ,
burn : 20 ,
burnTime : 200 ,
temp : 20 ,
tempHigh : 120 ,
stateHigh : "cooked_salmon" ,
tempLow : - 20 ,
stateLow : "frozen_fish" ,
2024-04-12 09:36:56 -04:00
reactions : {
"algae" : { elem2 : null , chance : 0.25 , func : behaviors . FEEDPIXEL } ,
"plant" : { elem2 : null , chance : 0.125 , func : behaviors . FEEDPIXEL } ,
"fly" : { elem2 : null , chance : 0.4 , func : behaviors . FEEDPIXEL } ,
"firefly" : { elem2 : null , chance : 0.6 , func : behaviors . FEEDPIXEL } ,
"worm" : { elem2 : null , chance : 0.25 , func : behaviors . FEEDPIXEL } ,
"tadpole" : { elem2 : null , chance : 0.25 , func : behaviors . FEEDPIXEL } ,
"oxygen" : { elem2 : "carbon_dioxide" , chance : 0.5 } ,
"dead_bug" : { elem2 : null , chance : 0.2 , func : behaviors . FEEDPIXEL } ,
"broth" : { elem2 : "water" , chance : 0.2 , func : behaviors . FEEDPIXEL } ,
"slug" : { elem2 : null , chance : 0.2 , func : behaviors . FEEDPIXEL } ,
"herb" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"lettuce" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"dead_plant" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"lichen" : { elem2 : null , chance : 0.1 , func : behaviors . FEEDPIXEL } ,
"yeast" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"yogurt" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"tea" : { elem2 : null , chance : 0.2 , func : behaviors . FEEDPIXEL } ,
"meat" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"rotten_meat" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"cooked_meat" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"yolk" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"cell" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"crumb" : { elem2 : null , chance : 0.1 , func : behaviors . FEEDPIXEL } ,
} ,
cutInto : "raw_salmon"
}
elements . raw _salmon = {
color : [ "#FD7E19" , "#FE842F" , "#FD8F45" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
burnInto : "cooked_salmon" ,
temp : 25 ,
tempHigh : 80 ,
stateHigh : "cooked_salmon" ,
isFood : true ,
reactions : {
"smoke" : { elem1 : "smoked_salmon" } ,
"steam" : { elem1 : "steamed_salmon" } ,
"water" : { elem1 : "boiled_salmon" , tempMin : 70 } ,
"nut_oil" : { elem1 : "fried_salmon" , tempMin : 70 }
}
}
elements . cooked _salmon = {
color : [ "#CB6132" , "#D05D18" , "#CC5926" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 25 ,
tempHigh : 600 ,
stateHigh : [ "ash" , "smoke" ] ,
isFood : true ,
hidden : true ,
}
elements . smoked _salmon = {
color : [ "#B64431" , "#B24932" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 55 ,
tempHigh : 600 ,
stateHigh : [ "ash" , "smoke" ] ,
hidden : true ,
isFood : true ,
}
elements . steamed _salmon = {
color : [ "#BB7B4B" , "#B07B54" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 60 ,
tempHigh : 600 ,
hidden : true ,
stateHigh : [ "ash" , "smoke" ] ,
isFood : true ,
}
elements . boiled _salmon = {
color : [ "#F9B080" , "#FFB78D" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 70 ,
tempHigh : 600 ,
hidden : true ,
stateHigh : [ "ash" , "smoke" ] ,
isFood : true ,
}
elements . fried _salmon = {
color : [ "#E06643" , "#ED774B" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 70 ,
tempHigh : 600 ,
hidden : true ,
stateHigh : [ "ash" , "smoke" ] ,
isFood : true ,
}
elements . raw _tuna = {
color : [ "#EF4A5C" , "#F74F65" , "#E83A53" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 25 ,
burnInto : "cooked_tuna" ,
tempHigh : 80 ,
stateHigh : "cooked_tuna" ,
isFood : true ,
reactions : {
"smoke" : { elem1 : "smoked_tuna" } ,
"steam" : { elem1 : "steamed_tuna" } ,
"water" : { elem1 : "boiled_tuna" , tempMin : 70 } ,
"nut_oil" : { elem1 : "fried_tuna" , tempMin : 70 }
}
}
elements . cooked _tuna = {
color : [ "#B76C71" , "#C2787C" , "#A86265" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
hidden : true ,
temp : 50 ,
tempHigh : 600 ,
stateHigh : [ "ash" , "smoke" ] ,
isFood : true ,
}
elements . smoked _tuna = {
color : [ "#9D5C24" , "#A4632A" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 55 ,
tempHigh : 600 ,
hidden : true ,
stateHigh : [ "ash" , "smoke" ] ,
isFood : true ,
}
elements . steamed _tuna = {
color : [ "#CFA578" , "#D4AC82" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 60 ,
tempHigh : 600 ,
hidden : true ,
stateHigh : [ "ash" , "smoke" ] ,
isFood : true ,
}
elements . boiled _tuna = {
color : [ "#C79F65" , "#D9B075" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
hidden : true ,
temp : 70 ,
tempHigh : 600 ,
stateHigh : [ "ash" , "smoke" ] ,
isFood : true ,
}
elements . fried _tuna = {
color : [ "#BF8251" , "#9F6031" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
hidden : true ,
temp : 70 ,
tempHigh : 600 ,
stateHigh : [ "ash" , "smoke" ] ,
isFood : true ,
}
elements . watermelon _seed = {
color : "#2b2118" ,
tick : function ( pixel ) {
if ( Math . random ( ) < 0.1 && 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" ) ;
}
}
if ( isEmpty ( pixel . x + 1 , pixel . y ) && Math . random ( ) > 0.7 ) {
movePixel ( pixel , pixel . x + 1 , pixel . y ) ;
createPixel ( Math . random ( ) > 0.5 ? "watermelon_stem" : "watermelon_stem" , pixel . x - 1 , pixel . y ) ;
}
if ( isEmpty ( pixel . x - 1 , pixel . y ) && Math . random ( ) > 0.7 ) {
movePixel ( pixel , pixel . x - 1 , pixel . y ) ;
createPixel ( Math . random ( ) > 0.5 ? "watermelon_stem" : "watermelon_stem" , pixel . x + 1 , pixel . y ) ;
}
if ( ! isEmpty ( pixel . x + 1 , pixel . y ) && ! isEmpty ( pixel . x - 1 , pixel . y ) && isEmpty ( pixel . x + 1 , pixel . y - 1 ) && Math . random ( ) > 0.7 ) {
movePixel ( pixel , pixel . x + 1 , pixel . y - 1 ) ;
createPixel ( Math . random ( ) > 0.5 ? "watermelon_stem" : "watermelon_stem" , pixel . x - 1 , pixel . y + 1 ) ;
}
if ( ! isEmpty ( pixel . x - 1 , pixel . y ) && ! isEmpty ( pixel . x + 1 , pixel . y ) && isEmpty ( pixel . x - 1 , pixel . y - 1 ) && Math . random ( ) > 0.7 ) {
movePixel ( pixel , pixel . x - 1 , pixel . y - 1 ) ;
createPixel ( Math . random ( ) > 0.5 ? "watermelon_stem" : "watermelon_stem" , pixel . x + 1 , pixel . y + 1 ) ;
}
}
else if ( pixel . age > 1000 ) {
changePixel ( pixel , "watermelon_stem" ) ;
}
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 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"XX|XX|XX" ,
"XX|FX%20|XX" ,
"XX|M1|XX" ,
] ,
} ;
elements . watermelon _stem = {
color : "#6ec938" ,
behavior : [
"ST:watermelon_stem|ST:watermelon_stem AND CR:watermelon%0.1|ST:watermelon_stem" ,
"ST:watermelon_stem|XX|ST:watermelon_stem" ,
"XX|XX|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 } ,
"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 . watermelon = {
color : [ "#28b02d" , "#36bf3a" ] ,
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 }
} ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "watermelon_juice" ,
cutInto : "watermelon_flesh" ,
state : "solid" ,
density : 1050 ,
}
elements . watermelon _flesh = {
color : "#f53527" ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
tempHigh : 100 ,
stateHigh : [ "sugar" , "steam" ] ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "watermelon_juice" ,
state : "solid" ,
density : 1050 ,
hidden : true ,
freezeDryInto : "freeze_dried_fruits" ,
freezeDryIntoColor : "#c43f33" ,
}
elements . watermelon _juice = {
color : "#eb4034" ,
onMix : function ( pixel ) {
if ( shiftDown ) {
if ( Math . random ( ) < 0.2 ) {
changePixel ( pixel , "juice" )
pixel . color = pixelColorPick ( pixel , "#eb4034" )
}
}
} ,
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
} ;
eLists . JUICEMIXABLE . push ( "watermelon_juice" ) ;
elements . grape . breakInto = "grape_juice" ,
elements . grape _juice = {
color : "#291824" ,
behavior : behaviors . LIQUID ,
onMix : function ( pixel ) {
if ( shiftDown ) {
if ( Math . random ( ) < 0.2 ) {
changePixel ( pixel , "juice" )
pixel . color = pixelColorPick ( pixel , "#291824" )
}
}
} ,
reactions : {
"dirt" : { elem1 : null , elem2 : "mud" } ,
"sand" : { elem1 : null , elem2 : "wet_sand" } ,
"clay_soil" : { elem1 : null , elem2 : "clay" } ,
"seltzer" : { elem1 : "soda" , elem2 : "foam" } ,
"carbon_dioxide" : { elem1 : "soda" , elem2 : "foam" } ,
"milk" : { elem1 : "fruit_milk" , elem2 : "fruit_milk" } ,
"alcohol" : { elem1 : "wine" , elem2 : "wine" } ,
"yeast" : { elem1 : [ "wine" , "wine" , "wine" , "wine" , "wine" , "wine" , "wine" , "wine" , "wine" , "wine" , "wine" , "wine" , "wine" , "wine" , "wine" , "wine" , "wine" , "wine" , "wine" , "cream_of_tartar" ] , elem2 : null , chance : 80 } ,
} ,
tempHigh : 160 ,
stateHigh : [ "steam" , "sugar" ] ,
tempLow : - 10 ,
stateLowColorMultiplier : 1.1 ,
category : "liquids" ,
state : "liquid" ,
density : 1054 ,
hidden : true ,
isFood : true
} ;
eLists . JUICEMIXABLE . push ( "grape_juice" ) ;
elements . cream _of _tartar = {
color : [ "#EFEFEF" , "#EBEBEB" , "#D8D8D6" ] ,
behavior : behaviors . POWDER ,
category : "food" ,
state : "solid" ,
density : 1500 ,
isFood : true ,
hidden : true ,
reactions : {
"sugar_water" : { elem2 : "corn_syrup" , elem1 : null , tempMin : 80 } ,
"carbonic_acid" : { elem1 : null , elem2 : "carbon_dioxide" }
}
}
elements . corn _syrup = {
color : [ "#FFCD0C" , "#E47F00" , "#FEB003" ] ,
behavior : behaviors . LIQUID ,
category : "food" ,
state : "liquid" ,
tempHigh : 100 ,
stateHigh : "caramel" ,
isFood : true ,
hidden : true ,
viscosity : 10000
}
if ( ! elements . baking _soda . reactions ) elements . baking _soda . reactions = { } ;
elements . baking _soda . reactions . water = { elem1 : "carbonic_acid" , elem2 : "carbonic_acid" }
elements . carbonic _acid = {
color : [ "#E0DEA5" , "#DFDB9C" , "#EBE8BC" ] ,
behavior : behaviors . LIQUID ,
category : "liquids" ,
state : "liquid" ,
hidden : true ,
}
elements . wine = {
color : [ "#6F0013" , "#6D0112" ] ,
behavior : behaviors . LIQUID ,
category : "liquids" ,
state : "liquid" ,
/ * o n M i x : f u n c t i o n ( p i x e l ) {
if ( shiftDown ) {
if ( Math . random ( ) < 0.2 ) {
changePixel ( pixel , "juice" )
pixel . color = pixelColorPick ( pixel , "#6D0112" )
}
}
} , * /
tempHigh : 100 ,
stateHigh : "steam" ,
isFood : true ,
density : 1000 ,
hidden : true ,
tempLow : 0
}
//eLists.JUICEMIXABLE.push("wine");
elements . shrimp = {
color : [ "#EE5422" , "#E9683C" , "#F3583F" , "#EDA270" ] ,
behavior : [
2024-04-26 06:18:12 -04:00
"SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water,primordial_soup%14|M2%7.5|SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water,primordial_soup%14" ,
2024-04-12 09:36:56 -04:00
"SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water,primordial_soup%14|FX%20|SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water,primordial_soup%14" ,
2024-04-26 06:18:12 -04:00
"M2 AND SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water,primordial_soup%14|M1|M2 AND SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water,primordial_soup%14" ,
2024-04-12 09:36:56 -04:00
] ,
category : "life" ,
state : "solid" ,
2024-04-26 06:18:12 -04:00
cutInto : "raw_shrimp" ,
conduct : 0.2 ,
breakInto : "raw_shrimp" ,
burn : 20 ,
burnTime : 200 ,
temp : 20 ,
tempHigh : 120 ,
stateHigh : "cooked_shrimp" ,
tempLow : - 20 ,
stateLow : "frozen_meat" ,
2024-04-12 09:36:56 -04:00
reactions : {
"algae" : { elem2 : null , chance : 0.25 , func : behaviors . FEEDPIXEL } ,
"plant" : { elem2 : null , chance : 0.125 , func : behaviors . FEEDPIXEL } ,
"fly" : { elem2 : null , chance : 0.4 , func : behaviors . FEEDPIXEL } ,
"firefly" : { elem2 : null , chance : 0.6 , func : behaviors . FEEDPIXEL } ,
"worm" : { elem2 : null , chance : 0.25 , func : behaviors . FEEDPIXEL } ,
"tadpole" : { elem2 : null , chance : 0.25 , func : behaviors . FEEDPIXEL } ,
"oxygen" : { elem2 : "carbon_dioxide" , chance : 0.5 } ,
"dead_bug" : { elem2 : null , chance : 0.2 , func : behaviors . FEEDPIXEL } ,
"broth" : { elem2 : "water" , chance : 0.2 , func : behaviors . FEEDPIXEL } ,
"slug" : { elem2 : null , chance : 0.2 , func : behaviors . FEEDPIXEL } ,
"herb" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"lettuce" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"dead_plant" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"lichen" : { elem2 : null , chance : 0.1 , func : behaviors . FEEDPIXEL } ,
"yeast" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"yogurt" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"tea" : { elem2 : null , chance : 0.2 , func : behaviors . FEEDPIXEL } ,
"meat" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"rotten_meat" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"cooked_meat" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"yolk" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"cell" : { elem2 : null , chance : 0.15 , func : behaviors . FEEDPIXEL } ,
"crumb" : { elem2 : null , chance : 0.1 , func : behaviors . FEEDPIXEL } ,
} ,
}
elements . coconut _seed = {
color : "#7a603d" ,
tick : function ( pixel ) {
if ( Math . random ( ) < 0.1 && 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" ) ;
}
}
if ( isEmpty ( pixel . x , pixel . y - 1 ) && pixel . height < 7 ) {
movePixel ( pixel , pixel . x , pixel . y - 1 ) ;
createPixel ( Math . random ( ) > 0.5 ? "coconut_stem" : "coconut_stem" , pixel . x , pixel . y + 1 ) ;
pixel . height ++
}
}
else if ( pixel . age > 150 && pixel . height > 6 && Math . random ( ) < 0.1 ) {
changePixel ( pixel , "coconut_tree_top" ) ;
}
pixel . age ++ ;
doDefaults ( pixel ) ;
} ,
properties : {
"age" : 0 ,
"height" : 0
} ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
tempLow : - 2 ,
stateLow : "frozen_plant" ,
burn : 65 ,
burnTime : 15 ,
category : "life" ,
state : "solid" ,
density : 1500 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|M1|XX" ,
] ,
} ;
elements . coconut _stem = {
color : "#8f6c3f" ,
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" ] ,
hidden : true
}
elements . coconut _tree _top = {
color : "#8f6c3f" ,
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" ] ,
properties : {
"leftleaves" : 0 ,
"rightleaves" : 0 ,
} ,
hidden : true ,
tick : function ( pixel ) {
if ( Math . random ( ) < 0.1 && pixel . age > 50 && pixel . temp < 100 && pixel . rightleaves == 0 ) {
if ( isEmpty ( pixel . x + 1 , pixel . y ) ) {
createPixel ( Math . random ( ) > 0.5 ? "coconut_leaves" : "coconut_leaves" , pixel . x + 1 , pixel . y ) ;
pixel . rightleaves ++
}
}
if ( Math . random ( ) < 0.1 && pixel . age > 50 && pixel . temp < 100 && pixel . rightleaves == 1 ) {
if ( isEmpty ( pixel . x + 2 , pixel . y ) ) {
createPixel ( Math . random ( ) > 0.5 ? "coconut_leaves" : "coconut_leaves" , pixel . x + 2 , pixel . y ) ;
pixel . rightleaves ++
}
}
if ( Math . random ( ) < 0.1 && pixel . age > 50 && pixel . temp < 100 && pixel . rightleaves == 2 ) {
if ( isEmpty ( pixel . x + 3 , pixel . y ) ) {
createPixel ( Math . random ( ) > 0.5 ? "coconut_leaves" : "coconut_leaves" , pixel . x + 3 , pixel . y ) ;
pixel . rightleaves ++
}
}
if ( Math . random ( ) < 0.1 && pixel . age > 50 && pixel . temp < 100 && pixel . rightleaves == 3 ) {
if ( isEmpty ( pixel . x + 4 , pixel . y + 1 ) ) {
createPixel ( Math . random ( ) > 0.5 ? "coconut_leaves" : "coconut_leaves" , pixel . x + 4 , pixel . y + 1 ) ;
pixel . rightleaves ++
}
}
if ( Math . random ( ) < 0.1 && pixel . age > 50 && pixel . temp < 100 && pixel . leftleaves == 0 ) {
if ( isEmpty ( pixel . x - 1 , pixel . y ) ) {
createPixel ( Math . random ( ) > 0.5 ? "coconut_leaves" : "coconut_leaves" , pixel . x - 1 , pixel . y ) ;
pixel . leftleaves ++
}
}
if ( Math . random ( ) < 0.1 && pixel . age > 50 && pixel . temp < 100 && pixel . leftleaves == 1 ) {
if ( isEmpty ( pixel . x - 2 , pixel . y ) ) {
createPixel ( Math . random ( ) > 0.5 ? "coconut_leaves" : "coconut_leaves" , pixel . x - 2 , pixel . y ) ;
pixel . leftleaves ++
}
}
if ( Math . random ( ) < 0.1 && pixel . age > 50 && pixel . temp < 100 && pixel . leftleaves == 2 ) {
if ( isEmpty ( pixel . x - 3 , pixel . y ) ) {
createPixel ( Math . random ( ) > 0.5 ? "coconut_leaves" : "coconut_leaves" , pixel . x - 3 , pixel . y ) ;
pixel . leftleaves ++
}
}
if ( Math . random ( ) < 0.1 && pixel . age > 50 && pixel . temp < 100 && pixel . leftleaves == 3 ) {
if ( isEmpty ( pixel . x - 4 , pixel . y + 1 ) ) {
createPixel ( Math . random ( ) > 0.5 ? "coconut_leaves" : "coconut_leaves" , pixel . x - 4 , pixel . y + 1 ) ;
pixel . leftleaves ++
}
}
if ( Math . random ( ) < 0.1 && pixel . age > 70 && pixel . temp < 100 && pixel . leftleaves > 0 && pixel . rightleaves > 0 ) {
if ( isEmpty ( pixel . x + 1 , pixel . y + 1 ) ) {
createPixel ( Math . random ( ) > 0.5 ? "coconut" : "coconut" , pixel . x + 1 , pixel . y + 1 ) ;
}
}
if ( Math . random ( ) < 0.1 && pixel . age > 70 && pixel . temp < 100 && pixel . leftleaves > 0 && pixel . rightleaves > 0 ) {
if ( isEmpty ( pixel . x - 1 , pixel . y + 1 ) ) {
createPixel ( Math . random ( ) > 0.5 ? "coconut" : "coconut" , pixel . x - 1 , pixel . y + 1 ) ;
}
}
pixel . age ++ ;
doDefaults ( pixel ) ;
} ,
}
elements . coconut _leaves = {
color : [ "#569923" , "#5ea12b" ] ,
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 ,
hidden : true
}
elements . coconut = {
color : "#6e4621" ,
behavior : [
"ST:coconut_tree_top|ST:coconut_leaves|ST:coconut_tree_top" ,
"ST:coconut_stem|XX|ST:coconut_stem" ,
"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 }
} ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "coconut_milk" ,
cutInto : [ "cut_coconut" ] ,
state : "solid" ,
density : 1050 ,
}
elements . coconut _milk = {
color : "#fffcf2" ,
behavior : behaviors . LIQUID ,
reactions : {
"melted_chocolate" : { elem1 : "chocolate_milk" , elem2 : null } ,
"chocolate" : { elem1 : "chocolate_milk" , 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 } ,
"dirt" : { elem1 : null , elem2 : "mud" } ,
"sand" : { elem1 : null , elem2 : "wet_sand" } ,
"clay_soil" : { elem1 : null , elem2 : "clay" } ,
"caramel" : { color1 : "#C8B39A" , elem2 : null , chance : 0.05 } ,
"sugar" : { elem2 : null , chance : 0.005 } ,
} ,
tempLow : 0 ,
stateLow : "ice_cream" ,
stateLowColorMultiplier : [ 0.97 , 0.93 , 0.87 ] ,
tempHigh : 93 ,
stateHigh : "yogurt" ,
viscosity : 1.5 ,
category : "liquids" ,
state : "liquid" ,
density : 825 ,
isFood : true
}
elements . tea . reactions . coconut _milk = { elem2 : null , color1 : "#ad8955" , chance : 0.005 }
elements . coffee . reactions . coconut _milk = { elem2 : "foam" , color1 : "#856545" , chance : 0.005 }
elements . cut _coconut = {
color : "#fff2cf" ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"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 }
} ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "coconut_juice" ,
state : "solid" ,
density : 1050 ,
hidden : true ,
freezeDryInto : "freeze_dried_fruits" ,
freezeDryIntoColor : "#ede9b9" ,
}
elements . coconut _juice = {
color : "#e9ebe4" ,
onMix : function ( pixel ) {
if ( shiftDown ) {
if ( Math . random ( ) < 0.2 ) {
changePixel ( pixel , "juice" )
pixel . color = pixelColorPick ( pixel , "#e9ebe4" )
}
}
} ,
behavior : behaviors . LIQUID ,
reactions : {
"dirt" : { elem1 : null , elem2 : "mud" } ,
"sand" : { elem1 : null , elem2 : "wet_sand" } ,
"clay_soil" : { elem1 : null , elem2 : "clay" } ,
"caramel" : { color1 : "#C8B39A" , elem2 : null , chance : 0.05 } ,
} ,
tempLow : 0 ,
tempHigh : 93 ,
stateHigh : [ "sugar" , "steam" ] ,
viscosity : 1.5 ,
category : "liquids" ,
state : "liquid" ,
density : 1036.86 ,
hidden : true ,
isFood : true
}
eLists . JUICEMIXABLE . push ( "coconut_juice" ) ;
elements . lemon _wood = {
color : "#786531" ,
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 . lemon _branch = {
color : "#786531" ,
behavior : [
"CR:lemon_leaves,lemon_branch%2|CR:lemon_leaves,lemon_leaves,lemon_leaves,lemon_branch%2|CR:lemon_leaves,lemon_branch%2" ,
"XX|XX|XX" ,
"XX|XX|XX" ,
] ,
tempHigh : 100 ,
stateHigh : "lemon_wood" ,
tempLow : - 30 ,
stateLow : "lemon_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 . lemon _leaves = {
color : [ "#42b336" , "#46a83b" ] ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|CR:lemon%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 : "lemon_seed" ,
hidden : true
}
elements . lemon = {
color : [ "#dbd937" , "#e0dd28" ] ,
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 } ,
"sugar" : { elem1 : "marmalade" , elem2 : null , color1 : "#e0bf2b" , chance : 0.35 }
} ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "lemon_juice" ,
state : "solid" ,
density : 1050 ,
isFood : true ,
cutInto : [ "lemon_zest" , "lemon_slice" , "lemon_slice" , "lemon_slice" , "lemon_slice" ] ,
freezeDryInto : "freeze_dried_fruits" ,
freezeDryIntoColor : "#b8af4b" ,
}
elements . lemon _juice = {
color : "#e0d358" ,
onMix : function ( pixel ) {
if ( shiftDown ) {
if ( Math . random ( ) < 0.2 ) {
changePixel ( pixel , "juice" )
pixel . color = pixelColorPick ( pixel , "#e0d358" )
}
}
} ,
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 ,
hidden : true ,
tempLow : 0 ,
reactions : {
"sugar" : { elem1 : "lemonade" , elem2 : "null" , chance : 0.35 }
}
} ;
eLists . JUICEMIXABLE . push ( "lemon_juice" ) ;
elements . lemonade = {
color : "#fff378" ,
onMix : function ( pixel ) {
if ( shiftDown ) {
if ( Math . random ( ) < 0.2 ) {
changePixel ( pixel , "juice" )
pixel . color = pixelColorPick ( pixel , "#fff378" )
}
}
} ,
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 ,
hidden : true ,
tempLow : 0
} ;
eLists . JUICEMIXABLE . push ( "lemonade" ) ;
elements . lemon _zest = {
color : "#dbc535" ,
behavior : behaviors . POWDER ,
category : "food" ,
tempHigh : 100 ,
stateHigh : [ "sugar" , "steam" ] ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
state : "solid" ,
density : 1050 ,
hidden : true ,
reactions : {
"sugar" : { elem1 : "marmalade" , elem2 : null , color1 : "#e0bf2b" , chance : 0.35 }
} ,
}
elements . lemon _slice = {
color : "#ebe431" ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
tempHigh : 100 ,
stateHigh : [ "sugar" , "steam" ] ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "lemon_juice" ,
state : "solid" ,
density : 1050 ,
hidden : true ,
reactions : {
"sugar" : { elem1 : "marmalade" , elem2 : null , color1 : "#e0bf2b" , chance : 0.35 }
} ,
}
elements . lemon _seed = {
color : "#854610" ,
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" ) ;
}
}
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y - 1 ) ;
createPixel ( Math . random ( ) > 0.5 ? "lemon_wood" : "lemon_branch" , pixel . x , pixel . y + 1 ) ;
}
}
else if ( pixel . age > 1000 ) {
changePixel ( pixel , "lemon_wood" ) ;
}
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 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"XX|XX|XX" ,
"XX|FX%10|XX" ,
"XX|M1|XX" ,
] ,
} ;
elements . carrot _seed = {
color : "#b08d35" ,
tick : function ( pixel ) {
if ( isEmpty ( pixel . x , pixel . y + 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y + 1 ) ;
}
else {
if ( Math . random ( ) < 0.1 && pixel . age > 100 && pixel . temp < 100 && pixel . leafgrown == true && pixel . growthpixel == 0 ) {
if ( ! outOfBounds ( pixel . x , pixel . y + 1 ) ) {
var randomNumber1 = Math . round ( Math . random ( ) ) ;
pixel . growthpixel = pixel . growthpixel + randomNumber1 ;
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" ) {
deletePixel ( pixel . x , pixel . y + 1 ) ;
movePixel ( pixel , pixel . x , pixel . y + 1 ) ;
createPixel ( "carrot_leaves" , pixel . x , pixel . y - 1 ) ;
pixel . growthpixel ++ ;
}
}
}
if ( Math . random ( ) < 0.1 && pixel . age > 100 && pixel . temp < 100 && pixel . leafgrown == true && pixel . growthpixel > 0 && pixel . growthpixel < 4 ) {
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" ) {
deletePixel ( pixel . x , pixel . y + 1 ) ;
movePixel ( pixel , pixel . x , pixel . y + 1 ) ;
createPixel ( "carrot" , pixel . x , pixel . y - 1 ) ;
pixel . growthpixel ++ ;
}
}
}
if ( ! isEmpty ( pixel . x , pixel . y + 1 ) && Math . random ( ) > 0.95 && isEmpty ( pixel . x - 1 , pixel . y - 1 ) && isEmpty ( pixel . x + 1 , pixel . y - 1 ) && pixel . leafgrown == false ) {
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" ) {
createPixel ( "carrot_leaves" , pixel . x - 1 , pixel . y - 1 ) ;
createPixel ( "carrot_leaves" , pixel . x + 1 , pixel . y - 1 ) ;
pixel . leafgrown = true ;
}
}
else if ( pixel . age > 150 && pixel . growthpixel == 4 && Math . random ( ) < 0.1 ) {
changePixel ( pixel , "carrot" ) ;
}
pixel . age ++ ;
}
doDefaults ( pixel ) ;
} ,
properties : {
"age" : 0 ,
"growthpixel" : 0 ,
"leafgrown" : false
} ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
tempLow : - 2 ,
stateLow : "frozen_plant" ,
burn : 65 ,
burnTime : 15 ,
category : "life" ,
state : "solid" ,
density : 1500 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|M1|XX" ,
] ,
} ;
elements . carrot _leaves = {
color : [ "#61cc3d" , "#58c234" ] ,
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 }
} ,
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 : "carrot_seed" ,
hidden : true
}
elements . carrot = {
color : "#e39919" ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
tempHigh : 100 ,
stateHigh : [ "steam" ] ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "carrot_juice" ,
state : "solid" ,
density : 1050 ,
freezeDryInto : "freeze_dried_fruits" ,
freezeDryIntoColor : "#ba8125" ,
}
elements . carrot _juice = {
color : "#f5a742" ,
onMix : function ( pixel ) {
if ( shiftDown ) {
if ( Math . random ( ) < 0.2 ) {
changePixel ( pixel , "juice" )
pixel . color = pixelColorPick ( pixel , "#f5a742" )
}
}
} ,
behavior : behaviors . LIQUID ,
category : "liquids" ,
tempHigh : 100 ,
stateHigh : [ "steam" , "sugar" ] ,
burn : 70 ,
tempLow : 0 ,
burnTime : 300 ,
burnInto : [ "steam" , "smoke" ] ,
state : "liquid" ,
density : 825 ,
hidden : true ,
temp : 30 ,
} ;
eLists . JUICEMIXABLE . push ( "carrot_juice" ) ;
elements . apple _cider _vinegar = {
color : "#fffe75" ,
onMix : function ( pixel ) {
if ( shiftDown ) {
if ( Math . random ( ) < 0.2 ) {
changePixel ( pixel , "juice" )
pixel . color = pixelColorPick ( pixel , "#fffe75" )
}
}
} ,
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
} ;
eLists . JUICEMIXABLE . push ( "apple_cider_vinegar" ) ;
elements . turnip _seed = {
color : "#994828" ,
tick : function ( pixel ) {
if ( Math . random ( ) < 0.1 && pixel . age > 100 && pixel . temp < 100 && pixel . leafgrown == true && pixel . growthpixel == 0 ) {
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" ) {
deletePixel ( pixel . x , pixel . y + 1 ) ;
movePixel ( pixel , pixel . x , pixel . y + 1 ) ;
createPixel ( "turnip_leaves" , pixel . x , pixel . y - 1 ) ;
pixel . growthpixel ++ ;
}
}
}
if ( pixel . age > 100 && pixel . temp < 100 && pixel . leafgrown == true && pixel . growthpixel > 0 && pixel . growthpixel < 3 ) {
if ( ! outOfBounds ( pixel . x - 1 , pixel . y ) ) {
var pixelleft = pixelMap [ pixel . x - 1 ] [ pixel . y ] ;
if ( pixelleft . element === "dirt" || pixelleft . element === "mud" || pixelleft . element === "sand" || pixelleft . element === "wet_sand" || pixelleft . element === "clay_soil" || pixelleft . element === "mycelium" ) {
deletePixel ( pixel . x - 1 , pixel . y ) ;
createPixel ( "turnip" , pixel . x - 1 , pixel . y ) ;
}
}
if ( ! outOfBounds ( pixel . x + 1 , pixel . y ) ) {
var pixelright = pixelMap [ pixel . x + 1 ] [ pixel . y ] ;
if ( pixelright . element === "dirt" || pixelright . element === "mud" || pixelright . element === "sand" || pixelright . element === "wet_sand" || pixelright . element === "clay_soil" || pixelright . element === "mycelium" ) {
deletePixel ( pixel . x + 1 , pixel . y ) ;
createPixel ( "turnip" , pixel . x + 1 , pixel . y ) ;
}
}
}
if ( Math . random ( ) < 0.1 && pixel . age > 100 && pixel . temp < 100 && pixel . leafgrown == true && pixel . growthpixel > 0 && pixel . growthpixel < 3 ) {
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" ) {
deletePixel ( pixel . x , pixel . y + 1 ) ;
movePixel ( pixel , pixel . x , pixel . y + 1 ) ;
createPixel ( "turnip" , pixel . x , pixel . y - 1 ) ;
pixel . growthpixel ++ ;
}
}
}
if ( ! isEmpty ( pixel . x , pixel . y + 1 ) && Math . random ( ) > 0.95 && isEmpty ( pixel . x - 1 , pixel . y - 1 ) && isEmpty ( pixel . x + 1 , pixel . y - 1 ) && pixel . leafgrown == false ) {
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" ) {
createPixel ( "turnip_leaves" , pixel . x - 1 , pixel . y - 1 ) ;
createPixel ( "turnip_leaves" , pixel . x + 1 , pixel . y - 1 ) ;
pixel . leafgrown ++
}
}
else if ( pixel . age > 150 && pixel . growthpixel == 3 && Math . random ( ) < 0.1 ) {
changePixel ( pixel , "turnip" ) ;
}
pixel . age ++ ;
doDefaults ( pixel ) ;
} ,
properties : {
"age" : 0 ,
"growthpixel" : 0 ,
"leafgrown" : false
} ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
tempLow : - 2 ,
stateLow : "frozen_plant" ,
burn : 65 ,
burnTime : 15 ,
category : "life" ,
state : "solid" ,
density : 1500 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|M1|XX" ,
] ,
} ;
elements . turnip _leaves = {
color : [ "#399431" , "#3b8c34" ] ,
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 }
} ,
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 : "turnip_seed" ,
hidden : true
}
elements . turnip = {
color : [ "#945bb3" , "#a05cbd" , "#a053b8" , "#b364c4" ] ,
behavior : behaviors . POWDER ,
category : "food" ,
tempHigh : 100 ,
stateHigh : [ "steam" ] ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "turnip_juice" ,
state : "solid" ,
density : 1050 ,
freezeDryInto : "freeze_dried_fruits" ,
freezeDryIntoColor : "#79097d" ,
}
elements . turnip _juice = {
color : "#700f5d" ,
onMix : function ( pixel ) {
if ( shiftDown ) {
if ( Math . random ( ) < 0.2 ) {
changePixel ( pixel , "juice" )
pixel . color = pixelColorPick ( pixel , "#700f5d" )
}
}
} ,
behavior : behaviors . LIQUID ,
category : "liquids" ,
tempHigh : 100 ,
stateHigh : [ "steam" , "sugar" ] ,
burn : 70 ,
tempLow : 0 ,
burnTime : 300 ,
burnInto : [ "steam" , "smoke" ] ,
state : "liquid" ,
density : 825 ,
hidden : true ,
temp : 30 ,
} ;
eLists . JUICEMIXABLE . push ( "turnip_juice" ) ;
elements . corn . breakInto = "corn_starch"
elements . corn _starch = {
color : [ "#fcf2e1" , "#f2e7d3" , "#fcf3de" ] ,
behavior : behaviors . POWDER ,
name : "starch" ,
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 : "cracker_dough" , elem2 : null , color1 : "#dbd19a" } ,
"yogurt" : { elem1 : "cracker_dough" , elem2 : null , color1 : "#dbd19a" } ,
"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 ,
alias : "starch"
}
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 . tempHigh = 104 ,
elements . sap . stateHigh = [ "maple_syrup" , "maple_syrup" , "maple_syrup" , "sap" ] ,
elements . maple _syrup = {
color : [ "#fabb34" , "#facc34" , "#fabb34" ] ,
behavior : behaviors . LIQUID ,
tempHigh : 170 ,
stateHigh : [ "sugar" , "smoke" , "smoke" ] ,
2024-04-26 06:18:12 -04:00
tempLow : - 15 ,
2024-04-12 09:36:56 -04:00
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 ,
freezeDryInto : "freeze_dried_fruits" ,
}
elements . strawberry _juice = {
color : "#e03a3a" ,
onMix : function ( pixel ) {
if ( shiftDown ) {
if ( Math . random ( ) < 0.2 ) {
changePixel ( pixel , "juice" )
pixel . color = pixelColorPick ( pixel , "#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 ,
reactions : {
"sugar" : { elem1 : "strawberry_jam" , elem2 : null , chance : 0.35 } ,
"milk" : { elem1 : "fruit_milk" , elem2 : null , chance : 0.35 , color1 : "#f78888" } ,
} ,
} ;
eLists . JUICEMIXABLE . push ( "strawberry_juice" ) ;
elements . cream . 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" )
}
}
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" ,
2025-02-27 05:24:35 -05:00
cutInto : "cut_ginger" ,
2024-04-12 09:36:56 -04:00
category : "food" ,
state : "solid" ,
density : 1250 ,
conduct : 0.1 ,
hidden : true
}
2025-02-27 05:24:35 -05:00
elements . cut _ginger = {
color : "#ffdd80" ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"M2|M1|M2" ,
] ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "steam" ,
burn : 15 ,
burnTime : 60 ,
burnInto : "steam" ,
breakInto : "juice" ,
breakIntoColor : "#ffe396" ,
state : "solid" ,
density : 1050 ,
hidden : true
}
2024-04-12 09:36:56 -04:00
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" ,
onMix : function ( pixel ) {
if ( shiftDown ) {
if ( Math . random ( ) < 0.2 ) {
changePixel ( pixel , "juice" )
pixel . color = pixelColorPick ( pixel , "#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 } ,
} ,
} ;
eLists . JUICEMIXABLE . push ( "ginger_juice" ) ;
elements . blueberry _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 , "blueberry_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 . blueberry _stem = {
color : "#419c2f" ,
behavior : [
"CR:blueberry_stem,blueberry_leaves,blueberry_leaves,blueberry_leaves,blueberry_leaves%3|CR:blueberry_stem,blueberry_leaves,blueberry_leaves,blueberry_leaves,blueberry_leaves%3|CR:blueberry_stem,blueberry_leaves,blueberry_leaves,blueberry_leaves,blueberry_leaves%3" ,
"CR:blueberry_stem,blueberry_leaves,blueberry_leaves,blueberry_leaves,blueberry_leaves%3|XX|CR:blueberry_stem,blueberry_leaves,blueberry_leaves,blueberry_leaves,blueberry_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 . blueberry _leaves = {
color : "#4bad37" ,
behavior : [
"XX|CR:blueberry%2|XX" ,
"CR:blueberry%2|XX|CR:blueberry%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 . blueberry = {
color : "#5d4bc4" ,
behavior : [
"XX|ST:blueberry_stem,blueberry_leaves|XX" ,
"ST:blueberry_stem,blueberry_leaves|XX|ST:blueberry_stem,blueberry_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 : "blueberry_juice" ,
state : "solid" ,
density : 1050 ,
cutInto : "cut_blueberry" ,
freezeDryInto : "freeze_dried_fruits" ,
freezeDryIntoColor : "#33146e" ,
}
elements . blueberry _juice = {
color : "#5030a1" ,
onMix : function ( pixel ) {
if ( shiftDown ) {
if ( Math . random ( ) < 0.2 ) {
changePixel ( pixel , "juice" )
pixel . color = pixelColorPick ( pixel , "#5030a1" )
}
}
} ,
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 : {
"sugar" : { elem1 : "blueberry_jam" , elem2 : null , chance : 0.35 } ,
"milk" : { elem1 : "fruit_milk" , elem2 : null , chance : 0.35 , color1 : "#995fb3" } ,
} ,
} ;
eLists . JUICEMIXABLE . push ( "blueberry_juice" ) ;
/ *
elements . fruit _slushie = {
color : "#ffcc54" ,
behavior : behaviors . LIQUID ,
reactions : {
"dirt" : { elem1 : null , elem2 : "mud" } ,
"sand" : { elem1 : null , elem2 : "wet_sand" }
} ,
temp : - 5 ,
tempHigh : 18 ,
tempLow : - 20 ,
stateLow : "ice" ,
stateHigh : "water" ,
category : "food" ,
state : "liquid" ,
density : 95 ,
viscosity : 100 ,
hidden : true
}
* /
elements . strawberry _jam = {
color : "#c73c3e" ,
behavior : behaviors . LIQUID ,
category : "food" ,
tempHigh : 400 ,
stateHigh : [ "sugar" , "smoke" ] ,
burn : 70 ,
burnTime : 300 ,
viscosity : 750 ,
state : "liquid" ,
density : 825 ,
hidden : true
} ;
elements . blueberry _jam = {
color : "#281C4B" ,
behavior : behaviors . LIQUID ,
category : "food" ,
tempHigh : 400 ,
stateHigh : [ "sugar" , "smoke" ] ,
burn : 70 ,
burnTime : 300 ,
viscosity : 750 ,
state : "liquid" ,
density : 825 ,
hidden : true
} ;
elements . cut _blueberry = {
color : "#d4ed8a" ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"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 : "juice" ,
breakIntoColor : "#add69a" ,
state : "solid" ,
density : 1050 ,
hidden : true
}
if ( ! elements . yeast . reactions ) elements . yeast . reactions = { } ;
elements . yeast . reactions . flour = { elem1 : "advanced_dough" , elem2 : null }
elements . advanced _dough = {
color : "#c49f58" ,
behavior : behaviors . STURDYPOWDER ,
reactions : {
"milk" : { elem2 : "broth" , color2 : "#ECC891" , tempMin : 70 } ,
"cream" : { elem2 : "broth" , color2 : "#ECC891" , tempMin : 70 } ,
} ,
category : "food" ,
tempHigh : 94 ,
stateHigh : "bread" ,
stateHighColorMultiplier : 0.9 ,
burn : 40 ,
burnTime : 25 ,
burnInto : "ash" ,
state : "solid" ,
density : 526.9 ,
isFood : true ,
hidden : true
}
if ( ! elements . melted _chocolate . reactions ) elements . melted _chocolate . reactions = { } ;
elements . melted _chocolate . reactions . flour = { elem1 : "cookie_dough" , elem2 : null }
elements . cookie _dough = {
color : [ "#946826" , "#9e783f" , "#8a6d41" , "#614925" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
tempHigh : 94 ,
stateHigh : "cookie" ,
stateHighColorMultiplier : 1.1 ,
burn : 40 ,
burnTime : 25 ,
burnInto : "ash" ,
state : "solid" ,
density : 526.9 ,
isFood : true ,
hidden : true
}
elements . cookie = {
color : "#7d5f2e" ,
behavior : behaviors . STURDYPOWDER ,
tempHigh : 605 ,
stateHigh : "ash" ,
category : "food" ,
burn : 30 ,
burnTime : 200 ,
burnInto : [ "smoke" , "smoke" , "smoke" , "ash" ] ,
breakInto : "crumb" ,
breakIntoColor : "#7d6216" ,
state : "solid" ,
density : 233.96 ,
isFood : true
}
elements . nut _oil . name = "cooking_oil"
elements . bread . behavior = behaviors . SUPPORT
elements . toast . behavior = behaviors . SUPPORT
if ( ! elements . caramel . reactions ) elements . caramel . reactions = { } ;
elements . caramel . reactions . corn _starch = { elem1 : "boba_dough" , elem2 : null , chance : 0.35 , tempMin : 70 }
elements . boba _dough = {
color : [ "#4a2007" , "#2b1304" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
tempHigh : 400 ,
stateHigh : "ash" ,
stateHighColorMultiplier : 0.8 ,
burn : 40 ,
burnTime : 25 ,
burnInto : "ash" ,
state : "solid" ,
density : 526.9 ,
reactions : {
"water" : { elem1 : "boba" , tempMin : 60 } ,
} ,
isFood : true ,
hidden : true
}
elements . boba = {
color : "#59290c" ,
behavior : behaviors . POWDER ,
tempHigh : 300 ,
stateHigh : "fire" ,
category : "food" ,
burn : 30 ,
burnTime : 200 ,
burnInto : [ "smoke" , "smoke" , "smoke" , "ash" ] ,
breakIntoColor : "#7d6216" ,
state : "solid" ,
density : 1500 ,
isFood : true
}
elements . caramel . density = 1500
elements . freeze = {
color : [ "#42cbf5" , "#42cbf5" , "#42cbf5" , "#75d3f0" , "#42cbf5" ] ,
tool : function ( pixel ) {
if ( ! shiftDown ) {
pixel . temp -= 0.2 ;
pixelTempCheck ( pixel ) ;
} else {
pixel . temp -= 200 ;
pixelTempCheck ( pixel ) ;
}
} ,
category : "energy" ,
canPlace : false ,
excludeRandom : true ,
desc : "Use on pixels to freeze them."
} ;
elements . warm = {
color : [ "#c7634a" , "#c7634a" , "#c7634a" , "#e38f7b" , "#c7634a" ] ,
tool : function ( pixel ) {
if ( ! shiftDown ) {
pixel . temp += 0.2 ;
pixelTempCheck ( pixel ) ;
} else {
pixel . temp += 200 ;
pixelTempCheck ( pixel ) ;
}
} ,
category : "energy" ,
canPlace : false ,
excludeRandom : true ,
desc : "Use on pixels to warm them."
} ;
/ *
elements . pineapple _seed = {
color : "#695531" ,
tick : function ( pixel ) {
if ( isEmpty ( pixel . x , pixel . y + 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y + 1 ) ;
}
else {
if ( pixel . temp < 100 && pixel . temp > 20 ) {
if ( Math . random ( ) < 0.02 && pixel . age > 50 ) {
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 . leaflength = pixel . leaflength + Math . round ( Math . random ( ) )
}
}
if ( isEmpty ( pixel . x , pixel . y - 1 ) && pixel . leafgrown == false ) {
movePixel ( pixel , pixel . x , pixel . y - 1 ) ;
createPixel ( "pineapple_leaves" , pixel . x , pixel . y + 1 ) ;
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
createPixel ( "pineapple" , pixel . x , pixel . y - 1 ) ;
}
if ( isEmpty ( pixel . x + 1 , pixel . y ) && Math . random ( ) < 0.5 ) {
createPixel ( "pineapple_leaves" , pixel . x + 1 , pixel . y ) ;
if ( isEmpty ( pixel . x + 2 , pixel . y - 1 ) && Math . random ( ) < 0.5 ) {
createPixel ( "pineapple_leaves" , pixel . x + 2 , pixel . y - 1 ) ;
if ( pixel . leaflength == 4 && isEmpty ( pixel . x + 3 , pixel . y - 2 ) && Math . random ( ) < 0.5 ) {
createPixel ( "pineapple_leaves" , pixel . x + 3 , pixel . y - 2 ) ;
pixel . leafgrown = true
}
}
}
if ( isEmpty ( pixel . x - 1 , pixel . y ) && Math . random ( ) < 0.5 ) {
createPixel ( "pineapple_leaves" , pixel . x - 1 , pixel . y ) ;
if ( isEmpty ( pixel . x - 2 , pixel . y - 1 ) && Math . random ( ) < 0.5 ) {
createPixel ( "pineapple_leaves" , pixel . x - 2 , pixel . y - 1 ) ;
if ( pixel . leaflength = 3 ) {
pixel . leafgrown = true
}
if ( pixel . leaflength = 4 && isEmpty ( pixel . x - 3 , pixel . y - 2 ) && isEmpty ( pixel . x + 3 , pixel . y - 2 ) && Math . random ( ) < 0.5 ) {
createPixel ( "pineapple_leaves" , pixel . x - 3 , pixel . y - 2 ) ;
createPixel ( "pineapple_leaves" , pixel . x + 3 , pixel . y - 2 ) ;
pixel . leafgrown = true
}
}
}
}
}
else if ( pixel . age > 500 && leafgrown == true && Math . random ( ) < 0.1 ) {
changePixel ( pixel , "pineapple_leaves" ) ;
}
}
pixel . age ++ ;
}
doDefaults ( pixel ) ;
} ,
properties : {
"age" : 0 ,
"leaflength" : 3 ,
"leafgrown" : false ,
} ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
tempLow : - 2 ,
stateLow : "frozen_plant" ,
burn : 65 ,
burnTime : 15 ,
category : "life" ,
state : "solid" ,
density : 1500 ,
cooldown : defaultCooldown ,
seed : true ,
temp : 25 ,
behavior : [
"XX|XX|XX" ,
"XX|FX%10|XX" ,
"XX|M1|XX" ,
] ,
} ;
* //*
function averageHexColor ( color1 , color2 ) {
const rgb1 = hexToRgb ( color1 ) ;
const rgb2 = hexToRgb ( color2 ) ;
const avgRed = Math . floor ( ( rgb1 [ 0 ] + rgb2 [ 0 ] ) / 2 ) ;
const avgGreen = Math . floor ( ( rgb1 [ 1 ] + rgb2 [ 1 ] ) / 2 ) ;
const avgBlue = Math . floor ( ( rgb1 [ 2 ] + rgb2 [ 2 ] ) / 2 ) ;
const avgHex = rgbToHex ( avgRed , avgGreen , avgBlue ) ;
return avgHex ;
}
function hexToRgb ( hex ) {
hex = hex . replace ( /^#/ , '' ) ;
const r = parseInt ( hex . substring ( 0 , 2 ) , 16 ) ;
const g = parseInt ( hex . substring ( 2 , 4 ) , 16 ) ;
const b = parseInt ( hex . substring ( 4 , 6 ) , 16 ) ;
return [ r , g , b ] ;
}
function rgbToHex ( r , g , b ) {
const rHex = r . toString ( 16 ) . padStart ( 2 , '0' ) ;
const gHex = g . toString ( 16 ) . padStart ( 2 , '0' ) ;
const bHex = b . toString ( 16 ) . padStart ( 2 , '0' ) ;
return ` ${ rHex } ${ gHex } ${ bHex } ` ;
}
* /
// test
//var color1 = "#FF0000";
//var color2 = "#0000FF";
//var averageColor = averageHexColor(color1, color2);
//console.log(averageColor)
/ *
eLists . JUICEMIXABLE . forEach ( function ( element ) {
elements [ element ] . onMix = function ( pixel1 , pixel2 ) {
if ( shiftDown && eLists . JUICEMIXABLE . indexOf ( pixel2 . element ) !== - 1 ) {
if ( Math . random ( ) < 0.2 ) {
var hex1 = pixel1 . color
var hex2 = pixel2 . color
let rgb = pixel . color . replace ( "rgb(" , "" ) . replace ( ")" , "" ) . split ( "," ) ;
let rgbObj = { r : parseInt ( rgb [ 0 ] ) , g : parseInt ( rgb [ 1 ] ) , b : parseInt ( rgb [ 2 ] ) } //use this as one of the rgb objects
var finalJuiceColor = interpolatedRgb ( hex1 , hex2 , 0.5 )
changePixel ( pixel1 , "juice" )
//pixel1.color = pixelColorPick(pixel,finalJuiceColor)
pixel1 . color = rgb ( rgbObj )
}
}
}
} ) * /
elements . juice . onMix = function ( pixel ) {
let num = Math . floor ( Math . random ( ) * 4 ) ;
let x = pixel . x + adjacentCoords [ num ] [ 0 ] ;
let y = pixel . y + adjacentCoords [ num ] [ 1 ] ;
if ( ! isEmpty ( x , y ) && ! outOfBounds ( x , y ) ) {
let pixel2 = pixelMap [ x ] [ y ] ;
if ( pixel . color != pixel2 . color && pixel2 . element == "juice" ) {
let condition ;
if ( shiftDown == 0 ) {
condition = ( Math . floor ( Math . random ( ) * 2 ) == 1 ) ;
} else {
condition = true ;
}
if ( condition ) {
let newrgb = interpolateRgb ( getRGB ( pixel . color ) , getRGB ( pixel2 . color ) , 0.5 ) ;
pixel . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
pixel2 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
}
}
}
}
elements . juice . stain = 0
elements . banana _seed = {
color : "#594129" ,
tick : function ( pixel ) {
if ( Math . random ( ) < 0.1 && 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" ) ;
}
}
if ( isEmpty ( pixel . x , pixel . y - 1 ) && pixel . height < 7 ) {
movePixel ( pixel , pixel . x , pixel . y - 1 ) ;
createPixel ( "banana_stem" , pixel . x , pixel . y + 1 ) ;
pixel . height ++
}
}
else if ( pixel . age > 150 && pixel . height > 6 && Math . random ( ) < 0.1 ) {
changePixel ( pixel , "banana_tree_top" ) ;
}
pixel . age ++ ;
doDefaults ( pixel ) ;
} ,
properties : {
"age" : 0 ,
"height" : 0
} ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
tempLow : - 2 ,
stateLow : "frozen_plant" ,
burn : 65 ,
burnTime : 15 ,
category : "life" ,
state : "solid" ,
density : 1500 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|M1|XX" ,
] ,
} ;
elements . banana _stem = {
color : "#698215" ,
behavior : behaviors . WALL ,
tempHigh : 400 ,
stateHigh : [ "ember" , "charcoal" , "fire" , "fire" , "fire" ] ,
category : "life" ,
burn : 5 ,
burnTime : 300 ,
burnInto : [ "ember" , "charcoal" , "fire" ] ,
state : "solid" ,
hardness : 0.15 ,
breakInto : "sawdust" ,
breakIntoColor : [ "#dba66e" , "#cc8a64" ] ,
hidden : true
}
elements . banana _tree _top = {
color : "#718a21" ,
behavior : behaviors . WALL ,
tempHigh : 400 ,
stateHigh : [ "ember" , "charcoal" , "fire" , "fire" , "fire" ] ,
category : "life" ,
burn : 5 ,
burnTime : 300 ,
burnInto : [ "ember" , "charcoal" , "fire" ] ,
state : "solid" ,
hardness : 0.15 ,
breakInto : "sawdust" ,
breakIntoColor : [ "#dba66e" , "#cc8a64" ] ,
properties : {
"leftleaves" : 0 ,
"rightleaves" : 0 ,
} ,
hidden : true ,
tick : function ( pixel ) {
if ( Math . random ( ) < 0.1 && pixel . age > 50 && pixel . temp < 100 && pixel . rightleaves == 0 ) {
if ( isEmpty ( pixel . x + 1 , pixel . y ) ) {
createPixel ( "banana_leaves" , pixel . x + 1 , pixel . y ) ;
pixel . rightleaves ++
}
}
if ( Math . random ( ) < 0.1 && pixel . age > 50 && pixel . temp < 100 && pixel . rightleaves == 1 ) {
if ( isEmpty ( pixel . x + 2 , pixel . y ) ) {
createPixel ( "banana_leaves" , pixel . x + 2 , pixel . y ) ;
pixel . rightleaves ++
}
}
if ( Math . random ( ) < 0.1 && pixel . age > 50 && pixel . temp < 100 && pixel . rightleaves == 2 ) {
if ( isEmpty ( pixel . x + 3 , pixel . y ) ) {
createPixel ( "banana_leaves" , pixel . x + 3 , pixel . y ) ;
pixel . rightleaves ++
}
}
if ( Math . random ( ) < 0.1 && pixel . age > 50 && pixel . temp < 100 && pixel . rightleaves == 3 ) {
if ( isEmpty ( pixel . x + 4 , pixel . y + 1 ) ) {
createPixel ( "banana_leaves" , pixel . x + 4 , pixel . y + 1 ) ;
pixel . rightleaves ++
}
}
if ( Math . random ( ) < 0.1 && pixel . age > 50 && pixel . temp < 100 && pixel . leftleaves == 0 ) {
if ( isEmpty ( pixel . x - 1 , pixel . y ) ) {
createPixel ( "banana_leaves" , pixel . x - 1 , pixel . y ) ;
pixel . leftleaves ++
}
}
if ( Math . random ( ) < 0.1 && pixel . age > 50 && pixel . temp < 100 && pixel . leftleaves == 1 ) {
if ( isEmpty ( pixel . x - 2 , pixel . y ) ) {
createPixel ( "banana_leaves" , pixel . x - 2 , pixel . y ) ;
pixel . leftleaves ++
}
}
if ( Math . random ( ) < 0.1 && pixel . age > 50 && pixel . temp < 100 && pixel . leftleaves == 2 ) {
if ( isEmpty ( pixel . x - 3 , pixel . y ) ) {
createPixel ( "banana_leaves" , pixel . x - 3 , pixel . y ) ;
pixel . leftleaves ++
}
}
if ( Math . random ( ) < 0.1 && pixel . age > 50 && pixel . temp < 100 && pixel . leftleaves == 3 ) {
if ( isEmpty ( pixel . x - 4 , pixel . y + 1 ) ) {
createPixel ( "banana_leaves" , pixel . x - 4 , pixel . y + 1 ) ;
pixel . leftleaves ++
}
}
if ( Math . random ( ) < 0.1 && pixel . age > 70 && pixel . temp < 100 && pixel . leftleaves > 0 && pixel . rightleaves > 0 ) {
if ( isEmpty ( pixel . x + 1 , pixel . y + 2 ) ) {
createPixel ( "banana_peduncle" , pixel . x + 1 , pixel . y + 2 ) ;
}
}
if ( Math . random ( ) < 0.1 && pixel . age > 70 && pixel . temp < 100 && pixel . leftleaves > 0 && pixel . rightleaves > 0 ) {
if ( isEmpty ( pixel . x - 1 , pixel . y + 2 ) ) {
createPixel ( "banana_peduncle" , pixel . x - 1 , pixel . y + 2 ) ;
}
}
pixel . age ++ ;
doDefaults ( pixel ) ;
} ,
}
elements . banana _leaves = {
color : [ "#3da324" , "#3cbd1c" ] ,
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 ,
hidden : true
}
elements . banana _peduncle = {
color : "#8bb81a" ,
behavior : behaviors . WALL ,
tempHigh : 400 ,
stateHigh : [ "ember" , "charcoal" , "fire" , "fire" , "fire" ] ,
category : "life" ,
burn : 5 ,
burnTime : 300 ,
burnInto : [ "ember" , "charcoal" , "fire" ] ,
state : "solid" ,
hardness : 0.15 ,
breakInto : "sawdust" ,
hidden : true ,
tick : function ( pixel ) {
if ( Math . random ( ) < 0.1 && pixel . temp < 100 ) {
if ( isEmpty ( pixel . x + 1 , pixel . y + 1 ) ) {
createPixel ( "hanging_banana_peduncle" , pixel . x + 1 , pixel . y + 1 ) ;
}
if ( isEmpty ( pixel . x - 1 , pixel . y + 1 ) ) {
createPixel ( "hanging_banana_peduncle" , pixel . x - 1 , pixel . y + 1 ) ;
}
if ( isEmpty ( pixel . x + 1 , pixel . y + 2 ) ) {
createPixel ( "hanging_banana_peduncle" , pixel . x + 1 , pixel . y + 2 ) ;
}
if ( isEmpty ( pixel . x - 1 , pixel . y + 2 ) ) {
createPixel ( "hanging_banana_peduncle" , pixel . x - 1 , pixel . y + 2 ) ;
}
}
pixel . age ++ ;
doDefaults ( pixel ) ;
} ,
}
elements . hanging _banana _peduncle = {
color : "#8bb81a" ,
behavior : [
"XX|XX|XX" ,
"CR:banana%0.2|XX|CR:banana%0.2" ,
"XX|XX|XX" ,
] ,
tempHigh : 400 ,
stateHigh : [ "ember" , "charcoal" , "fire" , "fire" , "fire" ] ,
category : "life" ,
burn : 5 ,
burnTime : 300 ,
burnInto : [ "ember" , "charcoal" , "fire" ] ,
state : "solid" ,
hardness : 0.15 ,
breakInto : "sawdust" ,
hidden : true ,
}
elements . banana = {
color : "#ebd834" ,
behavior : [
"XX|XX|XX" ,
"ST:hanging_banana_peduncle|XX|ST:hanging_banana_peduncle" ,
"XX|M1|XX" ,
] ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
burn : 15 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "banana_juice" ,
state : "solid" ,
density : 1050 ,
cutInto : "cut_banana" ,
freezeDryInto : "freeze_dried_fruits" ,
freezeDryIntoColor : "#c4b939" ,
}
elements . cut _banana = {
color : "#f2e56b" ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"M2|M1|M2" ,
] ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
burn : 15 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "banana_juice" ,
state : "solid" ,
density : 1050 ,
hidden : true ,
freezeDryInto : "freeze_dried_fruits" ,
freezeDryIntoColor : "#c4b939" ,
}
elements . banana _juice = {
color : "#dbc440" ,
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 ,
onMix : function ( pixel ) {
if ( shiftDown ) {
if ( Math . random ( ) < 0.2 ) {
changePixel ( pixel , "juice" )
pixel . color = pixelColorPick ( pixel , "#dbc440" )
}
}
} ,
reactions : {
"bread" : { elem1 : "banana_bread" , elem2 : null , chance : 0.35 } ,
"milk" : { elem1 : "fruit_milk" , elem2 : "fruit_milk" , chance : 0.35 , color1 : "#ede59a" , color2 : "#ede59a" } ,
"coconut_milk" : { elem1 : "fruit_milk" , elem2 : "fruit_milk" , chance : 0.35 , color1 : "#ede59a" , color2 : "#ede59a" } ,
"nut_milk" : { elem1 : "fruit_milk" , elem2 : "fruit_milk" , chance : 0.35 , color1 : "#ede59a" , color2 : "#ede59a" }
} ,
tempLow : 0
} ;
eLists . JUICEMIXABLE . push ( "banana_juice" ) ;
elements . banana _bread = {
color : "#c2782f" ,
desc : "delicious banana bread" ,
behavior : behaviors . STURDYPOWDER ,
tempHigh : 176 ,
stateHigh : "toast" ,
category : "food" ,
burn : 30 ,
burnTime : 200 ,
burnInto : [ "smoke" , "smoke" , "smoke" , "ash" ] ,
breakInto : "crumb" ,
state : "solid" ,
density : 233.96 ,
isFood : true
}
elements . sprinkles = {
color : [ "#eb726a" , "#ebca6a" , "#88eb6a" , "#6aaceb" , "#eb6ade" ] ,
behavior : behaviors . POWDER ,
category : "food" ,
state : "solid" ,
desc : "colorful edible sand" ,
hidden : false ,
isFood : true ,
burn : 30 ,
burnTime : 200 ,
burnInto : [ "smoke" , "smoke" , "smoke" , "ash" ] ,
breakInto : "sugar" ,
breakIntoColor : [ "#fb827a" , "#fbda7a" , "#98fb7a" , "#7abcfb" , "#fb7aee" ] ,
tempHigh : 176 ,
stateHigh : "caramel" ,
density : 277 ,
cooldown : 2
}
elements . chocolate _chips = {
color : "#6e4c1d" ,
behavior : behaviors . POWDER ,
tempHigh : 31 ,
stateHigh : "melted_chocolate" ,
category : "food" ,
state : "solid" ,
density : 1325 ,
isFood : true ,
desc : "chocolate chips yum" ,
cooldown : 2
}
elements . chocolate . breakInto = "chocolate_chips"
//elements.fruit_milk.stateLowColorMultiplier = 0.9
elements . passion _fruit _vine = {
color : "#00df00" ,
behavior : [
"ST:wood|ST:wood|ST:wood" ,
"ST:wood AND CR:passion_fruit%0.02|XX|ST:wood AND CR:passion_fruit%0.02" ,
"ST:wood|ST:wood AND M1|ST:wood" ,
] ,
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" ,
state : "solid" ,
density : 1050 ,
breakInto : "dead_plant"
}
elements . passion _fruit _seed = {
color : "#6b4f36" ,
tick : function ( pixel ) {
if ( Math . random ( ) < 0.1 && 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" ) ;
}
}
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
if ( ! isEmpty ( pixel . x + 1 , pixel . y - 1 ) || ! isEmpty ( pixel . x - 1 , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y - 1 ) ;
createPixel ( "passion_fruit_vine" , pixel . x , pixel . y + 1 ) ;
}
}
if ( ! isEmpty ( pixel . x + 2 , pixel . y - 1 ) && isEmpty ( pixel . x + 1 , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x + 1 , pixel . y - 1 ) ;
createPixel ( "passion_fruit_vine" , pixel . x - 1 , pixel . y + 1 ) ;
}
if ( ! isEmpty ( pixel . x - 2 , pixel . y - 1 ) && isEmpty ( pixel . x - 1 , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x - 1 , pixel . y - 1 ) ;
createPixel ( "passion_fruit_vine" , pixel . x + 1 , pixel . y + 1 ) ;
}
if ( ! isEmpty ( pixel . x , pixel . y - 1 ) && ! isEmpty ( pixel . x + 1 , pixel . y ) && isEmpty ( pixel . x + 1 , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x + 1 , pixel . y - 1 ) ;
createPixel ( "passion_fruit_vine" , pixel . x - 1 , pixel . y + 1 ) ;
}
if ( ! isEmpty ( pixel . x , pixel . y - 1 ) && ! isEmpty ( pixel . x - 1 , pixel . y ) && isEmpty ( pixel . x - 1 , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x - 1 , pixel . y - 1 ) ;
createPixel ( "passion_fruit_vine" , pixel . x + 1 , pixel . y + 1 ) ;
}
/ * i f ( p i x e l M a p [ p i x e l . x + 1 ] [ p i x e l . y - 1 ] . e l e m e n t ! = = " w o o d " & & p i x e l M a p [ p i x e l . x - 1 ] [ p i x e l . y - 1 ] . e l e m e n t ! = = " w o o d " ) {
movePixel ( pixel , pixel . x , pixel . y - 1 ) ;
createPixel ( "passion_fruit_vine" , pixel . x , pixel . y + 1 ) ;
if ( isEmpty ( pixel . x + 1 , pixel . y - 1 ) && pixelMap [ pixel . x + 2 ] [ pixel . y - 1 ] . element === "wood" ) {
movePixel ( pixel , pixel . x + 1 , pixel . y - 1 ) ;
createPixel ( "passion_fruit_vine" , pixel . x - 1 , pixel . y + 1 ) ;
}
if ( isEmpty ( pixel . x - 1 , pixel . y - 1 ) && pixelMap [ pixel . x - 2 ] [ pixel . y - 1 ] . element === "wood" ) {
movePixel ( pixel , pixel . x - 1 , pixel . y - 1 ) ;
createPixel ( "passion_fruit_vine" , pixel . x + 1 , pixel . y + 1 ) ;
}
} * /
}
else if ( pixel . age > 400 && Math . random ( ) < 0.1 ) {
changePixel ( pixel , "passion_fruit_vine" ) ;
}
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 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"ST:wood,passion_fruit_vine|ST:wood,passion_fruit_vine|ST:wood,passion_fruit_vine" ,
"ST:wood,passion_fruit_vine|XX|ST:wood,passion_fruit_vine" ,
"ST:wood,passion_fruit_vine|M1|ST:wood,passion_fruit_vine" ,
] ,
} ;
elements . passion _fruit = {
color : "#78236f" ,
behavior : [
"ST:passion_fruit_vine%95|ST:passion_fruit_vine%95|ST:passion_fruit_vine%95" ,
"ST:passion_fruit_vine%95|XX|ST:passion_fruit_vine%95" ,
"ST:passion_fruit_vine%95|M1|ST:passion_fruit_vine%95" ,
] ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : [ "passion_fruit_juice" , "passion_fruit_juice" , /*"passion_fruit_seed"*/ ] ,
state : "solid" ,
density : 1050 ,
cutInto : "passion_fruit_flesh" ,
temp : 20 ,
freezeDryInto : "freeze_dried_fruits" ,
freezeDryIntoColor : "#412e6b"
}
elements . passion _fruit _flesh = {
color : "#ffe205" ,
behavior : behaviors . LIQUID ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
burn : 65 ,
burnTime : 60 ,
viscosity : 999 ,
burnInto : "dead_plant" ,
breakInto : [ "passion_fruit_juice" , "passion_fruit_juice" , /*"passion_fruit_seed"*/ ] ,
state : "solid" ,
density : 1050 ,
hidden : true ,
temp : 20
}
elements . passion _fruit _juice = {
color : "#d6bf2b" ,
behavior : behaviors . LIQUID ,
category : "liquids" ,
tempHigh : 100 ,
stateHigh : [ "steam" , "sugar" ] ,
burn : 70 ,
burnTime : 300 ,
burnInto : [ "steam" , "smoke" ] ,
state : "liquid" ,
density : 825 ,
hidden : true ,
temp : 20 ,
onMix : function ( pixel ) {
if ( shiftDown ) {
if ( Math . random ( ) < 0.2 ) {
changePixel ( pixel , "juice" )
pixel . color = pixelColorPick ( pixel , "#d6bf2b" )
}
}
} ,
tempLow : 0
} ;
eLists . JUICEMIXABLE . push ( "passion_fruit_juice" ) ;
elements . mango _wood = {
color : "#966435" ,
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" ] ,
hidden : true
}
elements . mango _branch = {
color : "#966435" ,
behavior : [
"CR:mango_leaves,mango_branch%2|CR:mango_leaves,mango_branch%2|CR:mango_leaves,mango_branch%2" ,
"XX|XX|XX" ,
"XX|XX|XX" ,
] ,
tempHigh : 100 ,
stateHigh : "mango_wood" ,
tempLow : - 30 ,
stateLow : "mango_wood" ,
category : "life" ,
burn : 40 ,
burnTime : 50 ,
burnInto : [ "sap" , "ember" , "charcoal" ] ,
hidden : true ,
state : "solid" ,
density : 1500 ,
hardness : 0.15 ,
breakInto : [ "sap" , "sawdust" ] ,
}
elements . mango _leaves = {
color : [ "#61b535" , "#5fba2f" ] ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|CR:mango%0.1|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 ,
hidden : true
}
elements . mango = {
color : [ "#cc5b3f" , "#cc8a3f" , "#ccb93f" , "#abcc3f" ] ,
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 }
} ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "mango_juice" ,
cutInto : "cut_mango" ,
state : "solid" ,
density : 1050 ,
freezeDryInto : "freeze_dried_fruits" ,
freezeDryIntoColor : "#ccb50a" ,
}
elements . cut _mango = {
color : "#ebcb2d" ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
tempHigh : 100 ,
stateHigh : [ "sugar" , "steam" ] ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "mango_juice" ,
state : "solid" ,
density : 1050 ,
hidden : true ,
freezeDryInto : "freeze_dried_fruits" ,
freezeDryIntoColor : "#ccb50a" ,
}
elements . mango _seed = {
color : "#9e8951" ,
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" ) ;
}
}
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y - 1 ) ;
createPixel ( Math . random ( ) > 0.5 ? "mango_wood" : "mango_branch" , pixel . x , pixel . y + 1 ) ;
}
}
else if ( pixel . age > 1000 ) {
changePixel ( pixel , "mango_wood" ) ;
}
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 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"XX|XX|XX" ,
"XX|FX%10|XX" ,
"XX|M1|XX" ,
] ,
} ;
elements . mango _juice = {
color : "#f0c348" ,
onMix : function ( pixel ) {
if ( shiftDown ) {
if ( Math . random ( ) < 0.2 ) {
changePixel ( pixel , "juice" )
pixel . color = pixelColorPick ( pixel , "#f0c348" )
}
}
} ,
reactions : {
"milk" : { elem1 : "fruit_milk" , elem2 : "fruit_milk" , chance : 0.35 , color1 : "#fada70" , color2 : "#fada70" } ,
"coconut_milk" : { elem1 : "fruit_milk" , elem2 : "fruit_milk" , chance : 0.35 , color1 : "#fada70" , color2 : "#fada70" } ,
"nut_milk" : { elem1 : "fruit_milk" , elem2 : "fruit_milk" , chance : 0.35 , color1 : "#fada70" , color2 : "#fada70" }
} ,
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
} ;
eLists . JUICEMIXABLE . push ( "mango_juice" ) ;
elements . pineapple _leaves = {
color : "#3aab11" ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|XX|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 ,
hidden : true
}
elements . pineapple = {
color : "#e8bc38" ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "pineapple_juice" ,
state : "solid" ,
density : 1050 ,
temp : 20 ,
freezeDryInto : "freeze_dried_fruits" ,
freezeDryIntoColor : "#ccb90a" ,
}
elements . pineapple _seed = {
color : "#695531" ,
tick : function ( pixel ) {
if ( isEmpty ( pixel . x , pixel . y + 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y + 1 ) ;
}
else {
if ( pixel . temp < 100 && pixel . temp > 20 ) {
if ( Math . random ( ) < 0.02 && pixel . age > 50 ) {
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" ) ;
if ( isEmpty ( pixel . x , pixel . y - 1 ) && pixel . leafgrown == false ) {
movePixel ( pixel , pixel . x , pixel . y - 1 ) ;
createPixel ( "pineapple_leaves" , pixel . x , pixel . y + 1 ) ;
if ( isEmpty ( pixel . x + 1 , pixel . y ) && isEmpty ( pixel . x - 1 , pixel . y ) ) {
createPixel ( "pineapple_leaves" , pixel . x + 1 , pixel . y ) ;
createPixel ( "pineapple_leaves" , pixel . x - 1 , pixel . y ) ;
if ( isEmpty ( pixel . x - 2 , pixel . y - 1 ) && isEmpty ( pixel . x + 2 , pixel . y - 1 ) ) {
createPixel ( "pineapple_leaves" , pixel . x + 2 , pixel . y - 1 ) ;
createPixel ( "pineapple_leaves" , pixel . x - 2 , pixel . y - 1 ) ;
if ( isEmpty ( pixel . x , pixel . y - 1 ) && isEmpty ( pixel . x + 1 , pixel . y - 1 ) && isEmpty ( pixel . x - 1 , pixel . y - 1 ) ) {
createPixel ( "pineapple" , pixel . x , pixel . y - 1 ) ;
createPixel ( "pineapple" , pixel . x + 1 , pixel . y - 1 ) ;
createPixel ( "pineapple" , pixel . x - 1 , pixel . y - 1 ) ;
if ( isEmpty ( pixel . x , pixel . y - 2 ) && isEmpty ( pixel . x + 1 , pixel . y - 2 ) && isEmpty ( pixel . x - 1 , pixel . y - 2 ) ) {
createPixel ( "pineapple" , pixel . x , pixel . y - 2 ) ;
createPixel ( "pineapple" , pixel . x + 1 , pixel . y - 2 ) ;
createPixel ( "pineapple" , pixel . x - 1 , pixel . y - 2 ) ;
if ( isEmpty ( pixel . x , pixel . y - 3 ) && isEmpty ( pixel . x + 1 , pixel . y - 3 ) && isEmpty ( pixel . x - 1 , pixel . y - 3 ) ) {
createPixel ( "pineapple" , pixel . x , pixel . y - 3 ) ;
createPixel ( "pineapple" , pixel . x + 1 , pixel . y - 3 ) ;
createPixel ( "pineapple" , pixel . x - 1 , pixel . y - 3 ) ;
if ( isEmpty ( pixel . x , pixel . y - 4 ) && isEmpty ( pixel . x + 1 , pixel . y - 4 ) && isEmpty ( pixel . x - 1 , pixel . y - 4 ) ) {
createPixel ( "pineapple" , pixel . x , pixel . y - 4 ) ;
createPixel ( "pineapple" , pixel . x + 1 , pixel . y - 4 ) ;
createPixel ( "pineapple" , pixel . x - 1 , pixel . y - 4 ) ;
if ( isEmpty ( pixel . x , pixel . y - 5 ) && isEmpty ( pixel . x + 1 , pixel . y - 6 ) && isEmpty ( pixel . x - 1 , pixel . y - 6 ) ) {
createPixel ( "pineapple_leaves" , pixel . x , pixel . y - 5 ) ;
createPixel ( "pineapple_leaves" , pixel . x + 1 , pixel . y - 6 ) ;
createPixel ( "pineapple_leaves" , pixel . x - 1 , pixel . y - 6 ) ;
pixel . leafgrown = true
}
}
}
}
}
}
}
}
}
}
}
else if ( pixel . age > 500 && pixel . leafgrown == true && Math . random ( ) < 0.1 ) {
changePixel ( pixel , "pineapple_leaves" ) ;
}
}
pixel . age ++ ;
}
doDefaults ( pixel ) ;
} ,
properties : {
"age" : 0 ,
"leafgrown" : false ,
} ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
tempLow : - 2 ,
stateLow : "frozen_plant" ,
burn : 65 ,
burnTime : 15 ,
category : "life" ,
state : "solid" ,
density : 1500 ,
cooldown : defaultCooldown ,
seed : true ,
temp : 25 ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|M1|XX" ,
] ,
} ;
elements . pineapple _juice = {
color : "#d9ba32" ,
onMix : function ( pixel ) {
if ( shiftDown ) {
if ( Math . random ( ) < 0.2 ) {
changePixel ( pixel , "juice" )
pixel . color = pixelColorPick ( pixel , "#d9ba32" )
}
}
} ,
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
} ;
eLists . JUICEMIXABLE . push ( "pineapple_juice" ) ;
elements . lime = {
color : [ "#549c2d" , "#4d9c22" ] ,
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 } ,
} ,
category : "food" ,
freezeDryInto : "freeze_dried_fruits" ,
freezeDryIntoColor : "#5eab24" ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "lime_juice" ,
state : "solid" ,
density : 1050 ,
isFood : true ,
cutInto : [ "lime_zest" , "lime_slice" , "lime_slice" , "lime_slice" , "lime_slice" ] ,
}
elements . lime _juice = {
color : "#85d14b" ,
onMix : function ( pixel ) {
if ( shiftDown ) {
if ( Math . random ( ) < 0.2 ) {
changePixel ( pixel , "juice" )
pixel . color = pixelColorPick ( pixel , "#85d14b" )
}
}
} ,
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 ,
hidden : true ,
tempLow : 0 ,
} ;
eLists . JUICEMIXABLE . push ( "lime_juice" ) ;
elements . lime _zest = {
color : "#4f9e13" ,
behavior : behaviors . POWDER ,
category : "food" ,
tempHigh : 100 ,
stateHigh : [ "sugar" , "steam" ] ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
state : "solid" ,
density : 1050 ,
hidden : true ,
}
elements . lime _slice = {
color : "#8acc33" ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
tempHigh : 100 ,
stateHigh : [ "sugar" , "steam" ] ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "lime_juice" ,
state : "solid" ,
density : 1050 ,
hidden : true ,
}
elements . snail . reactions . nut _oil = { elem1 : "escargot" , chance : 30 , tempMin : 50 }
elements . escargot = {
color : "#ab924d" ,
behavior : behaviors . STURDYPOWDER2 ,
tempHigh : 120 ,
stateHigh : "steam" ,
breakInto : "quicklime" ,
category : "food" ,
state : "solid" ,
density : 1500 ,
conduct : 0.16
}
elements . broccoli = {
color : [ "#49a82f" , "#429929" ] ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"ST:broccoli_stem AND M2|ST:broccoli_stem AND M1|ST:broccoli_stem AND 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 }
} ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "dead_plant" ,
state : "solid" ,
isFood : true ,
density : 1050 ,
cutInto : "cut_broccoli" ,
}
elements . broccoli _stem = {
color : [ "#51c431" , "#45ba25" ] ,
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 }
} ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
cutInto : "cut_broccoli" ,
state : "solid" ,
density : 1050 ,
hidden : true ,
}
elements . cut _broccoli = {
color : "#75d65a" ,
behavior : behaviors . POWDER ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "steam" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
state : "solid" ,
density : 1050 ,
hidden : true ,
}
elements . broccoli _seed = {
color : "#9e8951" ,
tick : function ( pixel ) {
if ( isEmpty ( pixel . x , pixel . y + 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y + 1 ) ;
}
else {
if ( Math . random ( ) < 0.2 && 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" ) ;
}
}
if ( isEmpty ( pixel . x , pixel . y - 1 ) && isEmpty ( pixel . x + 1 , pixel . y - 1 ) && isEmpty ( pixel . x - 1 , pixel . y - 1 ) ) {
changePixel ( pixel , "broccoli_stem" ) ;
createPixel ( "broccoli" , pixel . x , pixel . y - 1 ) ;
createPixel ( "broccoli" , pixel . x + 1 , pixel . y - 1 ) ;
createPixel ( "broccoli" , pixel . x - 1 , pixel . y - 1 ) ;
}
}
else if ( pixel . age > 1000 ) {
changePixel ( pixel , "broccoli" ) ;
}
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 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|M1|XX" ,
] ,
} ;
elements . freeze _dried _fruits = {
color : "#ab1f31" ,
behavior : behaviors . POWDER ,
tempHigh : 550 ,
stateHigh : "ash" ,
category : "food" ,
burn : 15 ,
burnTime : 200 ,
burnInto : [ "smoke" , "smoke" , "smoke" , "ash" ] ,
state : "solid" ,
density : 233.96 ,
isFood : true ,
}
elements . grape . freezeDryInto = "freeze_dried_fruits"
elements . grape . freezeDryIntoColor = "#5d156b"
elements . soapy _water = {
color : "#72b8f2" ,
behavior : [
"XX|CR:bubble%0.25|XX" ,
"M2%50|XX|M2%50" ,
"M2%50|M1|M2%50" ,
] ,
tempHigh : 100 ,
stateHigh : "steam" ,
tempLow : 0 ,
category : "liquids" ,
heatCapacity : 4.184 ,
reactions : {
"dirt" : { elem1 : null , elem2 : "mud" } ,
"sand" : { elem1 : null , elem2 : "wet_sand" } ,
"clay_soil" : { elem1 : null , elem2 : "clay" } ,
"salt" : { elem1 : "salt_water" , elem2 : null , temp1 : - 20 } ,
"dust" : { elem2 : null , elem2 : null } ,
"plague" : { elem2 : null , elem2 : null } ,
"rust" : { elem1 : "iron" , chance : 0.005 } ,
"fallout" : { elem2 : null , chance : 0.25 } ,
"radiation" : { elem2 : null , chance : 0.25 } ,
"uranium" : { elem2 : null , chance : 0.25 } ,
"rotten_meat" : { elem2 : "meat" , chance : 0.25 } ,
"rotten_cheese" : { elem2 : "cheese" , chance : 0.25 } ,
"cancer" : { elem2 : null , chance : 0.25 } ,
"oil" : { elem2 : null , chance : 0.005 } ,
"dioxin" : { elem1 : "dirty_water" , chance : 0.1 } ,
"quicklime" : { elem1 : "slaked_lime" , elem2 : "slaked_lime" , temp2 : 100 , temp1 : 100 , chance : 0.05 } ,
"rock" : { elem2 : "wet_sand" , chance : 0.00035 } ,
"limestone" : { elem2 : "wet_sand" , chance : 0.00035 } ,
"tuff" : { elem2 : "wet_sand" , color2 : "#7a6b5c" , chance : 0.00035 } ,
"mudstone" : { elem2 : "mud" , chance : 0.00035 } ,
"fly" : { elem2 : "dead_bug" , chance : 0.1 , oneway : true } ,
"firefly" : { elem2 : "dead_bug" , chance : 0.1 , oneway : true } ,
"bee" : { elem2 : "dead_bug" , chance : 0.05 , oneway : true } ,
"stink_bug" : { elem2 : "dead_bug" , chance : 0.1 , oneway : true } ,
"cured_meat" : { elem2 : "meat" } ,
} ,
state : "liquid" ,
density : 997 ,
conduct : 0.02 ,
stain : - 1 ,
extinguish : true
}
elements . soap . behavior = behaviors . STURDYPOWDER
elements . soap . state = "solid"
elements . soap . category = "powders"
elements . soap . reactions . water = { elem2 : "soapy_water" , elem1 : null , chance : 10 }
/ *
if ( [ pixel . element ] . stain < 0 && [ pixel . element ] != "soap" && [ pixel . element ] != "soapy_water" ) {
[ pixel . element ] . stain = [ pixel . element ] . stain / 10
}
* /
elements . onion = {
color : "#731066" ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "steam" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "steam" ,
state : "solid" ,
density : 1050 ,
cutInto : "cut_onion" ,
breakInto : "onion_powder" ,
cutIntoEmit : "stench" ,
}
elements . cut _onion = {
color : "#dcc5ed" ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "steam" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "steam" ,
state : "solid" ,
density : 1050 ,
breakInto : "onion_powder" ,
hidden : true ,
reactions : { "nut_oil" : { elem1 : "fried_onion" , tempMin : 70 , chance : 10 } }
}
elements . fried _onion = {
color : "#cf9344" ,
behavior : behaviors . POWDER ,
category : "food" ,
tempHigh : 500 ,
stateHigh : "ash" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "ash" ,
state : "solid" ,
density : 1050 ,
hidden : true ,
}
elements . onion _seed = {
color : "#1a0e02" ,
tick : function ( pixel ) {
if ( isEmpty ( pixel . x , pixel . y + 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y + 1 ) ;
}
else {
if ( Math . random ( ) < 0.2 && 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" ) ;
}
}
if ( isEmpty ( pixel . x , pixel . y - 2 ) && isEmpty ( pixel . x , pixel . y - 1 ) && isEmpty ( pixel . x + 1 , pixel . y - 1 ) && isEmpty ( pixel . x - 1 , pixel . y - 1 ) && isEmpty ( pixel . x + 1 , pixel . y ) && isEmpty ( pixel . x - 1 , pixel . y ) ) {
createPixel ( "onion" , pixel . x , pixel . y - 1 ) ;
createPixel ( "onion" , pixel . x + 1 , pixel . y - 1 ) ;
createPixel ( "onion" , pixel . x - 1 , pixel . y - 1 ) ;
createPixel ( "onion" , pixel . x , pixel . y - 2 ) ;
createPixel ( "onion" , pixel . x + 1 , pixel . y ) ;
createPixel ( "onion" , pixel . x - 1 , pixel . y ) ;
if ( isEmpty ( pixel . x + 1 , pixel . y - 3 ) && isEmpty ( pixel . x - 1 , pixel . y - 3 ) ) {
2024-04-26 06:18:12 -04:00
createPixel ( "spring_onion_leaves" , pixel . x + 1 , pixel . y - 3 ) ;
createPixel ( "spring_onion_leaves" , pixel . x - 1 , pixel . y - 3 ) ;
2024-04-12 09:36:56 -04:00
changePixel ( pixel , "onion" ) ;
}
}
}
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 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|M1|XX" ,
] ,
}
elements . onion _powder = {
color : "#e6d8b8" ,
reactions : {
"stench" : { elem2 : null , chance : 0.25 } ,
"steam" : { elem2 : "fragrance" , chance : 0.1 } ,
"flea" : { elem2 : null , chance : 0.01 } ,
"termite" : { elem2 : null , chance : 0.01 } ,
"fly" : { elem2 : null , chance : 0.01 } ,
"ant" : { elem2 : null , chance : 0.01 } ,
"stink_bug" : { elem2 : null , chance : 0.01 } ,
} ,
behavior : behaviors . POWDER ,
tempHigh : 300 ,
stateHigh : [ "fire" , "smoke" , "smoke" , "smoke" , "ash" ] ,
burn : 10 ,
burnTime : 300 ,
burnInto : [ "fire" , "smoke" , "smoke" , "smoke" , "smoke" , "smoke" , "smoke" , "fragrance" ] ,
category : "food" ,
state : "solid" ,
density : 1400 ,
isFood : true ,
}
elements . unhusked _rice = {
color : [ "#c99a42" , "#b08638" , "#deb15d" ] ,
behavior : [
"XX|XX|XX" ,
"ST:rice_panicle|XX|ST:rice_panicle" ,
"ST:rice_plant AND M2|ST:rice_panicle AND M1|ST:rice_plant AND 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 }
} ,
category : "food" ,
tempHigh : 65 ,
stateHigh : "cooked_rice" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "flour" ,
breakIntoColor : "#f7f1df" ,
state : "solid" ,
isFood : true ,
density : 1050 ,
cutInto : "rice" ,
}
elements . rice = {
color : "#eeeed2" ,
behavior : behaviors . POWDER ,
category : "food" ,
tempHigh : 65 ,
stateHigh : "cooked_rice" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "rice_flour" ,
state : "solid" ,
isFood : true ,
density : 1050 ,
reactions : {
"water" : { elem1 : "porridge" , elem2 : "porridge" , chance : 3 , tempMin : 70 } ,
"nut_oil" : { elem1 : "fried_rice" , elem2 : null , chance : 3 , tempMin : 60 }
}
}
elements . cooked _rice = {
color : "#eddfb9" ,
behavior : behaviors . POWDER ,
category : "food" ,
tempHigh : 200 ,
stateHigh : "burnt_rice" ,
burn : 65 ,
breakInto : "rice_flour" ,
state : "solid" ,
isFood : true ,
density : 1050 , reactions : {
"water" : { elem1 : "porridge" , elem2 : "porridge" , chance : 3 , tempMin : 70 } ,
"nut_oil" : { elem1 : "fried_rice" , elem2 : null , chance : 3 , tempMin : 60 }
} ,
hidden : true
}
elements . porridge = {
color : "#f2ecdc" ,
behavior : behaviors . LIQUID ,
category : "food" ,
tempHigh : 200 ,
stateHigh : "steam" ,
viscosity : 999 ,
burn : 65 ,
state : "solid" ,
isFood : true ,
density : 1050 ,
}
elements . fried _rice = {
color : "#e8dda0" ,
behavior : behaviors . POWDER ,
category : "food" ,
tempHigh : 200 ,
stateHigh : "burnt_rice" ,
burn : 65 ,
burnTime : 60 ,
state : "solid" ,
isFood : true ,
density : 1050 , reactions : {
"salt" : { color1 : "#ede5b9" , elem2 : null , chance : 3 } ,
"monosodium_glutamate" : { color1 : "#ede5b9" , elem2 : null , chance : 3 }
} ,
hidden : true
}
elements . burnt _rice = {
color : "#262217" ,
behavior : behaviors . POWDER ,
category : "food" ,
tempHigh : 500 ,
stateHigh : "ash" ,
burn : 65 ,
burnTime : 60 ,
state : "solid" ,
isFood : true ,
density : 1050 ,
hidden : true
}
elements . rice _plant = {
color : "#37a825" ,
behavior : behaviors . WALL ,
category : "life" ,
tempHigh : 100 ,
stateHigh : "steam" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
state : "solid" ,
density : 1050 ,
hidden : true ,
}
elements . rice _seed = {
color : "#997a23" ,
tick : function ( pixel ) {
if ( isEmpty ( pixel . x , pixel . y + 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y + 1 ) ;
}
else {
if ( Math . random ( ) < 0.2 && 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" ) ;
}
}
if ( ! isEmpty ( pixel . x - 1 , pixel . y ) && ! isEmpty ( pixel . x + 1 , pixel . y ) ) {
if ( pixelMap [ pixel . x + 1 ] [ pixel . y ] . element === "water" && pixelMap [ pixel . x - 1 ] [ pixel . y ] . element === "water" ) {
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y - 1 )
createPixel ( "rice_plant" , pixel . x , pixel . y + 1 )
pixel . notinwater = true
}
else if ( ! isEmpty ( pixel . x , pixel . y - 1 ) ) {
if ( pixelMap [ pixel . x ] [ pixel . y - 1 ] . element === "water" ) {
deletePixel ( pixel . x , pixel . y - 1 )
movePixel ( pixel , pixel . x , pixel . y - 1 )
createPixel ( "rice_plant" , pixel . x , pixel . y + 1 )
}
}
}
}
if ( Math . random ( ) < 0.2 && pixel . age > 50 && pixel . temp < 100 && pixel . notinwater == true ) {
if ( isEmpty ( pixel . x + 1 , pixel . y - 1 ) && isEmpty ( pixel . x - 1 , pixel . y - 1 ) && isEmpty ( pixel . x + 2 , pixel . y - 2 ) && isEmpty ( pixel . x - 2 , pixel . y - 2 ) ) {
createPixel ( "rice_plant" , pixel . x + 1 , pixel . y - 1 ) ;
createPixel ( "rice_plant" , pixel . x - 1 , pixel . y - 1 ) ;
createPixel ( "rice_plant" , pixel . x + 2 , pixel . y - 2 ) ;
createPixel ( "rice_plant" , pixel . x - 2 , pixel . y - 2 ) ;
pixel . leafgrown = true
}
}
if ( Math . random ( ) < 0.2 && pixel . age > 50 && pixel . temp < 100 && pixel . leafgrown == true ) {
if ( isEmpty ( pixel . x , pixel . y - 1 ) && isEmpty ( pixel . x , pixel . y - 2 ) && isEmpty ( pixel . x , pixel . y - 3 ) && isEmpty ( pixel . x , pixel . y - 4 ) ) {
movePixel ( pixel , pixel . x , pixel . y - 4 )
createPixel ( "rice_plant" , pixel . x , pixel . y + 1 ) ;
createPixel ( "rice_plant" , pixel . x , pixel . y + 2 ) ;
createPixel ( "rice_plant" , pixel . x , pixel . y + 3 ) ;
createPixel ( "rice_plant" , pixel . x , pixel . y + 4 ) ;
changePixel ( pixel , "rice_panicle" )
pixel . grower = true
}
}
}
else if ( pixel . age > 1000 ) {
changePixel ( pixel , "unhusked_rice" ) ;
}
pixel . age ++ ;
}
doDefaults ( pixel ) ;
} ,
properties : {
"age" : 0 ,
"leafgrown" : false ,
"notinwater" : false ,
} ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
tempLow : - 2 ,
stateLow : "frozen_plant" ,
burn : 65 ,
burnTime : 15 ,
category : "life" ,
state : "solid" ,
density : 2500 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|M1|XX" ,
] ,
} ;
elements . rice _panicle = {
color : "#37a825" ,
behavior : behaviors . WALL ,
category : "life" ,
tempHigh : 100 ,
stateHigh : "steam" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
tick : function ( pixel ) {
if ( Math . random ( ) < 0.1 ) {
if ( isEmpty ( pixel . x + 1 , pixel . y ) && isEmpty ( pixel . x - 1 , pixel . y ) ) {
createPixel ( "unhusked_rice" , pixel . x + 1 , pixel . y ) ;
createPixel ( "unhusked_rice" , pixel . x - 1 , pixel . y ) ;
}
if ( isEmpty ( pixel . x + 1 , pixel . y + 1 ) && isEmpty ( pixel . x - 1 , pixel . y + 1 ) ) {
createPixel ( "unhusked_rice" , pixel . x + 1 , pixel . y + 1 ) ;
createPixel ( "unhusked_rice" , pixel . x - 1 , pixel . y + 1 ) ;
}
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
createPixel ( "unhusked_rice" , pixel . x , pixel . y - 1 ) ;
}
}
} ,
state : "solid" ,
density : 1050 ,
hidden : true ,
}
elements . rice _flour = {
color : "#f7f1df" ,
behavior : behaviors . POWDER ,
reactions : {
"water" : { elem1 : "mochi_dough" , elem2 : null } ,
"salt_water" : { elem1 : "mochi_dough" , elem2 : null } ,
"sugar_water" : { elem1 : "mochi_dough" , elem2 : null } ,
"seltzer" : { elem1 : "mochi_dough" , elem2 : null } ,
"yolk" : { elem1 : "batter" , elem2 : null } ,
"yogurt" : { elem1 : "batter" , elem2 : null } ,
"milk" : { elem1 : "dough" , elem2 : null } ,
"cream" : { elem1 : "dough" , elem2 : null } ,
} ,
category : "food" ,
tempHigh : 400 ,
stateHigh : "fire" ,
burn : 40 ,
burnTime : 25 ,
state : "solid" ,
density : 600 ,
isFood : true
} ,
elements . mochi _dough = {
color : "#ebddae" ,
behavior : behaviors . STURDYPOWDER ,
onMix : function ( dough , ingredient ) {
if ( elements [ ingredient . element ] . isFood && elements [ ingredient . element ] . id !== elements . dough . id && elements [ ingredient . element ] . id !== elements . flour . id && elements [ ingredient . element ] . id !== elements . batter . id && elements [ ingredient . element ] . id !== elements . bread . id ) {
var rgb1 = dough . color . match ( /\d+/g ) ;
var rgb2 = ingredient . color . match ( /\d+/g ) ;
// average the colors
var rgb = [
Math . round ( ( parseInt ( rgb1 [ 0 ] ) * 10 + parseInt ( rgb2 [ 0 ] ) ) / 11 ) ,
Math . round ( ( parseInt ( rgb1 [ 1 ] ) * 10 + parseInt ( rgb2 [ 1 ] ) ) / 11 ) ,
Math . round ( ( parseInt ( rgb1 [ 2 ] ) * 10 + parseInt ( rgb2 [ 2 ] ) ) / 11 )
] ;
// convert rgb to hex
var hex = RGBToHex ( rgb ) ;
dough . color = pixelColorPick ( dough , hex ) ;
}
} ,
category : "food" ,
tempHigh : 94 ,
stateHigh : "mochi" ,
//stateHighColorMultiplier: 0.9,
burn : 40 ,
burnTime : 25 ,
burnInto : "ash" ,
state : "solid" ,
density : 526.9 ,
isFood : true ,
hidden : true
} ,
elements . mochi = {
color : "#f2e2a7" ,
behavior : behaviors . STURDYPOWDER ,
tempHigh : 400 ,
stateHigh : [ "ash" , "steam" ] ,
category : "food" ,
burn : 30 ,
burnTime : 200 ,
burnInto : [ "smoke" , "smoke" , "smoke" , "ash" ] ,
state : "solid" ,
density : 233.96 ,
isFood : true
} ,
elements . monosodium _glutamate = {
color : "#eeeeee" ,
behavior : behaviors . POWDER ,
reactions : {
"ice" : { elem1 : null , elem2 : "salt_water" , chance : 0.1 } ,
"rime" : { elem1 : null , elem2 : "salt_water" , chance : 0.075 } ,
"snow" : { elem1 : null , elem2 : "salt_water" , chance : 0.25 } ,
"packed_snow" : { elem1 : null , elem2 : "salt_water" , chance : 0.05 } ,
"packed_ice" : { elem1 : null , elem2 : "salt_water" , chance : 0.01 } ,
"water" : { elem2 : "salt_water" , elem1 : null , temp2 : - 20 } ,
} ,
category : "food" ,
tempHigh : 801 ,
state : "solid" ,
density : 2160 ,
alias : "msg" ,
}
elements . seaweed _spore = {
color : "#291f13" ,
tick : function ( pixel ) {
pixel . age ++ ;
if ( isEmpty ( pixel . x , pixel . y + 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y + 1 ) ;
}
else if ( ! isEmpty ( pixel . x , pixel . y + 1 ) ) {
if ( ! outOfBounds ( pixel . x , pixel . y + 1 ) ) {
if ( pixelMap [ pixel . x ] [ pixel . y + 1 ] . element === "water" ) {
swapPixels ( pixel , pixelMap [ pixel . x ] [ pixel . y + 1 ] )
}
}
}
if ( ! outOfBounds ( pixel . x , pixel . y + 1 ) ) {
if ( ! isEmpty ( 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 . rooted = true
}
}
}
if ( Math . random ( ) < 0.1 && pixel . age > 50 && pixel . temp < 100 && pixel . rooted == true ) {
if ( ! isEmpty ( pixel . x , pixel . y - 1 ) ) {
if ( pixelMap [ pixel . x ] [ pixel . y - 1 ] . element === "water" ) {
//swapPixels(pixel,pixelMap[pixel.x][pixel.y-1])
//changePixel("seaweed_stem",pixel.x,pixel.y+1)
deletePixel ( pixel . x , pixel . y - 1 )
movePixel ( pixel , pixel . x , pixel . y - 1 )
createPixel ( "seaweed_stem" , pixel . x , pixel . y + 1 )
if ( ! isEmpty ( pixel . x - 1 , pixel . y + 1 ) && ! isEmpty ( pixel . x - 1 , pixel . y ) && ! isEmpty ( pixel . x + 1 , pixel . y ) && Math . random ( ) < 0.5 ) {
if ( pixelMap [ pixel . x - 1 ] [ pixel . y ] . element === "water" && pixelMap [ pixel . x + 1 ] [ pixel . y ] . element === "water" && pixelMap [ pixel . x - 1 ] [ pixel . y + 1 ] . element != "seaweed" ) {
deletePixel ( pixel . x - 1 , pixel . y )
createPixel ( "seaweed" , pixel . x - 1 , pixel . y )
deletePixel ( pixel . x + 1 , pixel . y )
createPixel ( "seaweed" , pixel . x + 1 , pixel . y )
}
}
}
}
if ( pixel . age > 500 || isEmpty ( pixel . x , pixel . y - 1 ) ) {
changePixel ( pixel , "seaweed" ) ;
}
}
doDefaults ( pixel ) ;
} ,
properties : {
"age" : 0 ,
"rooted" : false ,
} ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
tempLow : - 2 ,
stateLow : "frozen_plant" ,
burn : 65 ,
burnTime : 15 ,
category : "life" ,
state : "solid" ,
density : 2500 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|M1|XX" ,
] ,
} ;
elements . seaweed _stem = {
color : "#35702c" ,
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 } ,
"alcohol" : { elem1 : "agar" , elem2 : null , chance : 0.035 } ,
} ,
category : "life" ,
tempHigh : 100 ,
stateHigh : "dried_seaweed" ,
tempLow : - 1.66 ,
stateLow : "frozen_plant" ,
burn : 15 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
state : "solid" ,
density : 1050 ,
}
elements . seaweed = {
color : [ "#2e8021" , "#3e9031" , "#4ea041" ] ,
behavior : [
"XX|XX|XX" ,
"ST:seaweed_stem|XX|ST:seaweed_stem" ,
"XX|M1|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 } ,
"mercury" : { elem1 : "dead_plant" , elem2 : null , chance : 0.01 } ,
"stench" : { elem2 : null , chance : 0.25 } ,
"alcohol" : { elem1 : "agar" , elem2 : null , chance : 0.035 } ,
} ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "dried_seaweed" ,
tempLow : - 1.66 ,
stateLow : "frozen_plant" ,
burn : 15 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
state : "solid" ,
density : 997 ,
}
elements . dried _seaweed = {
color : [ "#142e13" , "#041e03" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
tempHigh : 400 ,
stateHigh : "fire" ,
burn : 15 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
state : "solid" ,
density : 1050 ,
}
elements . grape _vine = {
color : "#427a33" ,
behavior : [
"ST:wood|ST:wood|ST:wood" ,
"ST:wood AND CR:grape%0.02|XX|ST:wood AND CR:grape%0.02" ,
"ST:wood|ST:wood AND M1|ST:wood" ,
] ,
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" ,
state : "solid" ,
density : 1050 ,
breakInto : "dead_plant"
}
elements . grape _seed = {
color : "#7a6033" ,
tick : function ( pixel ) {
if ( Math . random ( ) < 0.1 && 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" ) ;
}
}
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
if ( ! isEmpty ( pixel . x + 1 , pixel . y - 1 ) || ! isEmpty ( pixel . x - 1 , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y - 1 ) ;
createPixel ( "grape_vine" , pixel . x , pixel . y + 1 ) ;
}
}
if ( ! isEmpty ( pixel . x + 2 , pixel . y - 1 ) && isEmpty ( pixel . x + 1 , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x + 1 , pixel . y - 1 ) ;
createPixel ( "grape_vine" , pixel . x - 1 , pixel . y + 1 ) ;
}
if ( ! isEmpty ( pixel . x - 2 , pixel . y - 1 ) && isEmpty ( pixel . x - 1 , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x - 1 , pixel . y - 1 ) ;
createPixel ( "grape_vine" , pixel . x + 1 , pixel . y + 1 ) ;
}
if ( ! isEmpty ( pixel . x , pixel . y - 1 ) && ! isEmpty ( pixel . x + 1 , pixel . y ) && isEmpty ( pixel . x + 1 , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x + 1 , pixel . y - 1 ) ;
createPixel ( "grape_vine" , pixel . x - 1 , pixel . y + 1 ) ;
}
if ( ! isEmpty ( pixel . x , pixel . y - 1 ) && ! isEmpty ( pixel . x - 1 , pixel . y ) && isEmpty ( pixel . x - 1 , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x - 1 , pixel . y - 1 ) ;
createPixel ( "grape_vine" , pixel . x + 1 , pixel . y + 1 ) ;
}
}
else if ( pixel . age > 400 && Math . random ( ) < 0.1 ) {
changePixel ( pixel , "grape_vine" ) ;
}
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 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"ST:wood,grape_vine|ST:wood,grape_vine|ST:wood,grape_vine" ,
"ST:wood,grape_vine|XX|ST:wood,grape_vine" ,
"ST:wood,grape_vine|M1|ST:wood,grape_vine" ,
] ,
} ;
elements . grape . behavior = [
"ST:grape_vine%95|ST:grape_vine%95|ST:grape_vine%95" ,
"ST:grape_vine%95|XX|ST:grape_vine%95" ,
"M2 AND ST:grape_vine%95|M1|M2 AND ST:grape_vine%95" ,
]
elements . tomato _vine = {
color : "#2e7d1d" ,
behavior : [
"ST:wood|ST:wood|ST:wood" ,
"ST:wood AND CR:tomato%0.02|XX|ST:wood AND CR:tomato%0.02" ,
"ST:wood|ST:wood AND M1|ST:wood" ,
] ,
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" ,
state : "solid" ,
density : 1050 ,
breakInto : "dead_plant"
}
elements . tomato _seed = {
color : "#945d26" ,
tick : function ( pixel ) {
if ( Math . random ( ) < 0.1 && 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" ) ;
}
}
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
if ( ! isEmpty ( pixel . x + 1 , pixel . y - 1 ) || ! isEmpty ( pixel . x - 1 , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y - 1 ) ;
createPixel ( "tomato_vine" , pixel . x , pixel . y + 1 ) ;
}
}
if ( ! isEmpty ( pixel . x + 2 , pixel . y - 1 ) && isEmpty ( pixel . x + 1 , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x + 1 , pixel . y - 1 ) ;
createPixel ( "tomato_vine" , pixel . x - 1 , pixel . y + 1 ) ;
}
if ( ! isEmpty ( pixel . x - 2 , pixel . y - 1 ) && isEmpty ( pixel . x - 1 , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x - 1 , pixel . y - 1 ) ;
createPixel ( "tomato_vine" , pixel . x + 1 , pixel . y + 1 ) ;
}
if ( ! isEmpty ( pixel . x , pixel . y - 1 ) && ! isEmpty ( pixel . x + 1 , pixel . y ) && isEmpty ( pixel . x + 1 , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x + 1 , pixel . y - 1 ) ;
createPixel ( "tomato_vine" , pixel . x - 1 , pixel . y + 1 ) ;
}
if ( ! isEmpty ( pixel . x , pixel . y - 1 ) && ! isEmpty ( pixel . x - 1 , pixel . y ) && isEmpty ( pixel . x - 1 , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x - 1 , pixel . y - 1 ) ;
createPixel ( "tomato_vine" , pixel . x + 1 , pixel . y + 1 ) ;
}
}
else if ( pixel . age > 400 && Math . random ( ) < 0.1 ) {
changePixel ( pixel , "tomato_vine" ) ;
}
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 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"ST:wood,tomato_vine|ST:wood,tomato_vine|ST:wood,tomato_vine" ,
"ST:wood,tomato_vine|XX|ST:wood,tomato_vine" ,
"ST:wood,tomato_vine|M1|ST:wood,tomato_vine" ,
] ,
} ;
elements . tomato . behavior = [
"ST:tomato_vine%95|ST:tomato_vine%95|ST:tomato_vine%95" ,
"ST:tomato_vine%95|XX|ST:tomato_vine%95" ,
"ST:tomato_vine%95|M1|ST:tomato_vine%95" ,
]
elements . peppermint _stem = {
color : "#2c9c3a" ,
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 ,
cutInto : "peppermint" ,
burnInto : "dead_plant" ,
state : "solid" ,
density : 1050 ,
breakInto : "dead_plant" ,
tick : function ( pixel ) {
if ( isEmpty ( pixel . x , pixel . y + 1 ) && pixel . grower == false && pixel . leafgrower == false ) {
movePixel ( pixel , pixel . x , pixel . y + 1 ) ;
}
if ( pixel . grower == true ) {
// set limit to 3 + rounded math.random inside the function
// check if left side has stem if no set direction to right
if ( ! isEmpty ( pixel . x - 1 , pixel . y ) && pixel . direction == "undefined" ) {
if ( pixelMap [ pixel . x - 1 ] [ pixel . y ] . element == "peppermint_stem" ) {
pixel . direction = "right" ;
pixel . limit = 3 + Math . round ( Math . random ( ) ) ;
}
}
// same thing to set direction the left
else if ( ! isEmpty ( pixel . x + 1 , pixel . y ) && pixel . direction == "undefined" ) {
if ( pixelMap [ pixel . x + 1 ] [ pixel . y ] . element == "peppermint_stem" ) {
pixel . direction = "left" ;
pixel . limit = 3 + Math . round ( Math . random ( ) ) ;
}
}
}
if ( pixel . grower == true && pixel . limit > 0 ) {
// left
if ( pixel . direction == "left" ) {
if ( isEmpty ( pixel . x - 1 , pixel . y - 1 ) && Math . random ( ) < 0.1 ) {
createPixel ( "peppermint_leaves" , pixel . x - 1 , pixel . y - 1 ) ;
if ( isEmpty ( pixel . x - 2 , pixel . y - 2 ) && Math . random ( ) < 0.2 ) {
createPixel ( "peppermint_leaves" , pixel . x - 2 , pixel . y - 2 ) ;
if ( isEmpty ( pixel . x - 3 , pixel . y - 3 ) && Math . random ( ) < 0.4 ) {
createPixel ( "peppermint_leaves" , pixel . x - 3 , pixel . y - 3 ) ;
if ( isEmpty ( pixel . x - 4 , pixel . y - 4 ) && Math . random ( ) < 0.75 && pixel . limit == 4 ) {
createPixel ( "peppermint_leaves" , pixel . x - 4 , pixel . y - 4 ) ;
}
}
}
}
}
// right
else if ( pixel . direction == "right" ) {
if ( isEmpty ( pixel . x + 1 , pixel . y - 1 ) && Math . random ( ) < 0.1 ) {
createPixel ( "peppermint_leaves" , pixel . x + 1 , pixel . y - 1 ) ;
if ( isEmpty ( pixel . x + 2 , pixel . y - 2 ) && Math . random ( ) < 0.2 ) {
createPixel ( "peppermint_leaves" , pixel . x + 2 , pixel . y - 2 ) ;
if ( isEmpty ( pixel . x + 3 , pixel . y - 3 ) && Math . random ( ) < 0.4 ) {
createPixel ( "peppermint_leaves" , pixel . x + 3 , pixel . y - 3 ) ;
if ( isEmpty ( pixel . x + 4 , pixel . y - 4 ) && Math . random ( ) < 0.75 && pixel . limit == 4 ) {
createPixel ( "peppermint_leaves" , pixel . x + 4 , pixel . y - 4 ) ;
}
}
}
}
}
}
pixel . age ++ ;
doDefaults ( pixel ) ;
} ,
properties : {
"grower" : false ,
"age" : 0 ,
"direction" : "undefined" ,
"limit" : 0
}
}
elements . peppermint _leaves = {
color : "#36a845" ,
reactions : {
"water" : { elem2 : "peppermint_tea" , tempMin : 80 } ,
"salt_water" : { elem2 : "peppermint_tea" , tempMin : 80 } ,
"sugar_water" : { elem2 : "peppermint_tea" , tempMin : 80 } ,
"seltzer" : { elem2 : "peppermint_tea" , tempMin : 80 } ,
"stench" : { elem2 : null , chance : 0.25 } ,
"steam" : { elem2 : "fragrance" , chance : 0.1 } ,
"flea" : { elem2 : null , chance : 0.01 } ,
"termite" : { elem2 : null , chance : 0.01 } ,
"fly" : { elem2 : null , chance : 0.01 } ,
"ant" : { elem2 : null , chance : 0.01 } ,
"stink_bug" : { elem2 : null , chance : 0.01 } ,
"yeast" : { elem1 : "tea" , chance : 0.01 } ,
"ice_cream" : { elem1 : null , color2 : "#94e067" , chance : 0.3 }
} ,
behavior : behaviors . WALL ,
tempHigh : 300 ,
stateHigh : [ "fire" , "smoke" , "smoke" , "smoke" , "ash" ] ,
tempLow : - 2 ,
stateLow : "frozen_plant" ,
burn : 10 ,
burnTime : 300 ,
burnInto : [ "fire" , "smoke" , "smoke" , "smoke" , "smoke" , "smoke" , "smoke" , "fragrance" ] ,
category : "food" ,
state : "solid" ,
density : 1400 ,
isFood : true ,
cutInto : "peppermint"
} ,
elements . peppermint _seed = {
color : "#6b5f4c" ,
tick : function ( pixel ) {
if ( isEmpty ( pixel . x , pixel . y + 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y + 1 ) ;
}
else {
if ( Math . random ( ) < 0.1 && 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" ) ;
}
}
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y - 1 ) ;
createPixel ( "peppermint_stem" , pixel . x , pixel . y + 1 ) ;
pixel . height ++ ;
}
if ( pixel . height < 12 && pixel . height > 2 && pixel . height == 3 ) {
if ( isEmpty ( pixel . x + 1 , pixel . y ) ) {
createPixel ( "peppermint_stem" , pixel . x + 1 , pixel . y ) ;
pixelMap [ pixel . x + 1 ] [ pixel . y ] . grower = true ;
}
}
if ( pixel . height < 12 && pixel . height > 2 && pixel . height == 9 ) {
if ( isEmpty ( pixel . x + 1 , pixel . y ) ) {
createPixel ( "peppermint_stem" , pixel . x + 1 , pixel . y ) ;
pixelMap [ pixel . x + 1 ] [ pixel . y ] . grower = true ;
}
}
if ( pixel . height < 12 && pixel . height > 2 && pixel . height == 6 ) {
if ( isEmpty ( pixel . x - 1 , pixel . y ) ) {
createPixel ( "peppermint_stem" , pixel . x - 1 , pixel . y ) ;
pixelMap [ pixel . x - 1 ] [ pixel . y ] . grower = true ;
}
}
if ( pixel . height > 11 ) {
if ( isEmpty ( pixel . x - 1 , pixel . y ) && isEmpty ( pixel . x + 1 , pixel . y ) ) {
createPixel ( "peppermint_stem" , pixel . x - 1 , pixel . y ) ;
pixelMap [ pixel . x - 1 ] [ pixel . y ] . grower = true ;
createPixel ( "peppermint_stem" , pixel . x + 1 , pixel . y ) ;
pixelMap [ pixel . x + 1 ] [ pixel . y ] . grower = true ;
deletePixel ( pixel . x , pixel . y ) ;
}
}
}
pixel . age ++ ;
}
doDefaults ( pixel ) ;
} ,
properties : {
"age" : 0 ,
"height" : 0
} ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
tempLow : - 2 ,
stateLow : "frozen_plant" ,
burn : 65 ,
burnTime : 15 ,
category : "life" ,
state : "solid" ,
density : 1500 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|M1|XX" ,
] ,
} ;
elements . peppermint _tea = {
color : "#687d1d" ,
behavior : behaviors . LIQUID ,
reactions : {
"stench" : { elem2 : null } ,
"flea" : { elem2 : null , chance : 0.01 } ,
"oxygen" : { elem2 : "fragrance" , chance : 0.01 } ,
"infection" : { elem2 : "blood" , chance : 0.005 } ,
"plague" : { elem2 : null , chance : 0.004 } ,
"sugar" : { elem2 : null , color1 : "#8f5a21" , chance : 0.005 } ,
"honey" : { elem2 : null , color1 : "#8f5a21" , chance : 0.005 } ,
"milk" : { elem2 : null , color1 : "#9c6c38" , chance : 0.005 } ,
"cream" : { elem2 : null , color1 : "#9c6c38" , chance : 0.005 } ,
"ice_cream" : { elem2 : null , color1 : "#9c6c38" , chance : 0.005 } ,
"honey" : { color1 : "#8d8f27" , elem2 : null , chance : 0.3 } ,
"lemon_juice" : { color1 : "#8d8f27" , elem2 : null , chance : 0.3 } ,
"lemonade" : { color1 : "#8d8f27" , elem2 : null , chance : 0.3 } ,
"sugar" : { color1 : "#83963e" , elem2 : null , chance : 0.3 }
} ,
tempHigh : 125 ,
stateHigh : [ "steam" , "fragrance" , null ] ,
temp : 50 ,
tempLow : 0 ,
category : "liquids" ,
state : "liquid" ,
density : 1001 ,
stain : - 0.1 ,
hidden : true ,
isFood : true
}
elements . peppermint = {
color : [ "#64a135" , "#559425" ] ,
reactions : {
"water" : { elem2 : "peppermint_tea" , tempMin : 80 } ,
"salt_water" : { elem2 : "peppermint_tea" , tempMin : 80 } ,
"sugar_water" : { elem2 : "peppermint_tea" , tempMin : 80 } ,
"seltzer" : { elem2 : "peppermint_tea" , tempMin : 80 } ,
"stench" : { elem2 : null , chance : 0.25 } ,
"steam" : { elem2 : "fragrance" , chance : 0.1 } ,
"flea" : { elem2 : null , chance : 0.01 } ,
"termite" : { elem2 : null , chance : 0.01 } ,
"fly" : { elem2 : null , chance : 0.01 } ,
"ant" : { elem2 : null , chance : 0.01 } ,
"stink_bug" : { elem2 : null , chance : 0.01 } ,
"ice_cream" : { elem1 : null , color2 : "#94e067" , chance : 0.3 } ,
} ,
behavior : behaviors . POWDER ,
tempHigh : 300 ,
stateHigh : [ "fire" , "smoke" , "smoke" , "smoke" , "ash" ] ,
burn : 10 ,
burnTime : 300 ,
burnInto : [ "fire" , "smoke" , "smoke" , "smoke" , "smoke" , "smoke" , "smoke" , "fragrance" ] ,
category : "food" ,
state : "solid" ,
density : 1400 ,
isFood : true ,
}
//elements.candy.reactions.peppermint = {color1:["eeeddc","f5f267"],elem2:null,chance:3}
elements . vanilla _stem = {
color : "#5d9c48" ,
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" ,
state : "solid" ,
density : 1050 ,
hidden : true ,
breakInto : "dead_plant" ,
tick : function ( pixel ) {
if ( isEmpty ( pixel . x , pixel . y + 1 ) && pixel . grower == false && pixel . leafgrower == false ) {
movePixel ( pixel , pixel . x , pixel . y + 1 ) ;
}
if ( pixel . grower == true ) {
// check if left side has stem if no set direction to right
if ( ! isEmpty ( pixel . x - 1 , pixel . y ) && pixel . direction == "undefined" ) {
if ( pixelMap [ pixel . x - 1 ] [ pixel . y ] . element == "vanilla_stem" ) {
pixel . direction = "right" ;
}
}
// same thing to set direction the left
else if ( ! isEmpty ( pixel . x + 1 , pixel . y ) && pixel . direction == "undefined" ) {
if ( pixelMap [ pixel . x + 1 ] [ pixel . y ] . element == "vanilla_stem" ) {
pixel . direction = "left" ;
}
}
}
if ( pixel . grower == true ) {
// left
if ( pixel . direction == "left" ) {
if ( isEmpty ( pixel . x - 1 , pixel . y - 1 ) && Math . random ( ) < 0.1 ) {
createPixel ( "vanilla_leaves" , pixel . x - 1 , pixel . y - 1 ) ;
if ( isEmpty ( pixel . x - 2 , pixel . y - 2 ) && Math . random ( ) < 0.2 ) {
createPixel ( "vanilla_leaves" , pixel . x - 2 , pixel . y - 2 ) ;
if ( isEmpty ( pixel . x - 3 , pixel . y - 3 ) && Math . random ( ) < 0.4 ) {
createPixel ( "vanilla_leaves" , pixel . x - 3 , pixel . y - 3 ) ;
}
}
}
}
// right
else if ( pixel . direction == "right" ) {
if ( isEmpty ( pixel . x + 1 , pixel . y - 1 ) && Math . random ( ) < 0.1 ) {
createPixel ( "vanilla_leaves" , pixel . x + 1 , pixel . y - 1 ) ;
if ( isEmpty ( pixel . x + 2 , pixel . y - 2 ) && Math . random ( ) < 0.2 ) {
createPixel ( "vanilla_leaves" , pixel . x + 2 , pixel . y - 2 ) ;
if ( isEmpty ( pixel . x + 3 , pixel . y - 3 ) && Math . random ( ) < 0.4 ) {
createPixel ( "vanilla_leaves" , pixel . x + 3 , pixel . y - 3 ) ;
}
}
}
}
}
pixel . age ++ ;
doDefaults ( pixel ) ;
} ,
properties : {
"grower" : false ,
"age" : 0 ,
"direction" : "undefined" ,
}
}
elements . vanilla _leaves = {
color : "#5d9c48" ,
reactions : {
"stench" : { elem2 : null , chance : 0.25 } ,
"steam" : { elem2 : "fragrance" , chance : 0.1 } ,
"flea" : { elem2 : null , chance : 0.01 } ,
"termite" : { elem2 : null , chance : 0.01 } ,
"fly" : { elem2 : null , chance : 0.01 } ,
"ant" : { elem2 : null , chance : 0.01 } ,
"stink_bug" : { elem2 : null , chance : 0.01 } ,
"yeast" : { elem1 : "tea" , chance : 0.01 } ,
} ,
tick : function ( pixel ) {
if ( isEmpty ( pixel . x - 1 , pixel . y - 1 ) && ! isEmpty ( pixel . x + 1 , pixel . y + 1 ) && Math . random ( ) < 0.03 ) {
createPixel ( "vanilla_flower" , pixel . x - 1 , pixel . y - 1 ) ;
}
if ( isEmpty ( pixel . x + 1 , pixel . y - 1 ) && ! isEmpty ( pixel . x - 1 , pixel . y + 1 ) && Math . random ( ) < 0.03 ) {
createPixel ( "vanilla_flower" , pixel . x + 1 , pixel . y - 1 ) ;
}
pixel . age ++ ;
doDefaults ( pixel ) ;
} ,
behavior : behaviors . WALL ,
tempHigh : 300 ,
stateHigh : [ "fire" , "smoke" , "smoke" , "smoke" , "ash" ] ,
tempLow : - 2 ,
stateLow : "frozen_plant" ,
burn : 10 ,
burnTime : 300 ,
burnInto : [ "fire" , "smoke" , "smoke" , "smoke" , "smoke" , "smoke" , "smoke" , "fragrance" ] ,
category : "life" ,
state : "solid" ,
density : 1400 ,
isFood : true ,
hidden : true
} ,
elements . vanilla _seed = {
color : "#806d3b" ,
tick : function ( pixel ) {
if ( isEmpty ( pixel . x , pixel . y + 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y + 1 ) ;
}
else {
if ( Math . random ( ) < 0.1 && 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" ) ;
}
}
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y - 1 ) ;
createPixel ( "vanilla_stem" , pixel . x , pixel . y + 1 ) ;
pixel . height ++ ;
}
if ( pixel . height < 12 && pixel . height > 2 && pixel . height == 3 ) {
if ( isEmpty ( pixel . x + 1 , pixel . y ) ) {
createPixel ( "vanilla_stem" , pixel . x + 1 , pixel . y ) ;
pixelMap [ pixel . x + 1 ] [ pixel . y ] . grower = true ;
}
}
if ( pixel . height < 12 && pixel . height > 2 && pixel . height == 9 ) {
if ( isEmpty ( pixel . x + 1 , pixel . y ) ) {
createPixel ( "vanilla_stem" , pixel . x + 1 , pixel . y ) ;
pixelMap [ pixel . x + 1 ] [ pixel . y ] . grower = true ;
}
}
if ( pixel . height < 12 && pixel . height > 2 && pixel . height == 6 ) {
if ( isEmpty ( pixel . x - 1 , pixel . y ) ) {
createPixel ( "vanilla_stem" , pixel . x - 1 , pixel . y ) ;
pixelMap [ pixel . x - 1 ] [ pixel . y ] . grower = true ;
}
}
if ( pixel . height > 11 ) {
if ( isEmpty ( pixel . x - 1 , pixel . y ) && isEmpty ( pixel . x + 1 , pixel . y ) ) {
createPixel ( "vanilla_stem" , pixel . x - 1 , pixel . y ) ;
pixelMap [ pixel . x - 1 ] [ pixel . y ] . grower = true ;
createPixel ( "vanilla_stem" , pixel . x + 1 , pixel . y ) ;
pixelMap [ pixel . x + 1 ] [ pixel . y ] . grower = true ;
deletePixel ( pixel . x , pixel . y ) ;
}
}
}
pixel . age ++ ;
}
doDefaults ( pixel ) ;
} ,
properties : {
"age" : 0 ,
"height" : 0
} ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
tempLow : - 2 ,
stateLow : "frozen_plant" ,
burn : 65 ,
burnTime : 15 ,
category : "life" ,
state : "solid" ,
density : 1500 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|M1|XX" ,
] ,
} ;
elements . vanilla _flower = {
color : "#f7f4e1" ,
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 } ,
} ,
tick : function ( pixel ) {
if ( pixel . age > 175 && pixel . pod == true ) {
changePixel ( pixel , "vanilla_pod" )
}
if ( isEmpty ( pixel . x , pixel . y + 1 ) && Math . random ( ) < 0.03 && pixel . pod == false && pixel . harvested == false ) {
createPixel ( "vanilla_flower" , pixel . x , pixel . y + 1 ) ;
pixelMap [ pixel . x ] [ pixel . y + 1 ] . pod = true ;
if ( Math . random < 0.5 ) {
pixel . harvested = true ;
}
}
pixel . age ++
} ,
category : "life" ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
burn : 15 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
state : "solid" ,
density : 1050 ,
properties : {
"age" : 0 ,
"pod" : false ,
"harvested" : false ,
}
}
elements . vanilla _pod = {
color : "#36281d" ,
behavior : [
"XX|ST:vanilla_flower|XX" ,
"XX|XX|XX" ,
"XX|M1|XX" ,
] ,
reactions : {
"alcohol" : { elem1 : "vanilla_essence" , elem2 : null , chance : 0.035 } ,
} ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
burn : 15 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
state : "solid" ,
density : 1050 ,
}
elements . ice _cream . reactions = { }
elements . ice _cream . reactions . vanilla _essence = { color1 : "#fff7b6" , elem2 : null , chance : 0.35 }
elements . vanilla _essence = {
color : "#9c7211" ,
behavior : behaviors . LIQUID ,
tempHigh : 170 ,
stateHigh : [ "sugar" , "smoke" , "smoke" ] ,
tempLow : 0 ,
category : "liquids" ,
state : "liquid" ,
density : 1400 ,
}
elements . candy . reactions = { }
elements . candy . reactions . peppermint = { elem1 : "peppermint_candy" , elem2 : null , chance : 0.35 }
elements . peppermint _candy = {
color : [ "#fa5e3e" , "#fff5f5" ] ,
behavior : behaviors . WALL ,
tempHigh : 204.44 ,
stateHigh : "smoke" ,
category : "food" ,
state : "solid" ,
density : 850 ,
isFood : true
}
elements . tapioca = {
color : "#ded58e" ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"M2 AND CH:dirt,mud,sand,wet_sand,clay_soil,clay,mycelium,grass,color_sand>tapioca,fiber%0.5|M1 AND CH:dirt,mud,sand,wet_sand,clay_soil,clay,mycelium,grass,color_sand>tapioca,fiber,fiber%0.5|M2 AND CH:dirt,mud,sand,wet_sand,clay_soil,clay,mycelium,grass,color_sand>tapioca,fiber%0.5" ,
] ,
tempHigh : 275 ,
stateHigh : "dirt" ,
tempLow : - 50 ,
stateLow : "fiber" ,
burn : 20 ,
burnTime : 60 ,
burnInto : "dirt" ,
breakInto : "corn_starch" ,
category : "food" ,
state : "solid" ,
density : 1250 ,
conduct : 0.1 ,
hidden : true ,
darkText : true ,
desc : 'a wise icyking once said: \'state:"burn 100"\'' ,
alias : [ "element that i made before icyking" , "burn 100 element" ]
}
elements . tapioca _seed = {
color : "#a78d38" ,
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 , "tapioca" ) ;
}
}
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y - 1 ) ;
createPixel ( "tapioca_stem" , pixel . x , pixel . y + 1 ) ;
}
if ( isEmpty ( pixel . x + 1 , pixel . y ) && Math . random ( ) < 0.2 ) {
createPixel ( "tapioca_leaves" , pixel . x + 1 , pixel . y ) ;
}
if ( isEmpty ( pixel . x - 1 , pixel . y ) && Math . random ( ) < 0.2 ) {
createPixel ( "tapioca_leaves" , pixel . x - 1 , pixel . y ) ;
}
}
else if ( pixel . age > 250 ) {
changePixel ( pixel , "tapioca_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 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"XX|XX|XX" ,
"XX|FX%10|XX" ,
"XX|M1|XX" ,
] ,
} ;
elements . tapioca _stem = {
color : "#358f35" ,
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 . tapioca _leaves = {
color : "#3e823e" ,
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 . sprinkle _bomb = {
color : [ "#eb726a" , "#ebca6a" , "#88eb6a" , "#6aaceb" , "#eb6ade" ] ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|M1 AND EX:10>sprinkles|XX" ,
] ,
category : "food" ,
state : "solid" ,
density : 1300 ,
excludeRandom : true ,
cooldown : defaultCooldown
}
elements . chilli _stem = {
color : "#5d9c48" ,
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" ,
state : "solid" ,
density : 1050 ,
hidden : true ,
breakInto : "herb" ,
breakIntoColor : "#245c1b" ,
tick : function ( pixel ) {
if ( isEmpty ( pixel . x , pixel . y + 1 ) && pixel . grower == false && pixel . leafgrower == false ) {
movePixel ( pixel , pixel . x , pixel . y + 1 ) ;
}
if ( pixel . grower == true ) {
// check if left side has stem if no set direction to right
if ( ! isEmpty ( pixel . x - 1 , pixel . y ) && pixel . direction == "undefined" ) {
if ( pixelMap [ pixel . x - 1 ] [ pixel . y ] . element == "chilli_stem" ) {
pixel . direction = "right" ;
}
}
// same thing to set direction the left
else if ( ! isEmpty ( pixel . x + 1 , pixel . y ) && pixel . direction == "undefined" ) {
if ( pixelMap [ pixel . x + 1 ] [ pixel . y ] . element == "chilli_stem" ) {
pixel . direction = "left" ;
}
}
}
if ( pixel . grower == true ) {
// left
if ( pixel . direction == "left" ) {
if ( isEmpty ( pixel . x - 1 , pixel . y - 1 ) && Math . random ( ) < 0.1 ) {
createPixel ( "chilli_leaves" , pixel . x - 1 , pixel . y - 1 ) ;
if ( isEmpty ( pixel . x - 2 , pixel . y - 2 ) && Math . random ( ) < 0.2 ) {
createPixel ( "chilli_leaves" , pixel . x - 2 , pixel . y - 2 ) ;
if ( isEmpty ( pixel . x - 3 , pixel . y - 3 ) && Math . random ( ) < 0.4 ) {
createPixel ( "chilli_leaves" , pixel . x - 3 , pixel . y - 3 ) ;
}
}
}
}
// right
else if ( pixel . direction == "right" ) {
if ( isEmpty ( pixel . x + 1 , pixel . y - 1 ) && Math . random ( ) < 0.1 ) {
createPixel ( "chilli_leaves" , pixel . x + 1 , pixel . y - 1 ) ;
if ( isEmpty ( pixel . x + 2 , pixel . y - 2 ) && Math . random ( ) < 0.2 ) {
createPixel ( "chilli_leaves" , pixel . x + 2 , pixel . y - 2 ) ;
if ( isEmpty ( pixel . x + 3 , pixel . y - 3 ) && Math . random ( ) < 0.4 ) {
createPixel ( "chilli_leaves" , pixel . x + 3 , pixel . y - 3 ) ;
}
}
}
}
}
pixel . age ++ ;
doDefaults ( pixel ) ;
} ,
properties : {
"grower" : false ,
"age" : 0 ,
"direction" : "undefined" ,
}
}
elements . chilli _leaves = {
color : "#5d9c48" ,
reactions : {
"water" : { elem2 : "chilli_tea" , tempMin : 80 } ,
"salt_water" : { elem2 : "chilli_tea" , tempMin : 80 } ,
"sugar_water" : { elem2 : "chilli_tea" , tempMin : 80 } ,
"seltzer" : { elem2 : "chilli_tea" , tempMin : 80 } ,
"stench" : { elem2 : null , chance : 0.25 } ,
"steam" : { elem2 : "fragrance" , chance : 0.1 } ,
"flea" : { elem2 : null , chance : 0.01 } ,
"termite" : { elem2 : null , chance : 0.01 } ,
"fly" : { elem2 : null , chance : 0.01 } ,
"ant" : { elem2 : null , chance : 0.01 } ,
"stink_bug" : { elem2 : null , chance : 0.01 } ,
"yeast" : { elem1 : "tea" , chance : 0.01 } ,
} ,
tick : function ( pixel ) {
if ( isEmpty ( pixel . x - 1 , pixel . y - 1 ) && ! isEmpty ( pixel . x + 1 , pixel . y + 1 ) && Math . random ( ) < 0.03 ) {
createPixel ( "chilli" , pixel . x - 1 , pixel . y - 1 ) ;
}
if ( isEmpty ( pixel . x + 1 , pixel . y - 1 ) && ! isEmpty ( pixel . x - 1 , pixel . y + 1 ) && Math . random ( ) < 0.03 ) {
createPixel ( "chilli" , pixel . x + 1 , pixel . y - 1 ) ;
}
pixel . age ++ ;
doDefaults ( pixel ) ;
} ,
behavior : behaviors . WALL ,
tempHigh : 300 ,
stateHigh : [ "fire" , "smoke" , "smoke" , "smoke" , "ash" ] ,
tempLow : - 2 ,
stateLow : "frozen_plant" ,
burn : 10 ,
burnTime : 300 ,
burnInto : [ "fire" , "smoke" , "smoke" , "smoke" , "smoke" , "smoke" , "smoke" , "fragrance" ] ,
category : "life" ,
state : "solid" ,
density : 1400 ,
isFood : true ,
hidden : true ,
breakInto : "herb" ,
breakIntoColor : "#245c1b" ,
} ,
elements . chilli _seed = {
color : "#806d3b" ,
tick : function ( pixel ) {
if ( isEmpty ( pixel . x , pixel . y + 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y + 1 ) ;
}
else {
if ( Math . random ( ) < 0.1 && 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" ) ;
}
}
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y - 1 ) ;
createPixel ( "chilli_stem" , pixel . x , pixel . y + 1 ) ;
pixel . height ++ ;
}
if ( pixel . height < 12 && pixel . height > 2 && pixel . height == 3 ) {
if ( isEmpty ( pixel . x + 1 , pixel . y ) ) {
createPixel ( "chilli_stem" , pixel . x + 1 , pixel . y ) ;
pixelMap [ pixel . x + 1 ] [ pixel . y ] . grower = true ;
}
}
if ( pixel . height < 12 && pixel . height > 2 && pixel . height == 9 ) {
if ( isEmpty ( pixel . x + 1 , pixel . y ) ) {
createPixel ( "chilli_stem" , pixel . x + 1 , pixel . y ) ;
pixelMap [ pixel . x + 1 ] [ pixel . y ] . grower = true ;
}
}
if ( pixel . height < 12 && pixel . height > 2 && pixel . height == 6 ) {
if ( isEmpty ( pixel . x - 1 , pixel . y ) ) {
createPixel ( "chilli_stem" , pixel . x - 1 , pixel . y ) ;
pixelMap [ pixel . x - 1 ] [ pixel . y ] . grower = true ;
}
}
if ( pixel . height > 11 ) {
if ( isEmpty ( pixel . x - 1 , pixel . y ) && isEmpty ( pixel . x + 1 , pixel . y ) ) {
createPixel ( "chilli_stem" , pixel . x - 1 , pixel . y ) ;
pixelMap [ pixel . x - 1 ] [ pixel . y ] . grower = true ;
createPixel ( "chilli_stem" , pixel . x + 1 , pixel . y ) ;
pixelMap [ pixel . x + 1 ] [ pixel . y ] . grower = true ;
deletePixel ( pixel . x , pixel . y ) ;
}
}
}
pixel . age ++ ;
}
doDefaults ( pixel ) ;
} ,
properties : {
"age" : 0 ,
"height" : 0
} ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
tempLow : - 2 ,
stateLow : "frozen_plant" ,
burn : 65 ,
burnTime : 15 ,
category : "life" ,
state : "solid" ,
density : 1500 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|M1|XX" ,
] ,
} ;
elements . chilli = {
color : "#ba3030" ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"ST:chilli_leaves|M1|ST:chilli_leaves" ,
] ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
burn : 15 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
state : "solid" ,
density : 1050 ,
breakInto : "chilli_powder" ,
reactions : {
"sauce" : { elem1 : null , elem2 : "hot_sauce" , chance : 2 }
} ,
}
elements . chilli _powder = {
color : "#a32121" ,
reactions : {
"stench" : { elem2 : null , chance : 0.25 } ,
"steam" : { elem2 : "fragrance" , chance : 0.1 } ,
"flea" : { elem2 : null , chance : 0.01 } ,
"termite" : { elem2 : null , chance : 0.01 } ,
"fly" : { elem2 : null , chance : 0.01 } ,
"ant" : { elem2 : null , chance : 0.01 } ,
"stink_bug" : { elem2 : null , chance : 0.01 } ,
"sauce" : { elem1 : null , elem2 : "hot_sauce" , chance : 2 }
} ,
behavior : behaviors . POWDER ,
tempHigh : 300 ,
stateHigh : [ "fire" , "smoke" , "smoke" , "smoke" , "ash" ] ,
burn : 10 ,
burnTime : 300 ,
burnInto : [ "fire" , "smoke" , "smoke" , "smoke" , "smoke" , "smoke" , "smoke" , "fragrance" ] ,
category : "food" ,
state : "solid" ,
density : 1400 ,
isFood : true ,
}
elements . hot _sauce = {
color : "#a31414" ,
behavior : behaviors . LIQUID ,
reactions : {
"stench" : { elem2 : null } ,
} ,
viscosity : 2600 ,
tempHigh : 260 ,
stateHigh : [ "steam" , "salt" , "fragrance" ] ,
tempLow : - 2 ,
category : "food" ,
state : "liquid" ,
density : 1031.33 ,
stain : 0.01 ,
isFood : true
}
elements . head . reactions . hot _sauce = { elem2 : [ "smoke" , "fire" , null , null , null , null , null , null , null , null , null , null , null , null , null , null , null , null , null , null , null , null , null , null , null , null , null , null , null , null ] , chance : 3 }
elements . durian _wood = {
color : "#5e4b23" ,
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" ] ,
hidden : true
}
elements . durian _branch = {
color : "#5e4b23" ,
behavior : [
"CR:durian_leaves,durian_branch%2|CR:durian_leaves,durian_branch%2|CR:durian_leaves,durian_branch%2" ,
"XX|XX|XX" ,
"XX|XX|XX" ,
] ,
tempHigh : 100 ,
stateHigh : "durian_wood" ,
tempLow : - 30 ,
stateLow : "durian_wood" ,
category : "life" ,
burn : 40 ,
burnTime : 50 ,
burnInto : [ "sap" , "ember" , "charcoal" ] ,
hidden : true ,
state : "solid" ,
density : 1500 ,
hardness : 0.15 ,
breakInto : [ "sap" , "sawdust" ] ,
}
elements . durian _leaves = {
color : [ "#326b25" , "#2e751e" ] ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|CR:durian%0.1|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 ,
hidden : true
}
elements . durian = {
color : [ "#578524" , "#5b8f1f" ] ,
behavior : behaviors . POWDER ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
burn : 65 ,
burnTime : 60 ,
cutInto : "cut_durian" ,
state : "solid" ,
density : 1050 ,
2024-05-10 21:17:53 -04:00
breakInto : "durian_juice"
2024-04-12 09:36:56 -04:00
}
elements . cut _durian = {
color : [ "#e3e04b" , "#d1cf36" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
tempHigh : 100 ,
stateHigh : [ "sugar" , "steam" ] ,
burn : 65 ,
burnTime : 60 ,
state : "solid" ,
density : 1050 ,
hidden : true ,
freezeDryInto : "freeze_dried_fruits" ,
freezeDryIntoColor : "#a19f3b" ,
2024-05-10 21:17:53 -04:00
breakInto : "durian_juice"
2024-04-12 09:36:56 -04:00
}
elements . durian _seed = {
color : "#a17d3b" ,
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" ) ;
}
}
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y - 1 ) ;
createPixel ( Math . random ( ) > 0.5 ? "durian_wood" : "durian_branch" , pixel . x , pixel . y + 1 ) ;
}
}
else if ( pixel . age > 1000 ) {
changePixel ( pixel , "durian_wood" ) ;
}
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 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"XX|XX|XX" ,
"XX|FX%10|XX" ,
"XX|M1|XX" ,
] ,
} ;
2024-05-10 21:17:53 -04:00
elements . durian _juice = {
color : "#ebe06e" ,
onMix : function ( pixel ) {
if ( shiftDown ) {
if ( Math . random ( ) < 0.2 ) {
changePixel ( pixel , "juice" )
pixel . color = pixelColorPick ( pixel , "#ebe06e" )
}
}
} ,
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 ,
hidden : true ,
tempLow : 0 ,
} ;
eLists . JUICEMIXABLE . push ( "durian_juice" ) ;
2024-04-12 09:36:56 -04:00
elements . egg _white = {
color : "#edece8" ,
behavior : behaviors . LIQUID ,
tempHigh : 100 ,
stateHigh : "hard_egg_white" ,
tempLow : 0 ,
stateLow : "hard_egg_white" ,
category : "food" ,
state : "liquid" ,
density : 1027.5 ,
viscosity : 270 ,
isFood : true ,
whiskInto : "whisked_egg_white" ,
}
elements . hard _egg _white = {
color : "#dedddc" ,
behavior : behaviors . STURDYPOWDER ,
tempHigh : 400 ,
stateHigh : "smoke" ,
category : "food" ,
hidden : true ,
isFood : true ,
state : "solid" ,
density : 1031
}
elements . milk . whiskInto = "cream" ;
elements . cream . whiskInto = "whipped_cream" ;
elements . egg . breakInto = [ "egg_white" , "egg_white" , "yolk" ]
elements . whisked _egg _white = {
color : "#fefefe" ,
behavior : behaviors . LIQUID ,
reactions : {
"corn_syrup" : { elem1 : "marshmallow" , elem2 : null , chance : 2 } ,
"sugar" : { elem1 : "marshmallow" , elem2 : null , chance : 2 } ,
} ,
viscosity : 1.5 ,
tempHigh : 1000 ,
stateHigh : [ "smoke" , "steam" ] ,
category : "food" ,
hidden : true ,
isFood : true ,
state : "liquid" ,
density : 959.97 ,
}
elements . marshmallow = {
color : "#fafafa" ,
behavior : [
"XX|XX|XX" ,
"ST:wood|XX|ST:wood" ,
"XX|M1|XX" ,
] ,
viscosity : 1.5 ,
tempHigh : 70 ,
stateHigh : "cooked_marshmallow" ,
category : "food" ,
isFood : true ,
state : "solid" ,
density : 959.97 ,
}
elements . cooked _marshmallow = {
color : "#f0dbb6" ,
behavior : [
"XX|XX|XX" ,
"ST:wood|XX|ST:wood" ,
"XX|M1|XX" ,
] ,
viscosity : 1.5 ,
tempHigh : 150 ,
stateHigh : "burnt_marshmallow" ,
category : "food" ,
isFood : true ,
state : "solid" ,
density : 959.97 ,
hidden : true
}
elements . burnt _marshmallow = {
color : "#29231a" ,
behavior : [
"XX|XX|XX" ,
"ST:wood|XX|ST:wood" ,
"XX|M1|XX" ,
] ,
viscosity : 1.5 ,
tempHigh : 1000 ,
stateHigh : [ "steam" , "caramel" ] ,
category : "food" ,
isFood : true ,
state : "solid" ,
density : 959.97 ,
hidden : true
}
eLists . FOODCOLORINGIGNORE = [ "glass" , "porcelain" , "wall" , "iron" , "steel" , "copper" , "silver" , "aluminum" , "tungsten" , "gold" , "plastic" ] ;
elements . food _coloring = {
color : [ "#ff0000" , "#ff8800" , "#ffff00" , "#00ff00" , "#00ffff" , "#0000ff" , "#ff00ff" ] ,
behavior : behaviors . LIQUID ,
customColor : true ,
stain : 0.5 ,
tempHigh : 100 ,
stateHigh : "steam" ,
category : "food" ,
state : "liquid" ,
density : 998 ,
stainSelf : true ,
ignore : [ "glass" , "porcelain" , "wall" , "iron" , "steel" , "copper" , "silver" , "aluminum" , "tungsten" , "gold" , "plastic" ] ,
desc : "coloring for food. color may fade when diluting with water." ,
onMix : function ( pixel ) {
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 === "water" || pixelMap [ x ] [ y ] . element === "salt_water" || pixelMap [ x ] [ y ] . element === "sugar_water" || pixelMap [ x ] [ y ] . element === "seltzer" || pixelMap [ x ] [ y ] . element === "dirty_water" || pixelMap [ x ] [ y ] . element === "pool_water" ) {
changePixel ( pixelMap [ x ] [ y ] , "food_coloring" ) ;
let newrgb = interpolateRgb ( getRGB ( pixel . color ) , getRGB ( pixelMap [ x ] [ y ] . color ) , 0.5 ) ;
pixel . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
pixelMap [ x ] [ y ] . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
}
else {
if ( ! outOfBounds ( pixelMap [ x ] [ y ] ) ) {
if ( ! eLists . FOODCOLORINGIGNORE . includes ( pixelMap [ x ] [ y ] . element ) && pixelMap [ x ] [ y ] . element !== "glass" && pixelMap [ x ] [ y ] . element !== "porcelain" && pixelMap [ x ] [ y ] . element !== "wall" && pixelMap [ x ] [ y ] . element !== "plastic" ) {
let newrgb2 = interpolateRgb ( getRGB ( pixel . color ) , getRGB ( pixelMap [ x ] [ y ] . color ) , 0.9 ) ;
pixelMap [ x ] [ y ] . color = ` rgb( ${ parseInt ( newrgb2 . r ) } , ${ parseInt ( newrgb2 . g ) } , ${ parseInt ( newrgb2 . b ) } ) ` ;
if ( Math . random ( ) < 0.002 ) {
deletePixel ( pixel . x , pixel . y )
}
}
}
}
}
}
} ,
onSelect : function ( ) {
logMessage ( "Tip: You can spread food coloring using water." ) ;
} ,
}
elements . cooked _meat . behavior = behaviors . SUPPORT ;
elements . cake _batter = {
color : "#d4bc85" ,
behavior : behaviors . LIQUID ,
onMix : function ( batter , ingredient ) {
if ( elements [ ingredient . element ] . isFood && elements [ ingredient . element ] . id !== elements . batter . id && elements [ ingredient . element ] . id !== elements . flour . id && elements [ ingredient . element ] . id !== elements . yolk . id && elements [ ingredient . element ] . id !== elements . dough . id && elements [ ingredient . element ] . id !== elements . baked _batter . id && elements [ ingredient . element ] . id !== elements . cake . id && elements [ ingredient . element ] . id !== elements . cake _batter . id ) {
var rgb1 = batter . color . match ( /\d+/g ) ;
var rgb2 = ingredient . color . match ( /\d+/g ) ;
// average the colors
var rgb = [
Math . round ( ( parseInt ( rgb1 [ 0 ] ) * 10 + parseInt ( rgb2 [ 0 ] ) ) / 11 ) ,
Math . round ( ( parseInt ( rgb1 [ 1 ] ) * 10 + parseInt ( rgb2 [ 1 ] ) ) / 11 ) ,
Math . round ( ( parseInt ( rgb1 [ 2 ] ) * 10 + parseInt ( rgb2 [ 2 ] ) ) / 11 )
] ;
// convert rgb to hex
var hex = RGBToHex ( rgb ) ;
batter . color = pixelColorPick ( batter , hex ) ;
if ( ( elements [ ingredient . element ] . density > elements . batter . density || shiftDown ) && Math . random ( ) < 0.05 ) {
// 50% change to delete ingredient
if ( Math . random ( ) < 0.5 ) { deletePixel ( ingredient . x , ingredient . y ) ; }
else {
ingredient . color = pixelColorPick ( ingredient , hex ) ;
}
}
}
} ,
reactions : {
"cream" : { elem2 : "cake_batter" , tempMin : 40 , chance : 0.01 } ,
} ,
category : "food" ,
tempHigh : 94 ,
stateHigh : "cake" ,
stateHighColorMultiplier : 0.9 ,
burn : 40 ,
burnTime : 25 ,
burnInto : "ash" ,
state : "liquid" ,
viscosity : 10000 ,
density : 1001 ,
hidden : true ,
isFood : true
}
elements . batter . whiskInto = "cake_batter" ;
elements . milk . stateHigh = [ "steam" , "steam" , "condensed_milk" ] ;
elements . condensed _milk = {
color : "#f2f0df" ,
behavior : behaviors . LIQUID ,
reactions : {
"cell" : { elem1 : "yogurt" , chance : 0.1 } ,
"dirt" : { elem1 : null , elem2 : "mud" } ,
"sand" : { elem1 : null , elem2 : "wet_sand" } ,
"clay_soil" : { elem1 : null , elem2 : "clay" } ,
"caramel" : { color1 : "#C8B39A" , elem2 : null , chance : 0.05 } ,
"sugar" : { color1 : "#fffbf0" , elem2 : null , chance : 0.5 } ,
} ,
tempLow : 0 ,
stateLow : "ice_cream" ,
stateLowColorMultiplier : [ 0.97 , 0.93 , 0.87 ] ,
tempHigh : 500 ,
stateHigh : [ "smoke" , "smoke" , "smoke" , "quicklime" ] ,
viscosity : 1500 ,
category : "food" ,
state : "liquid" ,
density : 1036.86 ,
isFood : true ,
alias : "evaporated_milk"
}
elements . wasabi = {
color : [ "#82b55b" , "#6cad50" , "#7dcc5c" ] ,
behavior : behaviors . STURDYPOWDER2 ,
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" ] ,
category : "food" ,
isFood : true ,
state : "solid" ,
density : 959.97 ,
}
// extremely confused part
elements . beans . name = "baked_beans" ;
elements . real _beans = {
name : "beans" ,
color : [ "#e8dfc5" , "#d1c7ab" ] ,
behavior : behaviors . POWDER ,
category : "food" ,
tempHigh : 350 ,
stateHigh : [ "fire" , "fire" , "ash" ] ,
burn : 3 ,
burnTime : 500 ,
burnInto : [ "fire" , "smoke" , "smoke" , "steam" , "ash" ] ,
reactions : {
"sauce" : { elem1 : "beans" , elem2 : "beans" } ,
"yeast" : { elem1 : "fermented_beans" , elem2 : null , chance : 0.5 }
} ,
state : "solid" ,
density : 721 ,
isFood : true ,
alias : "soy_beans"
}
elements . fermented _beans = {
color : "#ada386" ,
behavior : behaviors . POWDER ,
category : "food" ,
tempHigh : 350 ,
stateHigh : [ "fire" , "fire" , "ash" ] ,
burn : 3 ,
burnTime : 500 ,
burnInto : [ "fire" , "smoke" , "smoke" , "steam" , "ash" ] ,
state : "solid" ,
density : 721 ,
breakInto : "soy_sauce" ,
isFood : true ,
alias : "natto"
}
elements . soy _sauce = {
color : "#480601" ,
behavior : behaviors . LIQUID ,
tempLow : - 5 ,
tempHigh : 105 ,
stateHigh : [ "steam" , "steam" , "salt" ] ,
state : "liquid" ,
category : "food" ,
density : 1200 ,
} ;
// end of confused part
elements . ice . breakInto = "slush" ;
elements . cracker _dough = {
color : "#dbd19a" ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
tempHigh : 94 ,
stateHigh : "cracker" ,
stateHighColorMultiplier : 1.1 ,
burn : 40 ,
burnTime : 25 ,
burnInto : "ash" ,
state : "solid" ,
density : 526.9 ,
isFood : true ,
hidden : true
}
elements . cracker = {
color : "#e0ddb8" ,
behavior : behaviors . STURDYPOWDER ,
tempHigh : 605 ,
stateHigh : "ash" ,
category : "food" ,
burn : 30 ,
burnTime : 200 ,
burnInto : [ "smoke" , "smoke" , "smoke" , "ash" ] ,
breakInto : "crumb" ,
state : "solid" ,
density : 233.96 ,
isFood : true
}
elements . agar = {
color : "#e0e0e0" ,
behavior : behaviors . POWDER ,
reactions : {
"ice" : { elem1 : null , elem2 : "salt_water" , chance : 0.1 } ,
"rime" : { elem1 : null , elem2 : "salt_water" , chance : 0.075 } ,
"snow" : { elem1 : null , elem2 : "salt_water" , chance : 0.25 } ,
"packed_snow" : { elem1 : null , elem2 : "salt_water" , chance : 0.05 } ,
"packed_ice" : { elem1 : null , elem2 : "salt_water" , chance : 0.01 }
} ,
category : "food" ,
tempHigh : 801 ,
state : "solid" ,
density : 2160 ,
alias : "gelatin"
}
// thanks to adora
elements . agar . reactions . juice = { elem1 : "jelly" , elem2 : null , chance : 0.05 , func : function ( pixel1 , pixel2 ) {
let newrgb = interpolateRgb ( getRGB ( 'rgb(250,250,250)' ) , getRGB ( pixel2 . color ) , 0.7 ) ;
pixel1 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
} }
elements . agar . reactions . water = { elem1 : "jelly" , elem2 : null , color1 : "#e0e0e0" , chance : 0.05 }
elements . duck = {
color : [ "#826c4e" , "#2b5927" , "#d6d6d6" , "#7d4a2c" ] ,
behavior : [
"M2%1 AND SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water,primordial_soup%1|M2%2 AND SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water,primordial_soup%50|M2%1 AND SW:water,salt_water,sugar_water,dirty_water,seltzer,pool_water,primordial_soup%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 : "duck_egg" ,
foodNeed : 10 ,
temp : 40 ,
tempHigh : 75 ,
stateHigh : "cooked_duck" ,
tempLow : - 18 ,
stateLow : "frozen_meat" ,
breakInto : "raw_duck" ,
burn : 85 ,
burnTime : 450 ,
state : "solid" ,
density : 1117 ,
conduct : 0.3 ,
cutInto : "raw_duck" ,
} ;
elements . duck _egg = {
color : "#e0d3ab" ,
behavior : behaviors . STURDYPOWDER2 ,
tick : function ( pixel ) {
if ( Math . random ( ) < 0.1 && pixel . temp > 20 && pixel . temp < 35 ) {
changePixel ( pixel , "duckling" )
}
doDefaults ( pixel ) ;
} ,
category : "food" ,
state : "solid" ,
temp : 20 ,
tempLow : - 18 ,
stateLow : "frozen_duck_egg" ,
breakInto : [ "yolk" ] ,
tempHigh : 400 ,
stateHigh : [ "calcium" , "ash" ] ,
burn : 50 ,
burnTime : 450 ,
state : "solid" ,
density : 900 ,
conduct : 0.1 ,
reactions : {
"water" : { elem2 : null , elem1 : "hard_boiled_egg" , chance : 10 , tempMin : 80 }
}
} ;
elements . frozen _duck _egg = {
color : "#e0d3cf" ,
behavior : behaviors . POWDER ,
category : "food" ,
state : "solid" ,
temp : - 20 ,
tempHigh : 10 ,
stateHigh : "duck_egg" ,
breakInto : [ "calcium" , "hard_yolk" ] ,
burn : 50 ,
burnTime : 450 ,
state : "solid" ,
density : 900 ,
conduct : 0.1 ,
hidden : true ,
} ;
elements . duckling = {
color : [ "#f0eba8" , "#f0eba8" ] ,
behavior : [
"M2%1|M2%2|M2%1" ,
"M2%10|FX%5 AND CH:duck%0.1|M2%10" ,
"XX|M1%33|XX" ,
] ,
category : "life" ,
state : "solid" ,
egg : "duck_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 . barbecued _duck = {
color : [ "#a67d2d" , "#9c721f" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 55 ,
tempHigh : 600 ,
stateHigh : [ "ash" , "smoke" ] ,
isFood : true ,
hidden : true ,
}
elements . steamed _duck = {
color : [ "#e8cb7b" , "#d6bf7e" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 50 ,
tempHigh : 600 ,
stateHigh : [ "ash" , "smoke" ] ,
isFood : true ,
hidden : true ,
}
elements . smoked _duck = {
color : [ "#6b470e" , "#8f5b09" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 55 ,
tempHigh : 600 ,
stateHigh : [ "ash" , "smoke" ] ,
isFood : true ,
hidden : true ,
}
elements . cooked _duck = {
color : [ "#a38046" , "#b39652" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 40 ,
tempHigh : 600 ,
stateHigh : [ "ash" , "smoke" ] ,
hidden : true ,
} ;
elements . raw _duck = {
color : [ "#d6a587" , "#c99873" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
burnInto : "cooked_duck" ,
temp : 25 ,
tempHigh : 600 ,
stateHigh : [ "cooked_duck" ] ,
reactions : {
"smoke" : { elem1 : "smoked_duck" } ,
"steam" : { elem1 : "steamed_duck" } ,
"water" : { elem1 : "boiled_duck" , tempMin : 70 } ,
"nut_oil" : { elem1 : "fried_duck" , tempMin : 70 } ,
"charcoal" : { elem1 : "barbecued_duck" , tempMin : 70 } ,
"fire" : { elem1 : "barbecued_duck" }
}
} ;
elements . boiled _duck = {
color : [ "#e0d4a4" , "#e0d4a4" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
isFood : true ,
temp : 65 ,
tempHigh : 600 ,
stateHigh : [ "ash" , "smoke" ] ,
hidden : true ,
}
elements . fried _duck = {
color : [ "#c49543" , "#b88835" , "#b07b20" , "#996e23" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
isFood : true ,
temp : 90 ,
tempHigh : 600 ,
stateHigh : [ "ash" , "smoke" ] ,
hidden : true ,
}
// side note: i don't eat beef
elements . cow = {
color : [ "#292928" , "#332b23" , "#e0dfde" , "#f0edeb" ] ,
behavior : [
"M2%1|XX|M2%1" ,
"M2%10|XX|M2%10" ,
"XX|M1|XX" ,
] ,
category : "life" ,
state : "solid" ,
reactions : {
"petal" : { elem2 : null , chance : 0.2 , func : behaviors . FEEDPIXEL } ,
"grass" : { elem2 : null , chance : 0.1 , func : behaviors . FEEDPIXEL } ,
"grape" : { 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 } ,
"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 : "calf" ,
foodNeed : 10 ,
temp : 40 ,
tempHigh : 75 ,
stateHigh : "steak" ,
tempLow : - 18 ,
stateLow : "frozen_meat" ,
breakInto : "raw_beef" ,
burn : 85 ,
burnTime : 450 ,
state : "solid" ,
density : 1117 ,
conduct : 0.3 ,
cutInto : "raw_beef" ,
} ;
elements . calf = {
color : [ "#363535" , "#bdbdbd" ] ,
behavior : [
"M2%1|XX|M2%1" ,
"M2%10|FX%5 AND CH:cow%0.1|M2%10" ,
"XX|M1|XX" ,
] ,
category : "life" ,
state : "solid" ,
foodNeed : 20 ,
temp : 40 ,
tempHigh : 75 ,
stateHigh : "steak" ,
tempLow : - 18 ,
stateLow : "frozen_meat" ,
breakInto : "blood" ,
burn : 85 ,
burnTime : 450 ,
state : "solid" ,
density : 900 ,
conduct : 0.1 ,
reactions : {
"petal" : { elem2 : null , chance : 0.2 , func : behaviors . FEEDPIXEL } ,
"grass" : { elem2 : null , chance : 0.1 , func : behaviors . FEEDPIXEL } ,
"grape" : { 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 } ,
"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 . barbecued _steak = {
color : [ "#3b271a" , "#29180d" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 55 ,
tempHigh : 600 ,
stateHigh : [ "ash" , "smoke" ] ,
isFood : true ,
hidden : true ,
}
elements . smoked _beef = {
color : [ "#3b1911" , "#3b2719" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 55 ,
tempHigh : 600 ,
stateHigh : [ "ash" , "smoke" ] ,
isFood : true ,
hidden : true ,
}
elements . steak = {
color : [ "#a38046" , "#b39652" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 40 ,
tempHigh : 600 ,
stateHigh : [ "ash" , "smoke" ] ,
hidden : true ,
alias : "cooked_beef"
} ;
elements . raw _beef = {
color : [ "#ab5841" , "#ab322e" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
burnInto : "steak" ,
temp : 25 ,
2024-04-26 06:18:12 -04:00
tempHigh : 200 ,
stateHigh : "steak" ,
2024-04-12 09:36:56 -04:00
reactions : {
"smoke" : { elem1 : "smoked_beef" } ,
"charcoal" : { elem1 : "barbecued_beef" , tempMin : 70 } ,
"fire" : { elem1 : "barbecued_beef" }
}
} ;
elements . juice . reactions . milk = { elem1 : "fruit_milk" , elem2 : null , chance : 0.05 , func : function ( pixel1 , pixel2 ) {
let newrgb = interpolateRgb ( getRGB ( 'rgb(250,250,250)' ) , getRGB ( pixel2 . color ) , 0.25 ) ;
pixel1 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
} }
elements . juice . reactions . cream = { elem1 : "fruit_milk" , elem2 : null , chance : 0.05 , func : function ( pixel1 , pixel2 ) {
let newrgb = interpolateRgb ( getRGB ( 'rgb(250,250,250)' ) , getRGB ( pixel2 . color ) , 0.25 ) ;
pixel1 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
} }
elements . soda . reactions . soda = {
func : function ( pixel1 , pixel2 ) {
if ( pixel1 . color != pixel2 . color ) {
if ( Math . floor ( Math . random ( ) * 1000 ) == 1 ) {
let newrgb = interpolateRgb ( getRGB ( pixel1 . color ) , getRGB ( pixel2 . color ) , 0.5 ) ;
pixel1 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
pixel2 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
}
}
}
}
elements . juice . reactions . soda = {
chance : 70 ,
func : function ( pixel1 , pixel2 ) {
if ( pixel1 . color != pixel2 . color ) {
if ( Math . floor ( Math . random ( ) * 1000 ) == 1 ) {
let newrgb = interpolateRgb ( getRGB ( pixel1 . color ) , getRGB ( pixel2 . color ) , 0.5 ) ;
changePixel ( pixelMap [ pixel1 . x ] [ pixel1 . y ] , "soda" )
pixel1 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
pixel2 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
}
}
}
}
if ( ! elements . orange _juice . reactions ) { elements . orange _juice . reactions = { } }
elements . orange _juice . reactions . seltzer = { elem1 : "soda" , elem2 : "foam" , color1 : "#ffb319" }
elements . orange _juice . reactions . carbon _dioxide = { elem1 : "soda" , elem2 : "foam" , color1 : "#ffb319" }
elements . agar . reactions . soda = { elem1 : "jelly" , elem2 : null , chance : 0.05 , func : function ( pixel1 , pixel2 ) {
let newrgb = interpolateRgb ( getRGB ( 'rgb(250,250,250)' ) , getRGB ( pixel2 . color ) , 0.7 ) ;
pixel1 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
} }
elements . hard _jelly = {
color : "#c372b8" ,
behavior : behaviors . STURDYPOWDER ,
tempHigh : 200 ,
stateHigh : [ "smoke" , "sugar" ] ,
category : "food" ,
state : "solid" ,
density : 1245 ,
isFood : true ,
hidden : true ,
temp : 0
}
elements . jelly . stateLow = "hard_jelly"
elements . jelly . stateLowColorMultiplier = 1.2
elements . jelly . temp = 0
elements . nut . name = "peanut" ;
elements . nut _meat . name = "peanut_meat" ;
elements . nut _butter . name = "peanut_butter" ;
2024-04-26 06:18:12 -04:00
elements . spring _onion _leaves = {
color : "#519c2f" ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"ST:onion|M1|ST:onion" ,
] ,
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 : "food" ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
breakInto : "herb" ,
state : "solid" ,
density : 1050 ,
cutInto : "chopped_spring_onion" ,
}
elements . chopped _spring _onion = {
color : [ "#0f9912" , "#227d23" ] ,
behavior : behaviors . POWDER ,
category : "food" ,
tempHigh : 100 ,
stateHigh : "dead_plant" ,
burn : 65 ,
burnTime : 60 ,
burnInto : "dead_plant" ,
state : "solid" ,
density : 1050 ,
breakInto : "herb" ,
}
elements . spring _onion _seed = {
color : "#1a0e02" ,
tick : function ( pixel ) {
if ( isEmpty ( pixel . x , pixel . y + 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y + 1 ) ;
}
else {
if ( Math . random ( ) < 0.2 && 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" ) ;
}
}
if ( isEmpty ( pixel . x , pixel . y - 2 ) && isEmpty ( pixel . x , pixel . y - 1 ) && isEmpty ( pixel . x + 1 , pixel . y - 1 ) && isEmpty ( pixel . x - 1 , pixel . y - 1 ) && isEmpty ( pixel . x + 1 , pixel . y ) && isEmpty ( pixel . x - 1 , pixel . y ) ) {
createPixel ( "onion" , pixel . x , pixel . y - 1 ) ;
createPixel ( "onion" , pixel . x + 1 , pixel . y - 1 ) ;
createPixel ( "onion" , pixel . x - 1 , pixel . y - 1 ) ;
createPixel ( "onion" , pixel . x , pixel . y - 2 ) ;
createPixel ( "onion" , pixel . x + 1 , pixel . y ) ;
createPixel ( "onion" , pixel . x - 1 , pixel . y ) ;
if ( isEmpty ( pixel . x + 1 , pixel . y - 3 ) && isEmpty ( pixel . x - 1 , pixel . y - 3 ) ) {
createPixel ( "spring_onion_leaves" , pixel . x + 1 , pixel . y - 3 ) ;
createPixel ( "spring_onion_leaves" , pixel . x - 1 , pixel . y - 3 ) ;
if ( isEmpty ( pixel . x + 1 , pixel . y - 4 ) && isEmpty ( pixel . x - 1 , pixel . y - 4 ) ) {
createPixel ( "spring_onion_leaves" , pixel . x + 1 , pixel . y - 4 ) ;
createPixel ( "spring_onion_leaves" , pixel . x - 1 , pixel . y - 4 ) ;
if ( isEmpty ( pixel . x + 1 , pixel . y - 5 ) && isEmpty ( pixel . x - 1 , pixel . y - 5 ) ) {
createPixel ( "spring_onion_leaves" , pixel . x + 1 , pixel . y - 5 ) ;
createPixel ( "spring_onion_leaves" , pixel . x - 1 , pixel . y - 5 ) ;
}
}
changePixel ( pixel , "onion" ) ;
}
}
}
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 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|M1|XX" ,
] ,
}
elements . stainless _steel = {
color : "#91999e" ,
behavior : behaviors . WALL ,
tempHigh : 1455.5 ,
category : "solids" ,
density : 7850 ,
conduct : 0.42 ,
hardness : 0.8
}
elements . rambutan _wood = {
color : "#635418" ,
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" ] ,
hidden : true
}
elements . rambutan _branch = {
color : "#635418" ,
behavior : [
"CR:rambutan_leaves,rambutan_branch%2|CR:rambutan_leaves,rambutan_branch%2|CR:rambutan_leaves,rambutan_branch%2" ,
"XX|XX|XX" ,
"XX|XX|XX" ,
] ,
tempHigh : 100 ,
stateHigh : "rambutan_wood" ,
tempLow : - 30 ,
stateLow : "rambutan_wood" ,
category : "life" ,
burn : 40 ,
burnTime : 50 ,
burnInto : [ "sap" , "ember" , "charcoal" ] ,
hidden : true ,
state : "solid" ,
density : 1500 ,
hardness : 0.15 ,
breakInto : [ "sap" , "sawdust" ] ,
}
elements . rambutan _leaves = {
color : "#6fa611" ,
behavior : [
"XX|XX|XX" ,
"XX|XX|XX" ,
"XX|CR:unripe_rambutan%0.1|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 ,
hidden : true
}
elements . unripe _rambutan = {
color : [ "#87c718" , "#8ac91c" , "#94de1d" ] ,
behavior : [
"XX|ST:rambutan_leaves|XX" ,
"XX|CH:rambutan%1|XX" ,
"M2|M1|M2" ,
] ,
category : "food" ,
tempHigh : 100 ,
stateHigh : [ "dead_plant" , "steam" ] ,
burn : 65 ,
burnTime : 60 ,
cutInto : "cut_rambutan" ,
state : "solid" ,
density : 1050 ,
2024-05-10 21:17:53 -04:00
breakInto : "rambutan_juice"
2024-04-26 06:18:12 -04:00
}
elements . rambutan = {
color : [ "#d64242" , "#f23333" , "#cc3737" , "#b1db69" ] ,
behavior : behaviors . POWDER ,
category : "food" ,
tempHigh : 100 ,
stateHigh : [ "sugar" , "steam" ] ,
burn : 65 ,
burnTime : 60 ,
state : "solid" ,
density : 1050 ,
cutInto : "cut_rambutan" ,
2024-05-10 21:17:53 -04:00
breakInto : "rambutan_juice"
2024-04-26 06:18:12 -04:00
}
elements . cut _rambutan = {
color : "#f5f1bf" ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
tempHigh : 100 ,
stateHigh : [ "sugar" , "steam" ] ,
burn : 65 ,
burnTime : 60 ,
state : "solid" ,
density : 1050 ,
hidden : true ,
freezeDryInto : "freeze_dried_fruits" ,
freezeDryIntoColor : "#a19f3b" ,
2024-05-10 21:17:53 -04:00
breakInto : "rambutan_juice"
2024-04-26 06:18:12 -04:00
}
elements . rambutan _seed = {
color : "#2b1807" ,
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" ) ;
}
}
if ( isEmpty ( pixel . x , pixel . y - 1 ) ) {
movePixel ( pixel , pixel . x , pixel . y - 1 ) ;
createPixel ( Math . random ( ) > 0.5 ? "rambutan_wood" : "rambutan_branch" , pixel . x , pixel . y + 1 ) ;
}
}
else if ( pixel . age > 1000 ) {
changePixel ( pixel , "rambutan_wood" ) ;
}
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 ,
cooldown : defaultCooldown ,
seed : true ,
behavior : [
"XX|XX|XX" ,
"XX|FX%10|XX" ,
"XX|M1|XX" ,
] ,
} ;
2024-05-10 21:17:53 -04:00
elements . rambutan _juice = {
color : "#f7f4cb" ,
onMix : function ( pixel ) {
if ( shiftDown ) {
if ( Math . random ( ) < 0.2 ) {
changePixel ( pixel , "juice" )
pixel . color = pixelColorPick ( pixel , "#f7f4cb" )
}
}
} ,
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 ,
hidden : true ,
tempLow : 0 ,
} ;
eLists . JUICEMIXABLE . push ( "rambutan_juice" ) ;
2024-04-26 06:18:12 -04:00
elements . barbecued _shrimp = {
color : [ "#bf743b" , "#b57026" , "#8f5e29" , "#a87b11" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 55 ,
tempHigh : 600 ,
stateHigh : [ "ash" , "smoke" ] ,
isFood : true ,
hidden : true ,
}
elements . steamed _shrimp = {
color : [ "#e8dab2" , "#e2cea6" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 50 ,
tempHigh : 600 ,
stateHigh : [ "ash" , "smoke" ] ,
isFood : true ,
hidden : true ,
}
elements . smoked _shrimp = {
color : [ "#78542e" , "#6b4b26" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 55 ,
tempHigh : 600 ,
stateHigh : [ "ash" , "smoke" ] ,
isFood : true ,
hidden : true ,
}
elements . cooked _shrimp = {
color : [ "#ff7f50" , "#ffa07a" , "#ffb3a7" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 40 ,
tempHigh : 600 ,
stateHigh : [ "ash" , "smoke" ] ,
hidden : true ,
} ;
elements . raw _shrimp = {
color : [ "#f0e0d6" , "#e8d9ce" , "#cdb7b5" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
burnInto : "cooked_shrimp" ,
temp : 25 ,
tempHigh : 600 ,
stateHigh : "cooked_shrimp" ,
reactions : {
"batter" : { elem1 : "battered_shrimp" , elem2 : null } ,
"smoke" : { elem1 : "smoked_shrimp" } ,
"steam" : { elem1 : "steamed_shrimp" } ,
"water" : { elem1 : "boiled_shrimp" , tempMin : 70 } ,
"nut_oil" : { elem1 : "fried_shrimp" , tempMin : 70 } ,
"charcoal" : { elem1 : "barbecued_shrimp" , tempMin : 70 } ,
"fire" : { elem1 : "barbecued_shrimp" }
}
} ;
elements . boiled _shrimp = {
color : [ "#ffd180" , "#ffc978" , "#ffbe70" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
isFood : true ,
temp : 65 ,
tempHigh : 600 ,
stateHigh : [ "ash" , "smoke" ] ,
hidden : true ,
}
elements . battered _shrimp = {
color : [ "#f2e7d5" , "#eae0cd" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 25 ,
tempHigh : 125 ,
stateHigh : "cooked_shrimp" ,
reactions : {
"crumb" : { color1 : "#123456" , elem2 : null } ,
"nut_oil" : { elem1 : "tempura" , tempMin : 60 }
} ,
hidden : true ,
} ;
elements . tempura = {
color : [ "#ff8c00" , "#ff8c00" , "#ffab00" , "#ffab00" ] ,
behavior : behaviors . STURDYPOWDER ,
category : "food" ,
state : "solid" ,
temp : 40 ,
tempHigh : 600 ,
stateHigh : [ "ash" , "smoke" ] ,
breakInto : "crumb" ,
isFood : true ,
density : 100 ,
hidden : true ,
} ;
elements . grape . stateHigh = "raisin"
elements . grape . tempHigh = 65
elements . raisin = {
color : [ "#522D68" , "#3B194D" , "#381845" , "2B194D" ] ,
behavior : [
"XX|ST:vine|XX" ,
"ST:vine|XX|ST:vine" ,
"M2|M1|M2" ,
] ,
reactions : {
"radiation" : { elem1 : "explosion" , chance : 0.1 , color1 : "#291824" } ,
"rock" : { elem1 : "juice" , chance : 0.1 , color1 : "#291824" } ,
"concrete" : { elem1 : "juice" , chance : 0.1 , color1 : "#291824" } ,
"basalt" : { elem1 : "juice" , chance : 0.1 , color1 : "#291824" } ,
"limestone" : { elem1 : "juice" , chance : 0.1 , color1 : "#291824" } ,
"tuff" : { elem1 : "juice" , chance : 0.1 , color1 : "#291824" } ,
"water" : { elem2 : "juice" , chance : 0.005 , color2 : "#291824" } ,
"sugar_water" : { elem2 : "juice" , chance : 0.025 , color2 : "#291824" } ,
"acid" : { elem1 : "juice" , color1 : "#291824" } ,
"acid_gas" : { elem1 : "juice" , color1 : "#291824" } ,
} ,
innerColor : "#cc7492" ,
tempHigh : 256 ,
stateHigh : [ "steam" , "sugar" ] ,
category : "food" ,
state : "solid" ,
density : 1154 ,
breakInto : "juice" ,
breakIntoColor : "#291824" ,
ignoreAir : true ,
isFood : true
}
2024-05-10 21:17:53 -04:00
elements . fruit _slush = {
color : "#ed93a4" ,
behavior : behaviors . LIQUID ,
reactions : {
"dirt" : { elem1 : null , elem2 : "mud" } ,
"sand" : { elem1 : null , elem2 : "wet_sand" } ,
"uranium" : { elem1 : "dirty_water" , chance : 0.25 } ,
} ,
temp : - 5 ,
tempHigh : 18 ,
tempLow : - 20 ,
stateLow : "juice_ice" ,
stateHigh : "juice" ,
category : "food" ,
state : "liquid" ,
density : 95 ,
viscosity : 100 ,
hidden : true
}
2024-04-26 06:18:12 -04:00
// things to mix: juice, water, seltzer, sugar water, soda, juice, milk, cream,
// juice, milk, chocolate milk, fruit milk, eggnog, nut milk, alcohol, wine, tea,
// tea, coffee, honey, caramel, vanilla essence, peppermint tea, sugar, yogurt,
// whipped cream, chocolate, jam
// juice mixing
for ( let juicei = 0 ; juicei < eLists . JUICEMIXABLE . length ; juicei ++ ) {
2024-05-10 21:17:53 -04:00
elem = eLists . JUICEMIXABLE [ juicei ] ;
2024-04-26 06:18:12 -04:00
// juice with juice
for ( let juicej = 0 ; juicej < eLists . JUICEMIXABLE . length ; juicej ++ ) {
elem2 = eLists . JUICEMIXABLE [ juicej ] ;
if ( elem != elem2 ) {
if ( ! elements [ elem ] . reactions ) { chance : 1 , elements [ elem ] . reactions = { } }
elements [ elem ] . reactions [ elem2 ] = { func : function ( pixel1 , pixel2 ) {
let newrgb = interpolateRgb ( getRGB ( pixel1 . color ) , getRGB ( pixel2 . color ) , 0.5 ) ;
changePixel ( pixel1 , "juice" )
pixel1 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
pixel2 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
// console.log("juice mixed")
} }
}
}
// juice with water
if ( ! elements [ elem ] . reactions ) { elements [ elem ] . reactions = { } }
elements [ elem ] . reactions . water = { chance : 1 , func : function ( pixel1 , pixel2 ) {
let newrgb = interpolateRgb ( getRGB ( pixel1 . color ) , getRGB ( "rgb(255,255,255)" ) , 0.2 ) ;
if ( ( ( newrgb . r + newrgb . g + newrgb . b ) / 3 ) > 215 ) {
newrgb = getRGB ( pixel1 . color ) ;
}
changePixel ( pixel1 , "juice" )
changePixel ( pixel2 , "juice" )
pixel1 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
pixel2 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
} }
// juice with milk
if ( ! elements [ elem ] . reactions ) { elements [ elem ] . reactions = { } }
elements [ elem ] . reactions . milk = { chance : 1 , func : function ( pixel1 , pixel2 ) {
let newrgb = interpolateRgb ( getRGB ( pixel1 . color ) , getRGB ( pixel2 . color ) , 0.2 ) ;
changePixel ( pixel1 , "fruit_milk" )
changePixel ( pixel2 , "fruit_milk" )
pixel1 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
pixel2 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
} }
// juice with coconut milk
if ( ! elements [ elem ] . reactions ) { elements [ elem ] . reactions = { } }
elements [ elem ] . reactions . coconut _milk = { chance : 1 , func : function ( pixel1 , pixel2 ) {
let newrgb = interpolateRgb ( getRGB ( pixel1 . color ) , getRGB ( pixel2 . color ) , 0.2 ) ;
changePixel ( pixel1 , "fruit_milk" )
changePixel ( pixel2 , "fruit_milk" )
pixel1 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
pixel2 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
} }
// juice with nut milk
if ( ! elements [ elem ] . reactions ) { elements [ elem ] . reactions = { } }
elements [ elem ] . reactions . nut _milk = { chance : 1 , func : function ( pixel1 , pixel2 ) {
let newrgb = interpolateRgb ( getRGB ( pixel1 . color ) , getRGB ( pixel2 . color ) , 0.2 ) ;
changePixel ( pixel1 , "fruit_milk" )
changePixel ( pixel2 , "fruit_milk" )
pixel1 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
pixel2 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
} }
// juice with cream
if ( ! elements [ elem ] . reactions ) { elements [ elem ] . reactions = { } }
elements [ elem ] . reactions . cream = { chance : 1 , func : function ( pixel1 , pixel2 ) {
let newrgb = interpolateRgb ( getRGB ( pixel1 . color ) , getRGB ( pixel2 . color ) , 0.2 ) ;
changePixel ( pixel1 , "fruit_milk" )
changePixel ( pixel2 , "fruit_milk" )
pixel1 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
pixel2 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
} }
// juice with fruit milk
if ( ! elements [ elem ] . reactions ) { elements [ elem ] . reactions = { } }
elements [ elem ] . reactions . fruit _milk = { chance : 1 , func : function ( pixel1 , pixel2 ) {
let newrgb = interpolateRgb ( getRGB ( pixel1 . color ) , getRGB ( pixel2 . color ) , 0.2 ) ;
changePixel ( pixel1 , "fruit_milk" )
changePixel ( pixel2 , "fruit_milk" )
pixel1 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
pixel2 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
} }
}
2024-05-10 21:17:53 -04:00
iceelem = elem + "_ice"
// ice slush
elements [ elem ] . stateLowColorMultiplier = 1.2 ;
elements [ elem ] . tempLow = 10 ;
elements . fruit _slush . stateHighColorMultiplier = 0.83333333333 ;
elements . fruit _slush . stateLowColorMultiplier = 1.2 ;
elements . juice _ice . stateHighColorMultiplier = 0.83333333333 ;
elements . juice _ice . stateHigh = "fruit_slush"
elements . juice _ice . tempHigh = - 20
2025-02-05 20:08:44 -05:00
if ( elements [ iceelem ] ) {
elements [ iceelem ] . stateHigh = "fruit_slush"
elements [ iceelem ] . tempHigh = - 20
}
2024-05-10 21:17:53 -04:00
2024-04-26 06:18:12 -04:00
// fruit milk with milk
2025-02-05 20:08:44 -05:00
elements . fruit _milk . reactions ? ? = { } ; elements . fruit _milk . reactions . milk = { chance : 1 , func : function ( pixel1 , pixel2 ) {
2024-04-26 06:18:12 -04:00
let newrgb = interpolateRgb ( getRGB ( pixel1 . color ) , getRGB ( pixel2 . color ) , 0.2 ) ;
if ( ( ( newrgb . r + newrgb . g + newrgb . b ) / 3 ) < 230 ) {
changePixel ( pixel1 , "fruit_milk" )
changePixel ( pixel2 , "fruit_milk" )
pixel1 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
pixel2 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
} else if ( Math . random ( ) < 0.05 ) {
changePixel ( pixel1 , "fruit_milk" )
changePixel ( pixel2 , "fruit_milk" )
pixel1 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
pixel2 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
}
}
}
// fruit milk with nut milk
elements . fruit _milk . reactions . nut _milk = { chance : 1 , func : function ( pixel1 , pixel2 ) {
let newrgb = interpolateRgb ( getRGB ( pixel1 . color ) , getRGB ( pixel2 . color ) , 0.2 ) ;
if ( ( ( newrgb . r + newrgb . g + newrgb . b ) / 3 ) < 230 ) {
changePixel ( pixel1 , "fruit_milk" )
changePixel ( pixel2 , "fruit_milk" )
pixel1 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
pixel2 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
} else if ( Math . random ( ) < 0.05 ) {
changePixel ( pixel1 , "fruit_milk" )
changePixel ( pixel2 , "fruit_milk" )
pixel1 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
pixel2 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
}
}
}
// fruit milk with coconut milk
elements . fruit _milk . reactions . coconut _milk = { chance : 1 , func : function ( pixel1 , pixel2 ) {
let newrgb = interpolateRgb ( getRGB ( pixel1 . color ) , getRGB ( pixel2 . color ) , 0.2 ) ;
if ( ( ( newrgb . r + newrgb . g + newrgb . b ) / 3 ) < 230 ) {
changePixel ( pixel1 , "fruit_milk" )
changePixel ( pixel2 , "fruit_milk" )
pixel1 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
pixel2 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
} else if ( Math . random ( ) < 0.05 ) {
changePixel ( pixel1 , "fruit_milk" )
changePixel ( pixel2 , "fruit_milk" )
pixel1 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
pixel2 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
}
}
}
// fruit milk with cream
elements . fruit _milk . reactions . cream = { chance : 1 , func : function ( pixel1 , pixel2 ) {
let newrgb = interpolateRgb ( getRGB ( pixel1 . color ) , getRGB ( pixel2 . color ) , 0.2 ) ;
if ( ( ( newrgb . r + newrgb . g + newrgb . b ) / 3 ) < 230 ) {
changePixel ( pixel1 , "fruit_milk" )
changePixel ( pixel2 , "fruit_milk" )
pixel1 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
pixel2 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
} else if ( Math . random ( ) < 0.05 ) {
changePixel ( pixel1 , "fruit_milk" )
changePixel ( pixel2 , "fruit_milk" )
pixel1 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
pixel2 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
}
}
}
// fruit milk with fruit milk
elements . fruit _milk . reactions . fruit _milk = { chance : 1 , func : function ( pixel1 , pixel2 ) {
let newrgb = interpolateRgb ( getRGB ( pixel1 . color ) , getRGB ( pixel2 . color ) , 0.2 ) ;
changePixel ( pixel1 , "fruit_milk" )
changePixel ( pixel2 , "fruit_milk" )
pixel1 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
pixel2 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
}
}
2024-05-10 21:17:53 -04:00
// fruit milk onMix
elements . fruit _milk . onMix = function ( pixel ) {
let num = Math . floor ( Math . random ( ) * 4 ) ;
let x = pixel . x + adjacentCoords [ num ] [ 0 ] ;
let y = pixel . y + adjacentCoords [ num ] [ 1 ] ;
if ( ! isEmpty ( x , y ) && ! outOfBounds ( x , y ) ) {
let pixel2 = pixelMap [ x ] [ y ] ;
if ( pixel . color != pixel2 . color && pixel2 . element == "fruit_milk" ) {
let condition ;
if ( shiftDown == 0 ) {
condition = ( Math . floor ( Math . random ( ) * 2 ) == 1 ) ;
} else {
condition = true ;
}
if ( condition ) {
let newrgb = interpolateRgb ( getRGB ( pixel . color ) , getRGB ( pixel2 . color ) , 0.5 ) ;
pixel . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
pixel2 . color = ` rgb( ${ parseInt ( newrgb . r ) } , ${ parseInt ( newrgb . g ) } , ${ parseInt ( newrgb . b ) } ) ` ;
}
}
}
}