sandboxels/mods/flowers_and_forests.js

469 lines
14 KiB
JavaScript
Raw Normal View History

/* Flowers And Forests
Created by Pixelegend4 and SquareScreamYT
*/
elements.nutmeg = {
color: "#b86d42",
behavior: behaviors.POWDER,
category: "land",
state: "solid",
breakInto: "nutmeg_ground",
};
elements.nutmeg_drink = {
color: "#b86d42",
behavior: behaviors.LIQUID,
category: "land",
state: "solid",
reactions: {
"baked_batter": { elem1: "nutmeg_cake", elem2: "nutmeg_cake" },
},
};
elements.nutmeg_cake = {
color: "#b86d42",
behavior: behaviors.SOLID,
category: "land",
state: "solid",
};
elements.nutmeg_ground = {
color: "#804d2f",
behavior: behaviors.POWDER,
category: "land",
state: "solid",
reactions: {
"water": { elem1: "nutmeg_drink", elem2: "nutmeg_drink" },
},
};
elements.cactus = {
color: "#35ff08",
behavior: behaviors.SOLID,
category: "land",
state: "solid",
reactions: {
"human": { elem1: "blood", elem2: "blood" },
"fly": { elem1: "blood", elem2: "blood" },
"bee": { elem1: "honey", elem2: "honey" },
},
};
elements.blue_cactus = {
color: "#0033FF",
behavior: behaviors.SOLID,
category: "land",
state: "solid",
reactions: {
"human": { elem1: null, elem2: "blood" },
"fly": { elem1: null, elem2: "blood" },
"bee": { elem1: null, elem2: "honey" },
},
};
elements.sycamore_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"],
hidden: true
}
elements.sycamore_branch = {
color: "#632e1f",
behavior: [
"CR:sycamore_leaves,sycamore_branch%2|CR:sycamore_leaves,sycamore_branch%2|CR:sycamore_leaves,sycamore_branch%2",
"XX|XX|XX",
"XX|XX|XX",
],
tempHigh: 100,
stateHigh: "sycamore_wood",
tempLow: -30,
stateLow: "sycamore_wood",
category: "life",
burn: 40,
burnTime: 50,
burnInto: ["sap","ember","charcoal"],
hidden: true,
state: "solid",
density: 1500,
hardness: 0.15,
breakInto: ["sap","sawdust"],
};
elements.sycamore_leaves = {
color: ["#00d404","#0ec911","#109e12"],
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.sycamore_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 ? "sycamore_wood" : "sycamore_branch",pixel.x,pixel.y+1);
}
}
else if (pixel.age > 1000) {
changePixel(pixel,"sycamore_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",
],
};
worldgentypes.fields = {
layers: [
[0.75, "dirt"],
[0.05, "rock"],
[0, "basalt"],
],
decor: [
["sapling", 0.04, 20],
["grass", 0.25, 30],
["grass", 0.25, 30],
["bee", 0.02, 25],
["cloud", 1, 2],
],
baseHeight: 0.25
}
worldgentypes.sycamore_forest = {
layers: [
[0.75, "dirt"],
[0.05, "dirt"],
],
decor: [
["sycamore_seed", 0.04, 20],
["sycamore_seed", 0.10, 20],
["sycamore_seed", 0.13, 20],
["grass", 0.25, 30],
["cloud", 1, 2],
],
baseHeight: 0.25
};
elements.onion = {
color: "#f5b042",
behavior: behaviors.POWDER,
category: "land",
state: "solid",
};
elements.palm_tree_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("palm_tree_stem",pixel.x,pixel.y+1);
pixel.height++
}
}
else if (pixel.age > 150 && pixel.height > 6 && Math.random() < 0.1) {
changePixel(pixel,"palm_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.palm_tree_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.palm_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 ? "palm_leaves" : "palm_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 ? "palm_leaves" : "palm_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 ? "palm_leaves" : "palm_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 ? "palm_leaves" : "palm_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 ? "palm_leaves" : "palm_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 ? "palm_leaves" : "palm_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 ? "palm_leaves" : "palm_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 ? "palm_leaves" : "palm_leaves",pixel.x-4,pixel.y+1);
pixel.leftleaves++
}
}
pixel.age++;
doDefaults(pixel);
},
}
elements.palm_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.fruit_vine = {
color: "#00df00",
behavior: [
"ST:wood|ST:wood|ST:wood",
"ST:wood AND CR:grape%0.01|XX|ST:wood AND CR:grape%0.01",
"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.fruit_vine_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("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("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("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("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("fruit_vine",pixel.x+1,pixel.y+1);
}
/*if (pixelMap[pixel.x+1][pixel.y-1].element !== "wood" && pixelMap[pixel.x-1][pixel.y-1].element !== "wood") {
movePixel(pixel,pixel.x,pixel.y-1);
createPixel("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("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("fruit_vine",pixel.x+1,pixel.y+1);
}
}*/
}
else if (pixel.age > 400 && Math.random() < 0.1) {
changePixel(pixel,"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,fruit_vine|ST:wood,fruit_vine|ST:wood,fruit_vine",
"ST:wood,fruit_vine|XX|ST:wood,fruit_vine",
"ST:wood,fruit_vine|M1|ST:wood,fruit_vine",
],
};