// CreateTree function made by nousernamefound. function createTree(treeName, leafColor, woodName){ let woodColor = elements[woodName].color elements[treeName + "_sapling"] = { color: leafColor, tick: function(pixel) { if (!tryMove(pixel,pixel.x,pixel.y+1)) { 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 && (eLists.SOIL.indexOf(dirtPixel.element) !== -1 || dirtPixel.element === "grass")) { changePixel(dirtPixel,"root"); } } if (isEmpty(pixel.x,pixel.y-1)) { if (!pixel.wc) { pixel.wc = woodColor; pixel.lc = leafColor; } movePixel(pixel,pixel.x,pixel.y-1); createPixel(Math.random() > 0.5 ? woodName : (treeName + "_branch"),pixel.x,pixel.y+1); pixelMap[pixel.x][pixel.y+1].wc = pixel.wc; pixelMap[pixel.x][pixel.y+1].lc = pixel.lc; pixelMap[pixel.x][pixel.y+1].color = pixelColorPick(pixelMap[pixel.x][pixel.y+1], pixel.wc); } } else if (pixel.age > 1000 && Math.random() < 0.05) { changePixel(pixel,woodName); pixel.color = pixelColorPick(pixel, pixel.wc); } 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, } elements[treeName + "_branch"] = { color: woodColor, tick: function(pixel) { if (!pixel.burning) { if (!pixel.lc) { pixel.lc = leafColor } if (!pixel.wc) { pixel.wc = woodColor } if (isEmpty(pixel.x-1,pixel.y-1) && Math.random() < 0.02) { if (Math.random() < 0.5) { createPixel("plant",pixel.x-1,pixel.y-1); pixelMap[pixel.x-1][pixel.y-1].color = pixelColorPick(pixelMap[pixel.x-1][pixel.y-1], pixel.lc); } else { createPixel(treeName + "_branch",pixel.x-1,pixel.y-1); pixelMap[pixel.x-1][pixel.y-1].color = pixelColorPick(pixelMap[pixel.x-1][pixel.y-1], pixel.wc); pixelMap[pixel.x-1][pixel.y-1].wc = pixel.wc; pixelMap[pixel.x-1][pixel.y-1].lc = pixel.lc; } } if (isEmpty(pixel.x+1,pixel.y-1) && Math.random() < 0.02) { if (Math.random() < 0.5) { createPixel("plant",pixel.x+1,pixel.y-1); pixelMap[pixel.x+1][pixel.y-1].color = pixelColorPick(pixelMap[pixel.x+1][pixel.y-1], pixel.lc); } else { createPixel(treeName + "_branch",pixel.x+1,pixel.y-1); pixelMap[pixel.x+1][pixel.y-1].color = pixelColorPick(pixelMap[pixel.x+1][pixel.y-1], pixel.wc); pixelMap[pixel.x+1][pixel.y-1].wc = pixel.wc; pixelMap[pixel.x+1][pixel.y-1].lc = pixel.lc; } } if (isEmpty(pixel.x,pixel.y-1) && Math.random() < 0.02) { if (Math.random() < 0.75) { createPixel("plant",pixel.x,pixel.y-1); pixelMap[pixel.x][pixel.y-1].color = pixelColorPick(pixelMap[pixel.x][pixel.y-1], pixel.lc); } else { createPixel(treeName + "_branch",pixel.x,pixel.y-1); pixelMap[pixel.x][pixel.y-1].color = pixelColorPick(pixelMap[pixel.x][pixel.y-1], pixel.wc); pixelMap[pixel.x][pixel.y-1].wc = pixel.wc; pixelMap[pixel.x][pixel.y-1].lc = pixel.lc; } } } doDefaults(pixel); }, movable: false, tempHigh: 100, stateHigh: woodName, tempLow: -30, stateLow: woodName, category: "life", burn: 2, burnTime: 300, burnInto: ["sap","ember","charcoal","smoke"], hidden: true, state: "solid", density: 1500, hardness: 0.15, breakInto: ["sap","sawdust"], seed: treeName + "_sapling", forceSaveColor: true } } elements.red_wood = { density: 450, burnTime: 100, burn: 15, color: "#D4381E", category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.7, // A highly durable wood breakInto: "sawdust", burnInto: "ash" }; elements.pine_wood = { density: 550, burnTime: 125, burn: 20, color: ["#D59F71", "#BC7852", "B46F4C", "#D59F71"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.4, // Medium hardness breakInto: "sawdust", burnInto: "ash" }; elements.oak = { density: 700, burnTime: 150, burn: 30, color: ["#ECCCAC", "C2965F", "D29A67", "B07C4F", "CAA06E"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.8, // Exceptionally hard and durable breakInto: "sawdust", burnInto: "ash" }; elements.birch = { density: 670, burnTime: 175, burn: 25, color: ["#FFFFFF", "#000000", "#FFFFFF"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.6, // Relatively hard breakInto: "sawdust", burnInto: "ash" }; elements.cherry_wood = { density: 400, burnTime: 100, burn: 10, color: ["#8E3D27", "#A44B2B", "#883B29"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.3, // Relatively soft breakInto: "sawdust", burnInto: "ash" }; elements.maple_wood = { density: 600, burnTime: 175, burn: 25, color: ["#DAA520", "#C68E17", "#FFD700"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.7, // Durable and dense breakInto: "sawdust", burnInto: "ash" }; elements.walnut_wood = { density: 750, burnTime: 225, burn: 30, color: ["#5A4522", "#3E2E1F", "#8B5A2B"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.9, // Extremely hard and dense breakInto: "sawdust", burnInto: "ash" }; elements.mahogany = { density: 800, burnTime: 250, burn: 35, color: ["#C04000", "#7B3F00", "#88441C"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.85, // Very hard and resistant to decay breakInto: "sawdust", burnInto: "ash" }; elements.cedar = { density: 480, burnTime: 150, burn: 20, color: ["#B8860B", "#CD853F", "#8B4513"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.5, // Moderately hard and lightweight breakInto: "sawdust", burnInto: "ash" }; elements.ash_wood = { density: 620, burnTime: 100, burn: 25, color: ["#A52A2A", "#D2691E", "#8B4513"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.6, // Hardwood with good shock resistance breakInto: "sawdust", burnInto: "ash" }; elements.poplar_wood = { density: 420, burnTime: 120, burn: 15, color: ["#9E8040", "#BEBD7F", "#D7D4BB"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.4, // Softwood with low density breakInto: "sawdust", burnInto: "ash" }; elements.fir_wood = { density: 560, burnTime: 130, burn: 20, color: ["#B4CDCD", "#8B9CA9", "#CED1D9"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.5, // Medium hardness and lightweight breakInto: "sawdust", burnInto: "ash" }; elements.teak = { density: 660, burnTime: 180, burn: 30, color: ["#B5651D", "#704214", "#8B4513"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.7, // High natural oil content and durability breakInto: "sawdust", burnInto: "ash" }; elements.spruce = { density: 480, burnTime: 110, burn: 15, color: ["#8B4513", "#B8860B", "#CD853F"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.5, // Moderately hard and lightweight breakInto: "sawdust", burnInto: "ash" }; elements.cypress_wood = { density: 520, burnTime: 140, burn: 20, color: ["#827A68", "#6B4226", "#A0522D"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.6, // Medium hardness with good decay resistance breakInto: "sawdust", burnInto: "ash" }; elements.beech_wood = { density: 670, burnTime: 160, burn: 25, color: ["#F0DC82", "#C0C0C0", "#9C661F"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.7, // Hardwood with good strength and wear resistance breakInto: "sawdust", burnInto: "ash" }; elements.sapele = { density: 670, burnTime: 150, burn: 25, color: ["#8B4513", "#FF4500", "#CD853F"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.8, // Hardwood with good stability and workability breakInto: "sawdust", burnInto: "ash" }; elements.pear_wood = { density: 670, burnTime: 160, burn: 20, color: ["#FFD700", "#CD853F", "#FF6347"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.6, // Hardwood with fine grain and smooth texture breakInto: "sawdust", burnInto: "ash" }; elements.hickory = { density: 800, burnTime: 200, burn: 30, color: ["#664C28", "#8B6914", "#8B4513"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.9, // Extremely hard and dense breakInto: "sawdust", burnInto: "ash" }; elements.sycamore = { density: 530, burnTime: 140, burn: 20, color: ["#F4A460", "#F0E68C", "#A0522D"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.5, // Medium hardness and lightweight breakInto: "sawdust", burnInto: "ash" }; elements.willow_wood = { density: 380, burnTime: 100, burn: 10, color: ["#C19A6B", "#8B4513", "#CD853F"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.3, // Softwood with low density breakInto: "sawdust", burnInto: "ash" }; elements.zebra_wood = { density: 800, burnTime: 220, burn: 30, color: ["#F0DC82", "#8B4513", "#FFD700"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.9, // Extremely hard and dense breakInto: "sawdust", burnInto: "ash" }; elements.basswood = { density: 410, burnTime: 110, burn: 15, color: ["#D2B48C", "#DEB887", "#F5F5DC"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.4, // Softwood with low density breakInto: "sawdust", burnInto: "ash" }; elements.larch_wood = { density: 590, burnTime: 130, burn: 20, color: ["#C9AE5D", "#E0C49D", "#9C661F"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.6, // Medium hardness with good durability breakInto: "sawdust", burnInto: "ash" }; elements.silver_maple = { density: 560, burnTime: 140, burn: 25, color: ["#C0C0C0", "#D3D3D3", "#BEBEBE"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.5, // Moderate hardness and lightweight breakInto: "sawdust", burnInto: "ash" }; elements.balsam_fir = { density: 460, burnTime: 120, burn: 15, color: ["#B4CDCD", "#8B9CA9", "#CED1D9"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.4, // Softwood with moderate hardness breakInto: "sawdust", burnInto: "ash" }; elements.elm_wood = { density: 560, burnTime: 140, burn: 20, color: ["#8B4513", "#228B22", "#CD5C5C"], category: "solids", behavior: behaviors.WALL, state: "solid", hardness: 0.6, // Medium hardness and lightweight breakInto: "sawdust", burnInto: "ash", }; createTree("red_wood", "#2E6E4E", "red_wood"); createTree("pine", "#D59F71", "pine_wood"); createTree("oak", "#ECCCAC", "oak"); createTree("birch", "#FFFFFF", "birch"); createTree("cherry_blossom", "#8E3D27", "cherry_wood"); createTree("maple", "#DAA520", "maple_wood"); createTree("walnut", "#5A4522", "walnut_wood"); createTree("mahogany", "#C04000", "mahogany"); createTree("cedar", "#B8860B", "cedar"); createTree("ash_wood", "#A52A2A", "ash_wood"); createTree("poplar_wood", "#9E8040", "poplar_wood"); createTree("fir_wood", "#B4CDCD", "fir_wood"); createTree("teak", "#B5651D", "teak"); createTree("spruce", "#8B4513", "spruce"); createTree("cypress", "#827A68", "cypress_wood"); createTree("beech", "#F0DC82", "beech_wood"); createTree("sapele", "#8B4513", "sapele"); createTree("pear", "#FFD700", "pear_wood"); createTree("hickory", "#664C28", "hickory"); createTree("sycamore", "#F4A460", "sycamore"); createTree("willow", "#C19A6B", "willow_wood"); createTree("zebra_wood", "#F0DC82", "zebra_wood"); createTree("basswood", "#D2B48C", "basswood"); createTree("larch", "#C9AE5D", "larch_wood"); createTree("silver_maple", "#C0C0C0", "silver_maple"); createTree("balsam_fir", "#B4CDCD", "balsam_fir"); createTree("elm", "#8B4513", "elm_wood");