diff --git a/mods/a_mod_by_alice.js b/mods/a_mod_by_alice.js index 99997dd2..f1532171 100644 --- a/mods/a_mod_by_alice.js +++ b/mods/a_mod_by_alice.js @@ -3491,7 +3491,7 @@ color1 and color2 spread through striped paint like dye does with itself. col "hail_cloud": { "elem1": "pyrocumulus", "chance":0.08, "y":[0,12], "setting":"clouds" }, "acid_cloud": { "elem1": "pyrocumulus", "chance":0.05, "y":[0,12], "setting":"clouds" }, "fire_cloud": { "elem1": "pyrocumulus", "chance":0.05, "y":[0,12], "setting":"clouds" }, - "pyrocumulus": { "elem1": "pyrocumulus", "chance":0.08, "y":[0,12], "setting":"clouds" } + "pyrocumulus": { "elem1": "pyrocumulus", "chance":0.08, "y":[0,12], "setting":"clouds" } }, temp: -100, tempHigh: 0, @@ -4510,11 +4510,11 @@ color1 and color2 spread through striped paint like dye does with itself. col color: "#ffffff", properties: { ticks: 0, - attemptedMovesIntoPixel: 0 + attemptedMovesIntoPixel: 0 }, behavior: behaviors.POWDER, reactions: { - "dirt": { elem1: "diamond" } + "dirt": { elem1: "diamond" } }, state: "solid", hidden: true, @@ -5038,7 +5038,7 @@ color1 and color2 spread through striped paint like dye does with itself. col "M1|M1|M1", ], reactions: { - "water": { "elem1": "liquid_smoke" } + "water": { "elem1": "liquid_smoke" } }, temp:600, tempLow:100, @@ -5067,7 +5067,7 @@ color1 and color2 spread through striped paint like dye does with itself. col "snow_cloud": { "elem1": "pyrocumulus", "chance":0.08, "y":[0,15] }, "acid_cloud": { "elem1": "pyrocumulus", "chance":0.05, "y":[0,15] }, "fire_cloud": { "elem1": "pyrocumulus", "chance":0.05, "y":[0,15] }, - "pyrocumulus": { "elem1": "pyrocumulus", "chance":0.08, "y":[0,15] } + "pyrocumulus": { "elem1": "pyrocumulus", "chance":0.08, "y":[0,15] } }, temp: 114, tempHigh: 605, @@ -5381,7 +5381,7 @@ color1 and color2 spread through striped paint like dye does with itself. col density: 2, tempHigh: 95, stateHigh: "burning_unrealistically_flammable_gas", - conduct: 0.2 + conduct: 0.2 }, elements.burning_unrealistically_flammable_gas = { @@ -5504,7 +5504,7 @@ color1 and color2 spread through striped paint like dye does with itself. col color: ["#d4d4d4","#74d4d4","#d474d4","#7474d4","#d4d474","#74d474","#d47474","#747474","#2f2f2f","#8f2f2f","#2f8f2f","#8f8f2f","#2f2f8f","#8f2f8f","#2f8f8f","#8f8f8f","#606060","#c06060","#60c060","#c0c060","#6060c0","#c060c0","#60c0c0","#c0c0c0"], behavior: behaviors.POWDER, reactions: { - water: { elem1: "sugar_water", elem2: [null,"pop_rock_pop"] } + water: { elem1: "sugar_water", elem2: [null,"pop_rock_pop"] } }, tempHigh: 138, stateHigh: ["caramel","pop_rock_pop"], @@ -7524,7 +7524,7 @@ color1 and color2 spread through striped paint like dye does with itself. col vaporized_magma: { elem1: "pastel_rainbow_ch_x", elem2: null }, blazing_pyrotheum: { elem1: "pastel_rainbow_th_x", elem2: null }, rock: { elem1: "pastel_rainbow_sr_x", elem2: null }, - polka_dotted_powder: { elem1: "pastel_rainbow_x_mod_y", elem2: null } + polka_dotted_powder: { elem1: "pastel_rainbow_x_mod_y", elem2: null } }, behavior: behaviors.WALL, state: "solid", @@ -8044,7 +8044,7 @@ color1 and color2 spread through striped paint like dye does with itself. col } }, reactions: { - dye: elements.rainbow.reactions.dye + dye: elements.rainbow.reactions.dye }, behavior: behaviors.WALL, state: "solid", @@ -8075,7 +8075,7 @@ color1 and color2 spread through striped paint like dye does with itself. col } }, reactions: { - dye: elements.rainbow.reactions.dye + dye: elements.rainbow.reactions.dye }, behavior: behaviors.WALL, state: "solid", @@ -8106,7 +8106,7 @@ color1 and color2 spread through striped paint like dye does with itself. col } }, reactions: { - dye: elements.rainbow.reactions.dye + dye: elements.rainbow.reactions.dye }, behavior: behaviors.WALL, state: "solid", @@ -8138,7 +8138,7 @@ color1 and color2 spread through striped paint like dye does with itself. col }, reactions: { dye: elements.rainbow.reactions.dye, - polka_dotted_powder: { elem1: "pastel_rainbow_d_mod_x", elem2: null } + polka_dotted_powder: { elem1: "pastel_rainbow_d_mod_x", elem2: null } }, state: "solid", category: "rainbow variants" @@ -8231,7 +8231,7 @@ color1 and color2 spread through striped paint like dye does with itself. col } }, reactions: { - dye: elements.rainbow.reactions.dye + dye: elements.rainbow.reactions.dye }, state: "solid", category: "rainbow variants" @@ -8261,7 +8261,7 @@ color1 and color2 spread through striped paint like dye does with itself. col } }, reactions: { - dye: elements.rainbow.reactions.dye + dye: elements.rainbow.reactions.dye }, state: "solid", category: "rainbow variants" @@ -8291,7 +8291,7 @@ color1 and color2 spread through striped paint like dye does with itself. col } }, reactions: { - dye: elements.rainbow.reactions.dye + dye: elements.rainbow.reactions.dye }, state: "solid", category: "rainbow variants" @@ -8321,7 +8321,7 @@ color1 and color2 spread through striped paint like dye does with itself. col } }, reactions: { - dye: elements.rainbow.reactions.dye, + dye: elements.rainbow.reactions.dye, flameshockwave1: { elem1: "pastel_rainbow_x_d_d", elem2: null }, flameshockwave3: { elem1: "pastel_rainbow_x_d_d", elem2: null }, flameshockwave6: { elem1: "pastel_rainbow_x_d_d", elem2: null }, @@ -8355,7 +8355,7 @@ color1 and color2 spread through striped paint like dye does with itself. col } }, reactions: { - dye: elements.rainbow.reactions.dye + dye: elements.rainbow.reactions.dye }, state: "solid", category: "rainbow variants" @@ -8385,7 +8385,7 @@ color1 and color2 spread through striped paint like dye does with itself. col } }, reactions: { - dye: elements.rainbow.reactions.dye + dye: elements.rainbow.reactions.dye }, state: "solid", category: "rainbow variants" @@ -8415,7 +8415,7 @@ color1 and color2 spread through striped paint like dye does with itself. col } }, reactions: { - dye: elements.rainbow.reactions.dye + dye: elements.rainbow.reactions.dye }, state: "solid", category: "rainbow variants" @@ -8445,7 +8445,7 @@ color1 and color2 spread through striped paint like dye does with itself. col } }, reactions: { - dye: elements.rainbow.reactions.dye + dye: elements.rainbow.reactions.dye }, state: "solid", category: "rainbow variants" @@ -8475,7 +8475,7 @@ color1 and color2 spread through striped paint like dye does with itself. col } }, reactions: { - dye: elements.rainbow.reactions.dye + dye: elements.rainbow.reactions.dye }, state: "solid", category: "rainbow variants" @@ -8505,7 +8505,7 @@ color1 and color2 spread through striped paint like dye does with itself. col } }, reactions: { - dye: elements.rainbow.reactions.dye + dye: elements.rainbow.reactions.dye }, state: "solid", category: "rainbow variants" @@ -8535,7 +8535,7 @@ color1 and color2 spread through striped paint like dye does with itself. col } }, reactions: { - dye: elements.rainbow.reactions.dye + dye: elements.rainbow.reactions.dye }, state: "solid", category: "rainbow variants" @@ -8565,7 +8565,7 @@ color1 and color2 spread through striped paint like dye does with itself. col } }, reactions: { - dye: elements.rainbow.reactions.dye + dye: elements.rainbow.reactions.dye }, state: "solid", category: "rainbow variants" @@ -8595,7 +8595,7 @@ color1 and color2 spread through striped paint like dye does with itself. col } }, reactions: { - dye: elements.rainbow.reactions.dye + dye: elements.rainbow.reactions.dye }, state: "solid", category: "rainbow variants" @@ -8625,7 +8625,7 @@ color1 and color2 spread through striped paint like dye does with itself. col } }, reactions: { - dye: elements.rainbow.reactions.dye + dye: elements.rainbow.reactions.dye }, state: "solid", category: "rainbow variants" @@ -9137,7 +9137,7 @@ color1 and color2 spread through striped paint like dye does with itself. col properties: { uwu: 0, revealed: false, - revealedAround: false + revealedAround: false }, tick: function(pixel) { if(typeof(pixel.revealed) === 'undefined') { @@ -9191,7 +9191,7 @@ color1 and color2 spread through striped paint like dye does with itself. col insulate: true, properties: { uwu: 0, - revealed: false + revealed: false }, tick: function(pixel) { if(pixel.charge) { @@ -9320,7 +9320,7 @@ color1 and color2 spread through striped paint like dye does with itself. col color: ["#3d6e29", "#666617", "#7d5716"], behavior: behaviors.LIQUID, properties: { - methaned: false + methaned: false }, tick: function(pixel) { spreadLifeEater(pixel).forEach(infectedPixel => spreadLifeEater(infectedPixel)); @@ -9548,7 +9548,7 @@ color1 and color2 spread through striped paint like dye does with itself. col "alcohol": { "elem1":[null,"dna"], "chance":0.02 }, "poison": { "elem1":null, "chance":0.02 }, "oxygen": { "elem2":"carbon_dioxide", "chance":0.05 }, - "ammonia": { "elem2":"nitrogen", "chance":0.05 } + "ammonia": { "elem2":"nitrogen", "chance":0.05 } }, tempHigh: 122, stateHigh: "steam", @@ -9578,7 +9578,7 @@ color1 and color2 spread through striped paint like dye does with itself. col "sugar_water": { "elem2":"cell_2", "chance":0.045 }, "alcohol": { "elem1":[null,"dna"], "chance":0.012 }, "poison": { "elem1":[null,null,"poison","poison","poison","dna","dirty_water"], "chance":0.03 }, - "proton": { "elem1":[null,"cancer"], "chance":0.04 } + "proton": { "elem1":[null,"cancer"], "chance":0.04 } }, tempHigh: 80, stateHigh: ["steam","plague"], @@ -9640,7 +9640,7 @@ color1 and color2 spread through striped paint like dye does with itself. col "alcohol": { "elem1":[null,"dna"], "chance":0.02 }, "poison": { "elem1":null, "chance":0.02 }, "oxygen": { "elem2":"carbon_dioxide", "chance":0.05 }, - "ammonia": { "elem2":"nitrogen", "chance":0.05 } + "ammonia": { "elem2":"nitrogen", "chance":0.05 } }, tempHigh: 122, stateHigh: "steam", @@ -9668,7 +9668,7 @@ color1 and color2 spread through striped paint like dye does with itself. col "alcohol": { "elem1":[null,"dna"], "chance":0.02 }, "poison": { "elem1":null, "chance":0.02 }, "oxygen": { "elem2":"carbon_dioxide", "chance":0.05 }, - "ammonia": { "elem2":"nitrogen", "chance":0.05 } + "ammonia": { "elem2":"nitrogen", "chance":0.05 } }, tempHigh: 102, stateHigh: "steam", @@ -9745,7 +9745,7 @@ color1 and color2 spread through striped paint like dye does with itself. col "alcohol": { "elem1":[null,"dna"], "chance":0.02 }, "poison": { "elem1":null, "chance":0.02 }, "oxygen": { "elem2":"carbon_dioxide", "chance":0.05 }, - "ammonia": { "elem2":"nitrogen", "chance":0.05 } + "ammonia": { "elem2":"nitrogen", "chance":0.05 } }, tempHigh: 122, stateHigh: "steam", @@ -9921,7 +9921,7 @@ color1 and color2 spread through striped paint like dye does with itself. col ], reactions: { nickel: { elem2: ["fwibblen",null] }, - nickel_scrap: { elem2: ["fwibblen",null] } + nickel_scrap: { elem2: ["fwibblen",null] } }, tempHigh: 1100, stateHigh: "dead_fwibblen", @@ -9952,7 +9952,7 @@ color1 and color2 spread through striped paint like dye does with itself. col ], reactions: { fwibblen: { elem2: ["meffwibblen",null] }, - dead_fwibblen: { elem2: ["meffwibblen",null] } + dead_fwibblen: { elem2: ["meffwibblen",null] } }, tempHigh: 1150, stateHigh: "dead_meffwibblen", @@ -10280,7 +10280,7 @@ color1 and color2 spread through striped paint like dye does with itself. col speed: 1, explosionRadius: 8, circleRadius: 8, - breakAroundRadius: 4 + breakAroundRadius: 4 }, excludeVelocity: true, tick: function(pixel) { @@ -11609,7 +11609,7 @@ color1 and color2 spread through striped paint like dye does with itself. col behavior: behaviors.WALL, properties: { counter: 1, - active: true + active: true }, tick: function(pixel) { for(i = 0; i < 1; i++) { //dummy for @@ -11700,7 +11700,7 @@ color1 and color2 spread through striped paint like dye does with itself. col elements.distance_display = { color: "#00FFFF", properties: { - distanceGetter: null + distanceGetter: null }, tick: function(pixel) { var distance = Infinity; @@ -11857,7 +11857,7 @@ color1 and color2 spread through striped paint like dye does with itself. col direction: 1, counter: 1, active: true, - fromX: null + fromX: null }, tick: function(pixel) { if(pixel.fromX == null) { @@ -13086,7 +13086,7 @@ color1 and color2 spread through striped paint like dye does with itself. col properties: { "age": 0, //"bananaRange": null, //apparently this is suddenly, in an illogical, never-before-seen, completely new, unprecedented incident of bad behavior, evaluated before being put into the property database, so RNG has to be done in tick - "bananaRange": null + "bananaRange": null }, tempHigh: 100, stateHigh: "dead_plant", @@ -13128,7 +13128,7 @@ color1 and color2 spread through striped paint like dye does with itself. col properties: { "age": 0, "grewPeduncle": false, - "bananaRange": null + "bananaRange": null }, tempHigh: 100, stateHigh: "dead_plant", @@ -13192,7 +13192,7 @@ color1 and color2 spread through striped paint like dye does with itself. col properties: { "spoilage":0, "attached": false, - "attachDirection": (!Math.floor(Math.random() * 2)) ? 1 : -1 + "attachDirection": (!Math.floor(Math.random() * 2)) ? 1 : -1 }, burn: 5, burnInto: ["steam", "ash"], @@ -13237,7 +13237,7 @@ color1 and color2 spread through striped paint like dye does with itself. col "dir": (!Math.floor(Math.random() * 2)) ? 1 : -1, "age": 0, //"bananaRange": (1 + (Math.floor(Math.random() * 3))), //1-3 - "bananaRange": null + "bananaRange": null }, tempHigh: 100, stateHigh: "dead_plant", @@ -13309,7 +13309,7 @@ color1 and color2 spread through striped paint like dye does with itself. col properties: { "age": 0, //"bananaRange": (1 + (Math.floor(Math.random() * 3))), //1-3 - "bananaRange": null + "bananaRange": null }, tempHigh: 100, stateHigh: "dead_plant", @@ -13376,7 +13376,7 @@ color1 and color2 spread through striped paint like dye does with itself. col properties: { "attached": false, "attachOffsets": [(!Math.floor(Math.random() * 2)) ? 1 : -1, 0], - "bananaRange": null + "bananaRange": null }, burn: 5, burnInto: ["steam", "ash"], @@ -13530,7 +13530,7 @@ color1 and color2 spread through striped paint like dye does with itself. col "leafRange": 2 + (Math.floor(Math.random() * 3)), //2-4 "grewLeftLeaves": false, "grewRightLeaves": false, - "bananaRange": null + "bananaRange": null }, tempHigh: 100, stateHigh: "dead_plant", @@ -13949,7 +13949,7 @@ color1 and color2 spread through striped paint like dye does with itself. col "ruins": { "elem2": "rock", "chance": 0.00035 }, "mudstone": { "elem2": "mud", "chance": 0.00035 }, "methane": { "elem1":"primordial_soup", "elem2":"primordial_soup", tempMin:60, charged:true }, - "ammonia": { "elem1":"primordial_soup", "elem2":"primordial_soup", tempMin:60, charged:true } + "ammonia": { "elem1":"primordial_soup", "elem2":"primordial_soup", tempMin:60, charged:true } },*/ state: "liquid", density: 1.03, @@ -14027,7 +14027,7 @@ color1 and color2 spread through striped paint like dye does with itself. col pixel.temp += 0.25; }, reactions: { - molten_infernium: { elem1: "molten_infernyrite", elem2: "molten_infernyrite", temp1: 304, temp2: 304 } + molten_infernium: { elem1: "molten_infernyrite", elem2: "molten_infernyrite", temp1: 304, temp2: 304 } }, }; @@ -14067,7 +14067,7 @@ color1 and color2 spread through striped paint like dye does with itself. col elem2: ["blazing_pyrotheum","molten_infernyreitheum"], temp1: 1043, temp2: 1043 - } + } }, }; @@ -14269,7 +14269,7 @@ color1 and color2 spread through striped paint like dye does with itself. col stateLow: "molten_glass", category: "gases", state: "gas", - hidden: true + hidden: true }, elements.hot_glass_cloud = { @@ -14284,7 +14284,7 @@ color1 and color2 spread through striped paint like dye does with itself. col tempLow: 2200, stateLow: "cold_glass_cloud", category: "gases", - state: "gas" + state: "gas" }, elements.cold_glass_cloud = { @@ -14299,7 +14299,7 @@ color1 and color2 spread through striped paint like dye does with itself. col tempHigh: 2200, stateHigh: "hot_glass_cloud", category: "gases", - state: "gas" + state: "gas" }, //} @@ -14321,7 +14321,7 @@ color1 and color2 spread through striped paint like dye does with itself. col viscosity: 10000, category: "liquids", state: "liquid", - density: 2725 + density: 2725 }, elements.vaporized_ash = { @@ -14341,7 +14341,7 @@ color1 and color2 spread through striped paint like dye does with itself. col category: "gases", state: "gas", hidden: true, - density: 3 + density: 3 }, elements.hot_ash_cloud = { @@ -14356,7 +14356,7 @@ color1 and color2 spread through striped paint like dye does with itself. col tempLow: 1700, stateLow: "cold_ash_cloud", category: "gases", - state: "gas" + state: "gas" }, elements.cold_ash_cloud = { @@ -14371,7 +14371,7 @@ color1 and color2 spread through striped paint like dye does with itself. col tempHigh: 1700, stateHigh: "hot_ash_cloud", category: "gases", - state: "gas" + state: "gas" }, //} @@ -14556,7 +14556,7 @@ color1 and color2 spread through striped paint like dye does with itself. col stateLow: "molten_calcium", category: "gases", state: "gas", - hidden: true + hidden: true }, elements.hot_calcium_cloud = { @@ -14571,7 +14571,7 @@ color1 and color2 spread through striped paint like dye does with itself. col tempLow: 842, stateLow: "cold_calcium_cloud", category: "gases", - state: "gas" + state: "gas" }, elements.cold_calcium_cloud = { @@ -14636,7 +14636,7 @@ color1 and color2 spread through striped paint like dye does with itself. col stateLow: "molten_clay", category: "gases", state: "gas", - hidden: true + hidden: true }, elements.hot_clay_cloud = { @@ -14651,7 +14651,7 @@ color1 and color2 spread through striped paint like dye does with itself. col tempLow: 842, stateLow: "cold_clay_cloud", category: "gases", - state: "gas" + state: "gas" }, elements.cold_clay_cloud = { @@ -14666,7 +14666,7 @@ color1 and color2 spread through striped paint like dye does with itself. col tempHigh: 842, stateHigh: "hot_clay_cloud", category: "gases", - state: "gas" + state: "gas" }, //} @@ -14695,7 +14695,7 @@ color1 and color2 spread through striped paint like dye does with itself. col stateLow: "molten_salt", category: "gases", state: "gas", - hidden: true + hidden: true }, elements.hot_salt_cloud = { @@ -14710,7 +14710,7 @@ color1 and color2 spread through striped paint like dye does with itself. col tempLow: 801, stateLow: "cold_salt_cloud", category: "gases", - state: "gas" + state: "gas" }, elements.cold_salt_cloud = { @@ -14926,7 +14926,7 @@ color1 and color2 spread through striped paint like dye does with itself. col behavior: behaviors.GAS, reactions: { "light": { "elem1": null, "chance": 0.1 }, - "fire": { "elem1": null, "chance": 0.08 } + "fire": { "elem1": null, "chance": 0.08 } }, category: "gases", density: 1.5, @@ -14943,7 +14943,7 @@ color1 and color2 spread through striped paint like dye does with itself. col hardness: 0.8, reactions: { "corrosive_gas": { "elem2": "turquoise_dust", "elem1": "blue_dust", "chance": 0.5 }, - "blue_dust": { "elem1": null, "elem2": "turquoise_dust", "chance": 0.5 } + "blue_dust": { "elem1": null, "elem2": "turquoise_dust", "chance": 0.5 } }, category: "gases", density: 1.225, @@ -14978,7 +14978,7 @@ color1 and color2 spread through striped paint like dye does with itself. col }, reactions: { "electric_gas": { "elem2": "blue_dust", "elem1": "turquoise_dust", "chance": 0.5 }, - "turquoise_dust": { "elem1": null, "elem2": "blue_dust", "chance": 0.5 } + "turquoise_dust": { "elem1": null, "elem2": "blue_dust", "chance": 0.5 } }, category: "gases", density: 1.225, @@ -15015,7 +15015,7 @@ color1 and color2 spread through striped paint like dye does with itself. col color: settings.bg, behavior: behaviors.GAS, reactions: { - "fire": { elem2: null } + "fire": { elem2: null } }, tick: function(pixel) { backgroundColor = hexToRGB(settings.bg); @@ -15422,14 +15422,14 @@ color1 and color2 spread through striped paint like dye does with itself. col density: 6300, temp: 2000, reactions: { //(test.hello ??= {}).world - molten_nichrome: { elem1: "molten_nichrome", elem2: "molten_chromium", chance: 0.4, changeTemp: false, oneway: true } + molten_nichrome: { elem1: "molten_nichrome", elem2: "molten_chromium", chance: 0.4, changeTemp: false, oneway: true } }, }; elements.molten_nichrome = { reactions: { //(test.hello ??= {}).world molten_nickel: { elem1: "molten_nickel", elem2: "molten_nichrome", chance: 0.4, changeTemp: false, oneway: true }, - molten_haseulite: { elem2: "molten_hanichrite", elem1: ["molten_nichrome","molten_nichrome","molten_nichrome","molten_nichrome","molten_nichrome","molten_nichrome","molten_nichrome","molten_nichrome","molten_nichrome","molten_hanichrite"], changeTemp: false } + molten_haseulite: { elem2: "molten_hanichrite", elem1: ["molten_nichrome","molten_nichrome","molten_nichrome","molten_nichrome","molten_nichrome","molten_nichrome","molten_nichrome","molten_nichrome","molten_nichrome","molten_hanichrite"], changeTemp: false } }, tick: function(pixel) { if(nichromeDoNeighborCount) { @@ -15819,7 +15819,7 @@ color1 and color2 spread through striped paint like dye does with itself. col color: ["#ccc59b", "#dbd3a4"], behavior: behaviors.WALL, properties: { - oldColor: null + oldColor: null }, onTryMoveInto: function(pixel,otherPixel) { neutronAbsorbency(pixel,otherPixel); @@ -15900,7 +15900,7 @@ color1 and color2 spread through striped paint like dye does with itself. col "potato_seed": { "elem1":"potato", "chance":0.05 }, "yeast": { "elem1":"yeast", "chance":0.05 }, "fish": { "elem2":"meat" }, - "frog": { "elem2":"meat" } + "frog": { "elem2":"meat" } }, tempHigh: -78, stateHigh: "ammonia", @@ -15993,7 +15993,7 @@ color1 and color2 spread through striped paint like dye does with itself. col reactions: { "steam": { "elem1": "lithium_hydroxide", "elem2": "lithium_hydroxide", chance: 0.03 }, "water": { "elem1": "lithium_hydroxide", "elem2": "lithium_hydroxide", chance: 0.03 }, - "carbon_dioxide": { "elem1": null, "elem2": "lithium_carbonate" } + "carbon_dioxide": { "elem1": null, "elem2": "lithium_carbonate" } }, density: 2013, category: "powders", @@ -16077,7 +16077,7 @@ color1 and color2 spread through striped paint like dye does with itself. col behavior: behaviors.POWDER, reactions: { //the acid part of lye "ammonia": { "elem1": "hydrogen", "elem2": "lithium_amide" }, - "liquid_ammonia": { "elem1": "hydrogen", "elem2": "lithium_amide" } + "liquid_ammonia": { "elem1": "hydrogen", "elem2": "lithium_amide" } }, density: 780, category: "powders", @@ -16091,7 +16091,7 @@ color1 and color2 spread through striped paint like dye does with itself. col behavior: behaviors.POWDER, reactions: { "steam": { "elem1": "lithium_hydroxide", "elem2": "ammonia" }, - "water": { "elem1": "lithium_hydroxide", "elem2": "ammonia" } + "water": { "elem1": "lithium_hydroxide", "elem2": "ammonia" } }, density: 1178, category: "powders", @@ -17331,7 +17331,7 @@ color1 and color2 spread through striped paint like dye does with itself. col }, properties: { "spoilage": 0, - "attached": false + "attached": false }, burn: 5, burnInto: ["steam", "ash"], @@ -17396,7 +17396,7 @@ color1 and color2 spread through striped paint like dye does with itself. col heejinite: {temp1: 1, temp2: 1}, molten_heejinite: {temp1: 2, temp2: 2}, heejinite_powder: {temp1: 2, temp2: 2}, - heejinite_gas: {temp1: 3, temp2: 3} + heejinite_gas: {temp1: 3, temp2: 3} }, tempHigh: 1545, category: "solids", @@ -17418,7 +17418,7 @@ color1 and color2 spread through striped paint like dye does with itself. col heejinite: {temp1: 2, temp2: 2}, molten_heejinite: {temp1: 3, temp2: 3}, heejinite_powder: {temp1: 3, temp2: 3}, - heejinite_gas: {temp1: 4, temp2: 4} + heejinite_gas: {temp1: 4, temp2: 4} }, tempHigh: 1545, stateHigh: "molten_yvesite", @@ -17514,7 +17514,7 @@ color1 and color2 spread through striped paint like dye does with itself. col "pool_water": { elem1: "vivite_oxide", elem2: "chlorine" }, "pool_ice": { elem1: "vivite_oxide", elem2: "chlorine" }, "salt_water": { elem1: "vivite_oxide", elem2: "salt" }, - "salt_ice": { elem1: "vivite_oxide", elem2: "salt" } + "salt_ice": { elem1: "vivite_oxide", elem2: "salt" } }, tempHigh: 938, category: "solids", @@ -17546,7 +17546,7 @@ color1 and color2 spread through striped paint like dye does with itself. col "pool_water": { elem1: "vivite_oxide_powder", elem2: "chlorine" }, "pool_ice": { elem1: "vivite_oxide_powder", elem2: "chlorine" }, "salt_water": { elem1: "vivite_oxide_powder", elem2: "salt" }, - "salt_ice": { elem1: "vivite_oxide_powder", elem2: "salt" } + "salt_ice": { elem1: "vivite_oxide_powder", elem2: "salt" } }, noResistance: true, tempHigh: 938, @@ -17701,7 +17701,7 @@ color1 and color2 spread through striped paint like dye does with itself. col color: ["#f5b3c5", "#ffb0c6"], fireColor: ["#ff1f69", "#ff0004", "#ff006a"], reactions: { - "carbon_monoxide": { elem1: "vivite", elem2: "carbon_dioxide", tempMin: 543, chance: 0.03 } + "carbon_monoxide": { elem1: "vivite", elem2: "carbon_dioxide", tempMin: 543, chance: 0.03 } }, behavior: behaviors.WALL, reactions: { @@ -17715,7 +17715,7 @@ color1 and color2 spread through striped paint like dye does with itself. col "pool_water": { elem1: "vivite_hydroxide", elem2: "chlorine", temp1: 234, tempMax: 733}, "pool_ice": { elem1: "vivite_hydroxide", elem2: "chlorine", temp1: 234, tempMax: 733}, "salt_water": { elem1: "vivite_hydroxide", elem2: "salt", temp1: 234, tempMax: 733}, - "salt_ice": { elem1: "vivite_hydroxide", elem2: "salt", temp1: 234, tempMax: 733} + "salt_ice": { elem1: "vivite_hydroxide", elem2: "salt", temp1: 234, tempMax: 733} }, density: 5135, category: "solids", @@ -17730,7 +17730,7 @@ color1 and color2 spread through striped paint like dye does with itself. col fireColor: ["#ff1f69", "#ff0004", "#ff006a"], behavior: behaviors.POWDER, reactions: { - "carbon_monoxide": { elem1: "vivite_powder", elem2: "carbon_dioxide", tempMin: 543, chance: 0.03 } + "carbon_monoxide": { elem1: "vivite_powder", elem2: "carbon_dioxide", tempMin: 543, chance: 0.03 } }, reactions: { "ice": { elem1: "vivite_hydroxide", elem2: null, temp1: 234, tempMax: 733}, @@ -17743,7 +17743,7 @@ color1 and color2 spread through striped paint like dye does with itself. col "pool_water": { elem1: "vivite_hydroxide", elem2: "chlorine", temp1: 234, tempMax: 733}, "pool_ice": { elem1: "vivite_hydroxide", elem2: "chlorine", temp1: 234, tempMax: 733}, "salt_water": { elem1: "vivite_hydroxide", elem2: "salt", temp1: 234, tempMax: 733}, - "salt_ice": { elem1: "vivite_hydroxide", elem2: "salt", temp1: 234, tempMax: 733} + "salt_ice": { elem1: "vivite_hydroxide", elem2: "salt", temp1: 234, tempMax: 733} }, density: 4813, category: "solids", @@ -17769,7 +17769,7 @@ color1 and color2 spread through striped paint like dye does with itself. col elements.molten_vivite_oxide = { fireColor: ["#ff1f69", "#ff0004", "#ff006a"], reactions: { - "carbon_monoxide": { elem1: "vivite_gas", elem2: "carbon_dioxide", tempMin: 543, chance: 0.03 } + "carbon_monoxide": { elem1: "vivite_gas", elem2: "carbon_dioxide", tempMin: 543, chance: 0.03 } }, density: 6113, hardness: 0.9993, @@ -17780,7 +17780,7 @@ color1 and color2 spread through striped paint like dye does with itself. col elements.vivite_oxide_gas = { reactions: { - "carbon_monoxide": { elem1: "vivite", elem2: "carbon_dioxide", tempMin: 543, chance: 0.03 } + "carbon_monoxide": { elem1: "vivite", elem2: "carbon_dioxide", tempMin: 543, chance: 0.03 } }, }; @@ -18443,7 +18443,7 @@ color1 and color2 spread through striped paint like dye does with itself. col "water": { "elem1":"oxidized_copper", chance:0.0035 }, "salt_water": { "elem1":"oxidized_copper", chance:0.006 }, "dirty_water": { "elem1":"oxidized_copper", chance:0.045 }, - "sugar_water": { "elem1":"oxidized_copper", chance:0.0045 } + "sugar_water": { "elem1":"oxidized_copper", chance:0.0045 } }, category: "powders", tempHigh: 1085, @@ -25951,7 +25951,7 @@ Make sure to save your command in a file if you want to add this preset again.` color: "#9fafdf", properties: { range: 10, - pushStrength: 1 + pushStrength: 1 }, tick: function(pixel) { pixel.range ??= 10; @@ -25981,7 +25981,7 @@ Make sure to save your command in a file if you want to add this preset again.` color: "#9fafdf", properties: { range: 10, - pushStrength: 1 + pushStrength: 1 }, tick: function(pixel) { pixel.range ??= 10; @@ -26011,7 +26011,7 @@ Make sure to save your command in a file if you want to add this preset again.` color: "#9fafdf", properties: { range: 10, - pushStrength: 1 + pushStrength: 1 }, tick: function(pixel) { pixel.range ??= 10; @@ -26041,7 +26041,7 @@ Make sure to save your command in a file if you want to add this preset again.` color: "#9fafdf", properties: { range: 10, - pushStrength: 1 + pushStrength: 1 }, tick: function(pixel) { pixel.range ??= 10; @@ -26073,7 +26073,7 @@ Make sure to save your command in a file if you want to add this preset again.` range: 10, pushTime: 0, pushLength: 5, - pushStrength: 1 + pushStrength: 1 }, tick: function(pixel) { pixel.range ??= 10; @@ -26115,7 +26115,7 @@ Make sure to save your command in a file if you want to add this preset again.` range: 10, pushTime: 0, pushLength: 5, - pushStrength: 1 + pushStrength: 1 }, tick: function(pixel) { pixel.range ??= 10; @@ -26157,7 +26157,7 @@ Make sure to save your command in a file if you want to add this preset again.` range: 10, pushTime: 0, pushLength: 5, - pushStrength: 1 + pushStrength: 1 }, tick: function(pixel) { pixel.range ??= 10; @@ -26199,7 +26199,7 @@ Make sure to save your command in a file if you want to add this preset again.` range: 10, pushTime: 0, pushLength: 5, - pushStrength: 1 + pushStrength: 1 }, tick: function(pixel) { pixel.range ??= 10; @@ -26247,7 +26247,7 @@ Make sure to save your command in a file if you want to add this preset again.` color: "#ee7f00", properties: { _channel: 0, - _correspondingPortals: null + _correspondingPortals: null }, insulate: true, onTryMoveInto: function(pixel,otherPixel) { @@ -26894,7 +26894,7 @@ Make sure to save your command in a file if you want to add this preset again.` "carbon_dioxide": { "elem2":null, "chance":0.05 }, "alcohol": { "elem1":[null,"dna"], "chance":0.02 },*/ "oxygen": { "elem2":null, "chance":0.04 }, - "blood": { "elem2":"zombie_blood", "chance":0.1 } + "blood": { "elem2":"zombie_blood", "chance":0.1 } }, viscosity: 30, tempHigh: 127.55, @@ -27188,7 +27188,7 @@ Make sure to save your command in a file if you want to add this preset again.` dead: false, dir: 1, panic: 0, - following: false + following: false }, movable: true, tick: function(pixel) { @@ -27229,12 +27229,12 @@ Make sure to save your command in a file if you want to add this preset again.` reactions: { "cancer": { "elem1":"cancer", "chance":0.005 }, "radiation": { "elem1":["ash","rotten_meat","rotten_meat"], "chance":0.4 }, - "plague": { "elem1":"plague", "chance":0.025 } + "plague": { "elem1":"plague", "chance":0.025 } }, properties: { dead: false, dir: 1, - panic: 0 + panic: 0 }, movable: true, tick: function(pixel) { @@ -27333,13 +27333,13 @@ Make sure to save your command in a file if you want to add this preset again.` reactions: { "cancer": { "elem1":"cancer", "chance":0.005 }, "radiation": { "elem1":["ash","rotten_meat","rotten_meat"], "chance":0.4 }, - "plague": { "elem1":"plague", "chance":0.025 } + "plague": { "elem1":"plague", "chance":0.025 } }, properties: { dead: false, following: false, dir: 1, - panic: 0 + panic: 0 }, movable: true, tick: function(pixel) { @@ -27527,12 +27527,12 @@ Make sure to save your command in a file if you want to add this preset again.` reactions: { "cancer": { "elem1":"cancer", "chance":0.005 }, "radiation": { "elem1":["ash","rotten_meat","rotten_meat"], "chance":0.4 }, - "plague": { "elem1":"plague", "chance":0.025 } + "plague": { "elem1":"plague", "chance":0.025 } }, properties: { dead: false, dir: 1, - panic: 0 + panic: 0 }, movable: true, tick: function(pixel) { @@ -27719,7 +27719,7 @@ Make sure to save your command in a file if you want to add this preset again.` dead: false, dir: 1, panic: 0, - following: false + following: false }, movable: true, tick: function(pixel) { @@ -27760,14 +27760,14 @@ Make sure to save your command in a file if you want to add this preset again.` reactions: { "cancer": { "elem1":"cancer", "chance":0.005 }, "radiation": { "elem1":["ash","meat","rotten_meat","cooked_meat"], "chance":0.4 }, - "plague": { "elem1":"plague", "chance":0.05 } + "plague": { "elem1":"plague", "chance":0.05 } }, properties: { dead: false, dir: 1, panic: 0, charged: false, - didChargeBlueTinted: false + didChargeBlueTinted: false }, movable: true, tick: function(pixel) { @@ -27987,14 +27987,14 @@ Make sure to save your command in a file if you want to add this preset again.` "cancer": { "elem1":"cancer", "chance":0.005 }, "radiation": { "elem1":["ash","meat","rotten_meat","cooked_meat"], "chance":0.4 }, "plague": { "elem1":"plague", "chance":0.05 }, - "oxygen": { "elem2":"carbon_dioxide", "chance":0.5 } + "oxygen": { "elem2":"carbon_dioxide", "chance":0.5 } }, properties: { dead: false, following: false, hissing: false, charged: false, - didChargeBlueTinted: false + didChargeBlueTinted: false }, movable: true, tick: function(pixel) { @@ -28284,14 +28284,14 @@ Make sure to save your command in a file if you want to add this preset again.` reactions: { "cancer": { "elem1":"cancer", "chance":0.005 }, "radiation": { "elem1":["ash","meat","rotten_meat","cooked_meat"], "chance":0.4 }, - "plague": { "elem1":"plague", "chance":0.05 } + "plague": { "elem1":"plague", "chance":0.05 } }, properties: { dead: false, dir: 1, panic: 0, charged: false, - didChargeBlueTinted: false + didChargeBlueTinted: false }, movable: true, tick: function(pixel) { @@ -28555,7 +28555,7 @@ Make sure to save your command in a file if you want to add this preset again.` dead: false, dir: 1, panic: 0, - following: false + following: false }, movable: true, tick: function(pixel) { @@ -28596,14 +28596,14 @@ Make sure to save your command in a file if you want to add this preset again.` reactions: { "cancer": { "elem1":"cancer", "chance":0.005 }, "radiation": { "elem1":["ash","meat","rotten_meat","cooked_meat"], "chance":0.4 }, - "plague": { "elem1":"plague", "chance":0.05 } + "plague": { "elem1":"plague", "chance":0.05 } }, properties: { dead: false, dir: 1, panic: 0, charged: false, - didChargeBlueTinted: false + didChargeBlueTinted: false }, movable: true, tick: function(pixel) { @@ -28842,14 +28842,14 @@ Make sure to save your command in a file if you want to add this preset again.` "cancer": { "elem1":"cancer", "chance":0.005 }, "radiation": { "elem1":["ash","meat","rotten_meat","cooked_meat"], "chance":0.4 }, "plague": { "elem1":"plague", "chance":0.05 }, - "oxygen": { "elem2":"carbon_dioxide", "chance":0.5 } + "oxygen": { "elem2":"carbon_dioxide", "chance":0.5 } }, properties: { dead: false, following: false, hissing: false, charged: false, - didChargeBlueTinted: false + didChargeBlueTinted: false }, movable: true, tick: function(pixel) { @@ -29112,7 +29112,7 @@ Make sure to save your command in a file if you want to add this preset again.` dead: false, dir: 1, panic: 0, - following: false + following: false }, movable: true, tick: function(pixel) { @@ -29153,14 +29153,14 @@ Make sure to save your command in a file if you want to add this preset again.` reactions: { "cancer": { "elem1":"cancer", "chance":0.005 }, "radiation": { "elem1":["ash","meat","rotten_meat","cooked_meat"], "chance":0.4 }, - "plague": { "elem1":"plague", "chance":0.05 } + "plague": { "elem1":"plague", "chance":0.05 } }, properties: { dead: false, dir: 1, panic: 0, charged: false, - didChargeBlueTinted: false + didChargeBlueTinted: false }, movable: true, tick: function(pixel) { @@ -29381,14 +29381,14 @@ Make sure to save your command in a file if you want to add this preset again.` "cancer": { "elem1":"cancer", "chance":0.005 }, "radiation": { "elem1":["ash","meat","rotten_meat","cooked_meat"], "chance":0.4 }, "plague": { "elem1":"plague", "chance":0.05 }, - "oxygen": { "elem2":"carbon_dioxide", "chance":0.5 } + "oxygen": { "elem2":"carbon_dioxide", "chance":0.5 } }, properties: { dead: false, following: false, hissing: false, charged: false, - didChargeBlueTinted: false + didChargeBlueTinted: false }, movable: true, tick: function(pixel) { @@ -29651,7 +29651,7 @@ Make sure to save your command in a file if you want to add this preset again.` dead: false, dir: 1, panic: 0, - following: false + following: false }, movable: true, tick: function(pixel) { @@ -29687,14 +29687,14 @@ Make sure to save your command in a file if you want to add this preset again.` reactions: { "cancer": { "elem1":"cancer", "chance":0.005 }, "radiation": { "elem1":["ash","meat","rotten_meat","cooked_meat"], "chance":0.4 }, - "plague": { "elem1":"plague", "chance":0.05 } + "plague": { "elem1":"plague", "chance":0.05 } }, properties: { dead: false, dir: 1, panic: 0, charged: false, - didChargeBlueTinted: false + didChargeBlueTinted: false }, movable: true, tick: function(pixel) { @@ -29911,14 +29911,14 @@ Make sure to save your command in a file if you want to add this preset again.` "cancer": { "elem1":"cancer", "chance":0.005 }, "radiation": { "elem1":["ash","meat","rotten_meat","cooked_meat"], "chance":0.4 }, "plague": { "elem1":"plague", "chance":0.05 }, - "oxygen": { "elem2":"carbon_dioxide", "chance":0.5 } + "oxygen": { "elem2":"carbon_dioxide", "chance":0.5 } }, properties: { dead: false, following: false, hissing: false, charged: false, - didChargeBlueTinted: false + didChargeBlueTinted: false }, movable: true, tick: function(pixel) { @@ -30218,7 +30218,7 @@ Make sure to save your command in a file if you want to add this preset again.` desc: "A spiky mace attached to Nothing There, which can turn humans into red clouds.", color: "#fa4632", properties: { - counter: 2 + counter: 2 }, related: ["nothing_there_phase_3_body","nothing_there_phase_3_head"], movable: true, @@ -30254,7 +30254,7 @@ Make sure to save your command in a file if you want to add this preset again.` desc: "A very sharp blade attached to Nothing There, which can turn humans into red clouds.", color: "#a33c3c", properties: { - counter: 4 + counter: 4 }, related: ["nothing_there_phase_3_body","nothing_there_phase_3_head"], movable: true, @@ -30302,13 +30302,13 @@ Make sure to save your command in a file if you want to add this preset again.` reactions: { "cancer": { "elem1":"cancer", "chance":0.00002 }, "radiation": { "elem1":["ash","meat","rotten_meat","cooked_meat"], "chance":0.00004 }, - "plague": { "elem1":"plague", "chance":0.000003 } + "plague": { "elem1":"plague", "chance":0.000003 } }, related: ["nothing_there_phase_2", "nothing_there_phase_3_body", "nothing_there_phase_3_head"], properties: { dead: false, dir: 1, - following: false + following: false }, movable: true, tick: function(pixel) { @@ -30495,13 +30495,13 @@ Make sure to save your command in a file if you want to add this preset again.` reactions: { "cancer": { "elem1":"cancer", "chance":0.000001 }, "radiation": { "elem1":["ash","meat","rotten_meat","cooked_meat"], "chance":0.000001 }, - "plague": { "elem1":"plague", "chance":0.000001 } + "plague": { "elem1":"plague", "chance":0.000001 } }, related: ["nothing_there_phase_1", "nothing_there_phase_3_body", "nothing_there_phase_3_head"], properties: { dead: false, dir: 1, - timer: 0 + timer: 0 }, movable: true, tick: function(pixel) { @@ -30546,7 +30546,7 @@ Make sure to save your command in a file if you want to add this preset again.` dead: false, dir: 1, panic: 0, - following: false + following: false }, movable: true, tick: function(pixel) { @@ -30582,13 +30582,13 @@ Make sure to save your command in a file if you want to add this preset again.` reactions: { "cancer": { "elem1":"cancer", "chance":0.00001 }, "radiation": { "elem1":["ash","meat","rotten_meat","cooked_meat"], "chance":0.00002 }, - "plague": { "elem1":"plague", "chance":0.0000015 } + "plague": { "elem1":"plague", "chance":0.0000015 } }, properties: { dead: false, dir: 1, panic: 0, - following: false + following: false }, movable: true, related: ["nothing_there_phase_1", "nothing_there_phase_2", "nothing_there_mace", "nothing_there_cleaver", "nothing_there_bullet"], @@ -30687,13 +30687,13 @@ Make sure to save your command in a file if you want to add this preset again.` reactions: { "cancer": { "elem1":"cancer", "chance":0.00001 }, "radiation": { "elem1":["ash","meat","rotten_meat","cooked_meat"], "chance":0.00002 }, - "plague": { "elem1":"plague", "chance":0.0000015 } + "plague": { "elem1":"plague", "chance":0.0000015 } }, properties: { dead: false, dir: 1, panic: 0, - following: false + following: false }, movable: true, related: ["nothing_there_phase_1", "nothing_there_phase_2", "nothing_there_mace", "nothing_there_cleaver", , "nothing_there_bullet"], @@ -31011,7 +31011,7 @@ Make sure to save your command in a file if you want to add this preset again.` fall: 0, attached: false, attachOffsets: [null, null], - penetrateCounter: 7 + penetrateCounter: 7 }, density: 2471, color: "#cacdcf", @@ -31153,7 +31153,7 @@ Make sure to save your command in a file if you want to add this preset again.` dead: false, dir: 1, panic: 0, - following: false + following: false }, movable: true, tick: function(pixel) { @@ -31193,14 +31193,14 @@ Make sure to save your command in a file if you want to add this preset again.` reactions: { "cancer": { "elem1":"cancer", "chance":0.005 }, "radiation": { "elem1":["ash","meat","rotten_meat","cooked_meat"], "chance":0.4 }, - "plague": { "elem1":"plague", "chance":0.05 } + "plague": { "elem1":"plague", "chance":0.05 } }, properties: { dead: false, dir: 1, panic: 0, chargeCounter: 20, - shooting: false + shooting: false }, movable: true, tick: function(pixel) { @@ -31322,12 +31322,12 @@ Make sure to save your command in a file if you want to add this preset again.` reactions: { "cancer": { "elem1":"cancer", "chance":0.005 }, "radiation": { "elem1":["ash","meat","rotten_meat","cooked_meat"], "chance":0.4 }, - "plague": { "elem1":"plague", "chance":0.05 } + "plague": { "elem1":"plague", "chance":0.05 } }, properties: { dead: false, dir: 1, - panic: 0 + panic: 0 }, movable: true, tick: function(pixel) { @@ -31501,7 +31501,7 @@ Make sure to save your command in a file if you want to add this preset again.` "ink": { "elem1":"rotten_meat", "elem2":null, "chance":0.1 }, "acid": { "elem1":"rotten_meat", "elem2":null, "chance":0.5 }, "acid_gas": { "elem1":"rotten_meat", "chance":0.4 }, - "cyanide": { "elem1":"rotten_meat", "elem2":null, "chance":0.5 } + "cyanide": { "elem1":"rotten_meat", "elem2":null, "chance":0.5 } }, tempHigh: 100, stateHigh: "cooked_meat", @@ -32262,7 +32262,7 @@ Make sure to save your command in a file if you want to add this preset again.` "ammonia": { "elem1":["algae","cell","mushroom_spore","lichen","yeast","antibody"], "chance":0.05 }, "radiation": { "elem1":["algae","cell","mushroom_spore","lichen","yeast","antibody"], "chance":0.15 }, "light": { "elem1":["algae","cell","mushroom_spore","lichen","yeast","antibody"], "chance":0.5 }, - "oxygen": { "elem1":["algae","cell","mushroom_spore","lichen","yeast","antibody"], "chance":0.02 } + "oxygen": { "elem1":["algae","cell","mushroom_spore","lichen","yeast","antibody"], "chance":0.02 } }, density: 1110, tempHigh: 100, @@ -32271,7 +32271,7 @@ Make sure to save your command in a file if you want to add this preset again.` category: "liquids", hidden: true, reactions: { - concoction: { "elem1": ["primordial_soup", "birthpool", "primordial_birthpool"], "elem2": ["primordial_soup", "birthpool", "primordial_birthpool"], "chance":0.0045} + concoction: { "elem1": ["primordial_soup", "birthpool", "primordial_birthpool"], "elem2": ["primordial_soup", "birthpool", "primordial_birthpool"], "chance":0.0045} }, }; @@ -35932,7 +35932,7 @@ Make sure to save your command in a file if you want to add this preset again.` properties: { range: 4, outputOffset: [0, 5], - absorbed: {} + absorbed: {} }, category: "machines", behavior: behaviors.WALL, @@ -38008,7 +38008,7 @@ Make sure to save your command in a file if you want to add this preset again.` reactions: { "sugar": { "elem1": "decayed_tooth", "elem2": null, "chance": 0.003 }, "plaque": { "elem1": "decayed_tooth", "elem2": null, "chance": 0.002 }, - "acid": { "elem1": "decayed_tooth", "elem2": null } + "acid": { "elem1": "decayed_tooth", "elem2": null } }, category:"life", tempHigh: 1000, //https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5887641/ @@ -38027,7 +38027,7 @@ Make sure to save your command in a file if you want to add this preset again.` "M2|M1 AND ST AND CR:plague%0.01 AND CR:acid%0.01 AND CR:infection%0.003 AND CH:tooth>decayed_tooth%0.01|M2", ], reactions: { - "acid": { "elem1": null, "elem2": null, "chance": 0.01 } + "acid": { "elem1": null, "elem2": null, "chance": 0.01 } }, category:"life", tempHigh: 100, @@ -38046,7 +38046,7 @@ Make sure to save your command in a file if you want to add this preset again.` "XX|M1 AND ST AND CR:plague%0.02 AND CR:acid%0.01 AND CR:infection%0.003 AND CH:tooth>decayed_tooth%0.01|XX", ], reactions: { - "acid": { "elem1": null, "elem2": null, "chance": 0.01 } + "acid": { "elem1": null, "elem2": null, "chance": 0.01 } }, category:"other", tempHigh: elements.calcium.tempHigh, @@ -38066,7 +38066,7 @@ Make sure to save your command in a file if you want to add this preset again.` "XX|M1|XX", ], reactions: { - "acid": { "elem1": null, "elem2": null, "chance": 0.7 } + "acid": { "elem1": null, "elem2": null, "chance": 0.7 } }, tempHigh: 1000, stateHigh: ["steam","salt","meat","hydroxyapatite"], @@ -38099,7 +38099,7 @@ Make sure to save your command in a file if you want to add this preset again.` ], reactions: { "plaque": {"elem1":["foam","toothpaste","toothpaste"], "elem2":"foam", "chance":0.7}, - "decayed_tooth": {"elem1":"tooth", "elem2":"foam", "chance":0.5} + "decayed_tooth": {"elem1":"tooth", "elem2":"foam", "chance":0.5} }, state: "solid", category: "other", @@ -38349,7 +38349,7 @@ Make sure to save your command in a file if you want to add this preset again.` color: ["#ebebeb", "#e6d9d1"], properties: { "attached": false, - "attachOffsets": [null, null] + "attachOffsets": [null, null] }, tick: function(pixel) { if (pixel.start === pixelTicks) {return} @@ -38382,7 +38382,7 @@ Make sure to save your command in a file if you want to add this preset again.` color: ["#5e807d","#679e99"], behavior: behaviors.SUPPORT, reactions: { - "radiation": { "elem1":"rad_glass_pane", "chance":0.33 } + "radiation": { "elem1":"rad_glass_pane", "chance":0.33 } }, tempHigh: 1500, stateHigh: "molten_glass", @@ -38452,7 +38452,7 @@ Make sure to save your command in a file if you want to add this preset again.` "salt_water": { "elem1":"oxidized_copper", chance:0.005 }, "dirty_water": { "elem1":"oxidized_copper", chance:0.04 }, "sugar_water": { "elem1":"oxidized_copper", chance:0.0035 }, - "seltzer": { "elem1":"oxidized_copper", chance:0.006 } + "seltzer": { "elem1":"oxidized_copper", chance:0.006 } }, category: "solids", tempHigh: 1085, @@ -38549,7 +38549,7 @@ Make sure to save your command in a file if you want to add this preset again.` color: "#ababab", properties: { "attached": false, - "attachOffsets": [null, null] + "attachOffsets": [null, null] }, tick: function(pixel) { if (pixel.start === pixelTicks) {return} @@ -38601,7 +38601,7 @@ Make sure to save your command in a file if you want to add this preset again.` }, properties: { "attached": false, - "attachOffsets": [null, null] + "attachOffsets": [null, null] }, tempHigh: 1455.5, stateHigh: "molten_steel", @@ -39143,7 +39143,7 @@ Make sure to save your command in a file if you want to add this preset again.` volume: 1, delay: 0, debounce: 0, - debounceLength: tps + debounceLength: tps }, tick: function(pixel) { var pixelSoundName = `x${pixel.x}y${pixel.y}`; //Generate unique-enough name @@ -39545,7 +39545,7 @@ Make sure to save your command in a file if you want to add this preset again.` properties: { inputs: [], outputs: [], - rate: 2 + rate: 2 }, tick: function(pixel) { if(pixel.inputs.length == 0 && pixel.outputs.length == 0) { @@ -39696,7 +39696,7 @@ Make sure to save your command in a file if you want to add this preset again.` color: "#bfff7f", properties: { _channel: 0, - _correspondingWifi: null + _correspondingWifi: null }, hardness: 0.8, breakInto: ["plastic","steel","copper"], @@ -39755,7 +39755,7 @@ Make sure to save your command in a file if you want to add this preset again.` color: "#00ff7f", properties: { _channel: 0, - _correspondingWifi: null + _correspondingWifi: null }, hardness: 0.8, breakInto: ["plastic","steel","copper"], @@ -39813,7 +39813,7 @@ Make sure to save your command in a file if you want to add this preset again.` elements.receiver = { color: "#bfff00", properties: { - _channel: 0 + _channel: 0 }, hardness: 0.8, breakInto: ["plastic","steel","copper"], @@ -39926,7 +39926,7 @@ Make sure to save your command in a file if you want to add this preset again.` elements.injector_poison = { properties: { didWeakColorChange: 0, - poison: 15 + poison: 15 }, stain: 0.2, color: ["#f70a98", "#ff308d"], @@ -40494,6 +40494,847 @@ Make sure to save your command in a file if you want to add this preset again.` }); }; + //EXPERIMENTAL STRICTLY DIRECTIONAL WIRE ## + + //The CMYK is symbolic + elements.start_test = { + color: "#dddddd", + category: "test", + behavior: behaviors.WALL, + insulate: true, + hardness: 1, + conduct: 1, + tick: function(pixel) { + if(pixel.charge) { + for(i = 0; i < adjacentCoords.length; i++) { + var pX = pixel.x; + var pY = pixel.y; + var nX = pixel.x + adjacentCoords[i][0]; + var nY = pixel.y + adjacentCoords[i][1]; + + if(!isEmpty(nX,nY,true)) { + var newPixel = pixelMap[nX][nY]; + var newInfo = elements[newPixel.element]; + var newCategory = newInfo.category; + if(newCategory == elements[pixel.element].category) { + newPixel.value = 1; + }; + }; + }; + }; + }, + }; + + elements.end_test = { + color: "#888888", + category: "test", + properties: { + value: 0, + offColor: null, + onColor: null, + }, + behavior: behaviors.WALL, + insulate: true, + hardness: 1, + tick: function(pixel) { + if(pixel.offColor === null) { + pixel.offColor = _rgbHexCatcher(pixel.color) + }; + pixel.onColor = lightenColor(pixel.offColor,32,"rgb"); + pixel.color = (pixel.value > 0 ? pixel.onColor : pixel.offColor); + + if(pixel.value === 1) { + for(i = 0; i < adjacentCoords.length; i++) { + var pX = pixel.x; + var pY = pixel.y; + var nX = pixel.x + adjacentCoords[i][0]; + var nY = pixel.y + adjacentCoords[i][1]; + + if(!isEmpty(nX,nY,true)) { + var newPixel = pixelMap[nX][nY]; + var newInfo = elements[newPixel.element]; + if(newInfo.conduct) { + //console.log(`cond ${nX} ${nY}`) + if(!newPixel.chargeCD) { + //console.log(`noCD ${nX} ${nY}`) + if(Math.random() < newInfo.conduct) { + //console.log(`rolled ${nX} ${nY}`) + if(isNaN(newPixel.charge) || newPixel.charge <= 1) { + //console.log(`dead ${nX} ${nY}`) + newPixel.charge = 1 + }/* else { + console.log(`maybe if you had stanned loona ${nX} ${nY}`) + }*/; + }; + }; + }; + }; + }; + pixel.value = 0; + }; + }, + }; + + elements.right_test = { + color: "#dddd22", + category: "test", + properties: { + value: 0, + offColor: null, + onColor: null, + }, + behavior: behaviors.WALL, + insulate: true, + hardness: 1, + tick: function(pixel) { + if(pixel.offColor === null) { + pixel.offColor = _rgbHexCatcher(pixel.color) + }; + pixel.onColor = lightenColor(pixel.offColor,32,"rgb"); + pixel.color = (pixel.value > 0 ? pixel.onColor : pixel.offColor); + + var newPixelCoordOffset = [1, 0]; + var pX = pixel.x; + var pY = pixel.y; + var nX = pixel.x+newPixelCoordOffset[0]; + var nY = pixel.y+newPixelCoordOffset[1]; + + if(pixel.value === 1) { + if(!isEmpty(nX,nY,true)) { + var newPixel = pixelMap[nX][nY]; + var newInfo = elements[newPixel.element]; + var newCategory = newInfo.category; + if(newCategory == elements[pixel.element].category) { + newPixel.value = 1; + }; + }; + pixel.value = 0; + }; + }, + }; + + elements.left_test = { + color: "#dd22dd", + category: "test", + properties: { + value: 0, + offColor: null, + onColor: null, + }, + behavior: behaviors.WALL, + insulate: true, + hardness: 1, + tick: function(pixel) { + if(pixel.offColor === null) { + pixel.offColor = _rgbHexCatcher(pixel.color) + }; + pixel.onColor = lightenColor(pixel.offColor,32,"rgb"); + pixel.color = (pixel.value > 0 ? pixel.onColor : pixel.offColor); + + var newPixelCoordOffset = [-1, 0]; + var pX = pixel.x; + var pY = pixel.y; + var nX = pixel.x+newPixelCoordOffset[0]; + var nY = pixel.y+newPixelCoordOffset[1]; + + if(pixel.value === 1) { + if(!isEmpty(nX,nY,true)) { + var newPixel = pixelMap[nX][nY]; + var newInfo = elements[newPixel.element]; + var newCategory = newInfo.category; + if(newCategory == elements[pixel.element].category) { + newPixel.value = 1; + }; + }; + pixel.value = 0; + }; + }, + }; + + elements.down_test = { + color: "#222222", + category: "test", + properties: { + value: 0, + offColor: null, + onColor: null, + }, + behavior: behaviors.WALL, + insulate: true, + hardness: 1, + tick: function(pixel) { + if(pixel.offColor === null) { + pixel.offColor = _rgbHexCatcher(pixel.color) + }; + pixel.onColor = lightenColor(pixel.offColor,32,"rgb"); + pixel.color = (pixel.value > 0 ? pixel.onColor : pixel.offColor); + + var newPixelCoordOffset = [0, 1]; + var pX = pixel.x; + var pY = pixel.y; + var nX = pixel.x+newPixelCoordOffset[0]; + var nY = pixel.y+newPixelCoordOffset[1]; + + if(pixel.value === 1) { + if(!isEmpty(nX,nY,true)) { + var newPixel = pixelMap[nX][nY]; + var newInfo = elements[newPixel.element]; + var newCategory = newInfo.category; + if(newCategory == elements[pixel.element].category) { + newPixel.value = 1; + }; + }; + pixel.value = 0; + }; + }, + }; + + elements.up_test = { + color: "#22dddd", + category: "test", + properties: { + value: 0, + offColor: null, + onColor: null, + }, + behavior: behaviors.WALL, + insulate: true, + hardness: 1, + tick: function(pixel) { + if(pixel.offColor === null) { + pixel.offColor = _rgbHexCatcher(pixel.color) + }; + pixel.onColor = lightenColor(pixel.offColor,32,"rgb"); + pixel.color = (pixel.value > 0 ? pixel.onColor : pixel.offColor); + + var newPixelCoordOffset = [0, -1]; + var pX = pixel.x; + var pY = pixel.y; + var nX = pixel.x+newPixelCoordOffset[0]; + var nY = pixel.y+newPixelCoordOffset[1]; + + if(pixel.value === 1) { + if(!isEmpty(nX,nY,true)) { + var newPixel = pixelMap[nX][nY]; + var newInfo = elements[newPixel.element]; + var newCategory = newInfo.category; + if(newCategory == elements[pixel.element].category) { + newPixel.value = 1; + }; + }; + pixel.value = 0; + }; + }, + }; + + elements.up_left_test = { + color: "#2222dd", + category: "test", + properties: { + value: 0, + offColor: null, + onColor: null, + }, + behavior: behaviors.WALL, + insulate: true, + hardness: 1, + tick: function(pixel) { + if(pixel.offColor === null) { + pixel.offColor = _rgbHexCatcher(pixel.color) + }; + pixel.onColor = lightenColor(pixel.offColor,32,"rgb"); + pixel.color = (pixel.value > 0 ? pixel.onColor : pixel.offColor); + + var newPixelCoordOffsets = [[0, -1], [-1, 0]]; + + if(pixel.value === 1) { + for(i = 0; i < newPixelCoordOffsets.length; i++) { + var pX = pixel.x; + var pY = pixel.y; + var nX = pixel.x+newPixelCoordOffsets[i][0]; + var nY = pixel.y+newPixelCoordOffsets[i][1]; + if(!isEmpty(nX,nY,true)) { + var newPixel = pixelMap[nX][nY]; + var newInfo = elements[newPixel.element]; + var newCategory = newInfo.category; + if(newCategory == elements[pixel.element].category) { + newPixel.value = 1; + }; + }; + pixel.value = 0; + }; + }; + }, + }; + + elements.up_left_test = { + color: "#2222dd", + category: "test", + properties: { + value: 0, + offColor: null, + onColor: null, + }, + behavior: behaviors.WALL, + insulate: true, + hardness: 1, + tick: function(pixel) { + if(pixel.offColor === null) { + pixel.offColor = _rgbHexCatcher(pixel.color) + }; + pixel.onColor = lightenColor(pixel.offColor,32,"rgb"); + pixel.color = (pixel.value > 0 ? pixel.onColor : pixel.offColor); + + var newPixelCoordOffsets = [[0, -1], [-1, 0]]; + + if(pixel.value === 1) { + for(i = 0; i < newPixelCoordOffsets.length; i++) { + var pX = pixel.x; + var pY = pixel.y; + var nX = pixel.x+newPixelCoordOffsets[i][0]; + var nY = pixel.y+newPixelCoordOffsets[i][1]; + if(!isEmpty(nX,nY,true)) { + var newPixel = pixelMap[nX][nY]; + var newInfo = elements[newPixel.element]; + var newCategory = newInfo.category; + if(newCategory == elements[pixel.element].category) { + newPixel.value = 1; + }; + }; + pixel.value = 0; + }; + }; + }, + }; + + elements.up_right_test = { + color: "#22dd22", + category: "test", + properties: { + value: 0, + offColor: null, + onColor: null, + }, + behavior: behaviors.WALL, + insulate: true, + hardness: 1, + tick: function(pixel) { + if(pixel.offColor === null) { + pixel.offColor = _rgbHexCatcher(pixel.color) + }; + pixel.onColor = lightenColor(pixel.offColor,32,"rgb"); + pixel.color = (pixel.value > 0 ? pixel.onColor : pixel.offColor); + + var newPixelCoordOffsets = [[0, -1], [1, 0]]; + + if(pixel.value === 1) { + for(i = 0; i < newPixelCoordOffsets.length; i++) { + var pX = pixel.x; + var pY = pixel.y; + var nX = pixel.x+newPixelCoordOffsets[i][0]; + var nY = pixel.y+newPixelCoordOffsets[i][1]; + if(!isEmpty(nX,nY,true)) { + var newPixel = pixelMap[nX][nY]; + var newInfo = elements[newPixel.element]; + var newCategory = newInfo.category; + if(newCategory == elements[pixel.element].category) { + newPixel.value = 1; + }; + }; + pixel.value = 0; + }; + }; + }, + }; + + elements.up_down_test = { + color: "#228888", + category: "test", + properties: { + value: 0, + offColor: null, + onColor: null, + }, + behavior: behaviors.WALL, + insulate: true, + hardness: 1, + tick: function(pixel) { + if(pixel.offColor === null) { + pixel.offColor = _rgbHexCatcher(pixel.color) + }; + pixel.onColor = lightenColor(pixel.offColor,32,"rgb"); + pixel.color = (pixel.value > 0 ? pixel.onColor : pixel.offColor); + + var newPixelCoordOffsets = [[0, -1], [0, 1]]; + + if(pixel.value === 1) { + for(i = 0; i < newPixelCoordOffsets.length; i++) { + var pX = pixel.x; + var pY = pixel.y; + var nX = pixel.x+newPixelCoordOffsets[i][0]; + var nY = pixel.y+newPixelCoordOffsets[i][1]; + if(!isEmpty(nX,nY,true)) { + var newPixel = pixelMap[nX][nY]; + var newInfo = elements[newPixel.element]; + var newCategory = newInfo.category; + if(newCategory == elements[pixel.element].category) { + newPixel.value = 1; + }; + }; + pixel.value = 0; + }; + }; + }, + }; + + + elements.left_right_test = { + color: "#dd2222", + category: "test", + properties: { + value: 0, + offColor: null, + onColor: null, + }, + behavior: behaviors.WALL, + insulate: true, + hardness: 1, + tick: function(pixel) { + if(pixel.offColor === null) { + pixel.offColor = _rgbHexCatcher(pixel.color) + }; + pixel.onColor = lightenColor(pixel.offColor,32,"rgb"); + pixel.color = (pixel.value > 0 ? pixel.onColor : pixel.offColor); + + var newPixelCoordOffsets = [[-1, 0], [1, 0]]; + + if(pixel.value === 1) { + for(i = 0; i < newPixelCoordOffsets.length; i++) { + var pX = pixel.x; + var pY = pixel.y; + var nX = pixel.x+newPixelCoordOffsets[i][0]; + var nY = pixel.y+newPixelCoordOffsets[i][1]; + if(!isEmpty(nX,nY,true)) { + var newPixel = pixelMap[nX][nY]; + var newInfo = elements[newPixel.element]; + var newCategory = newInfo.category; + if(newCategory == elements[pixel.element].category) { + newPixel.value = 1; + }; + }; + pixel.value = 0; + }; + }; + }, + }; + + elements.left_down_test = { + color: "#882288", + category: "test", + properties: { + value: 0, + offColor: null, + onColor: null, + }, + behavior: behaviors.WALL, + insulate: true, + hardness: 1, + tick: function(pixel) { + if(pixel.offColor === null) { + pixel.offColor = _rgbHexCatcher(pixel.color) + }; + pixel.onColor = lightenColor(pixel.offColor,32,"rgb"); + pixel.color = (pixel.value > 0 ? pixel.onColor : pixel.offColor); + + var newPixelCoordOffsets = [[-1, 0], [0, 1]]; + + if(pixel.value === 1) { + for(i = 0; i < newPixelCoordOffsets.length; i++) { + var pX = pixel.x; + var pY = pixel.y; + var nX = pixel.x+newPixelCoordOffsets[i][0]; + var nY = pixel.y+newPixelCoordOffsets[i][1]; + if(!isEmpty(nX,nY,true)) { + var newPixel = pixelMap[nX][nY]; + var newInfo = elements[newPixel.element]; + var newCategory = newInfo.category; + if(newCategory == elements[pixel.element].category) { + newPixel.value = 1; + }; + }; + pixel.value = 0; + }; + }; + }, + }; + + + elements.right_down_test = { + color: "#888822", + category: "test", + properties: { + value: 0, + offColor: null, + onColor: null, + }, + behavior: behaviors.WALL, + insulate: true, + hardness: 1, + tick: function(pixel) { + if(pixel.offColor === null) { + pixel.offColor = _rgbHexCatcher(pixel.color) + }; + pixel.onColor = lightenColor(pixel.offColor,32,"rgb"); + pixel.color = (pixel.value > 0 ? pixel.onColor : pixel.offColor); + + var newPixelCoordOffsets = [[1, 0], [0, 1]]; + + if(pixel.value === 1) { + for(i = 0; i < newPixelCoordOffsets.length; i++) { + var pX = pixel.x; + var pY = pixel.y; + var nX = pixel.x+newPixelCoordOffsets[i][0]; + var nY = pixel.y+newPixelCoordOffsets[i][1]; + if(!isEmpty(nX,nY,true)) { + var newPixel = pixelMap[nX][nY]; + var newInfo = elements[newPixel.element]; + var newCategory = newInfo.category; + if(newCategory == elements[pixel.element].category) { + newPixel.value = 1; + }; + }; + pixel.value = 0; + }; + }; + }, + }; + + elements.up_left_right_test = { + color: "#454545", + category: "test", + properties: { + value: 0, + offColor: null, + onColor: null, + }, + behavior: behaviors.WALL, + insulate: true, + hardness: 1, + tick: function(pixel) { + if(pixel.offColor === null) { + pixel.offColor = _rgbHexCatcher(pixel.color) + }; + pixel.onColor = lightenColor(pixel.offColor,32,"rgb"); + pixel.color = (pixel.value > 0 ? pixel.onColor : pixel.offColor); + + var newPixelCoordOffsets = [[0, -1], [-1, 0], [1, 0]]; + + if(pixel.value === 1) { + for(i = 0; i < newPixelCoordOffsets.length; i++) { + var pX = pixel.x; + var pY = pixel.y; + var nX = pixel.x+newPixelCoordOffsets[i][0]; + var nY = pixel.y+newPixelCoordOffsets[i][1]; + if(!isEmpty(nX,nY,true)) { + var newPixel = pixelMap[nX][nY]; + var newInfo = elements[newPixel.element]; + var newCategory = newInfo.category; + if(newCategory == elements[pixel.element].category) { + newPixel.value = 1; + }; + }; + pixel.value = 0; + }; + }; + }, + }; + + elements.left_right_down_test = { + color: "#882222", + category: "test", + properties: { + value: 0, + offColor: null, + onColor: null, + }, + behavior: behaviors.WALL, + insulate: true, + hardness: 1, + tick: function(pixel) { + if(pixel.offColor === null) { + pixel.offColor = _rgbHexCatcher(pixel.color) + }; + pixel.onColor = lightenColor(pixel.offColor,32,"rgb"); + pixel.color = (pixel.value > 0 ? pixel.onColor : pixel.offColor); + + var newPixelCoordOffsets = [[-1, 0], [1, 0], [0, 1]]; + + if(pixel.value === 1) { + for(i = 0; i < newPixelCoordOffsets.length; i++) { + var pX = pixel.x; + var pY = pixel.y; + var nX = pixel.x+newPixelCoordOffsets[i][0]; + var nY = pixel.y+newPixelCoordOffsets[i][1]; + if(!isEmpty(nX,nY,true)) { + var newPixel = pixelMap[nX][nY]; + var newInfo = elements[newPixel.element]; + var newCategory = newInfo.category; + if(newCategory == elements[pixel.element].category) { + newPixel.value = 1; + }; + }; + pixel.value = 0; + }; + }; + }, + }; + + elements.up_right_down_test = { + color: "#228822", + category: "test", + properties: { + value: 0, + offColor: null, + onColor: null, + }, + behavior: behaviors.WALL, + insulate: true, + hardness: 1, + tick: function(pixel) { + if(pixel.offColor === null) { + pixel.offColor = _rgbHexCatcher(pixel.color) + }; + pixel.onColor = lightenColor(pixel.offColor,32,"rgb"); + pixel.color = (pixel.value > 0 ? pixel.onColor : pixel.offColor); + + var newPixelCoordOffsets = [[0, -1], [1, 0], [0, 1]]; + + if(pixel.value === 1) { + for(i = 0; i < newPixelCoordOffsets.length; i++) { + var pX = pixel.x; + var pY = pixel.y; + var nX = pixel.x+newPixelCoordOffsets[i][0]; + var nY = pixel.y+newPixelCoordOffsets[i][1]; + if(!isEmpty(nX,nY,true)) { + var newPixel = pixelMap[nX][nY]; + var newInfo = elements[newPixel.element]; + var newCategory = newInfo.category; + if(newCategory == elements[pixel.element].category) { + newPixel.value = 1; + }; + }; + pixel.value = 0; + }; + }; + }, + }; + + elements.up_left_down_test = { + color: "#222288", + category: "test", + properties: { + value: 0, + offColor: null, + onColor: null, + }, + behavior: behaviors.WALL, + insulate: true, + hardness: 1, + tick: function(pixel) { + if(pixel.offColor === null) { + pixel.offColor = _rgbHexCatcher(pixel.color) + }; + pixel.onColor = lightenColor(pixel.offColor,32,"rgb"); + pixel.color = (pixel.value > 0 ? pixel.onColor : pixel.offColor); + + var newPixelCoordOffsets = [[0, -1], [-1, 0], [0, 1]]; + + if(pixel.value === 1) { + for(i = 0; i < newPixelCoordOffsets.length; i++) { + var pX = pixel.x; + var pY = pixel.y; + var nX = pixel.x+newPixelCoordOffsets[i][0]; + var nY = pixel.y+newPixelCoordOffsets[i][1]; + if(!isEmpty(nX,nY,true)) { + var newPixel = pixelMap[nX][nY]; + var newInfo = elements[newPixel.element]; + var newCategory = newInfo.category; + if(newCategory == elements[pixel.element].category) { + newPixel.value = 1; + }; + }; + pixel.value = 0; + }; + }; + }, + }; + + //RAY CLONER (like TPT CRAY) ## + + function placeRegularlySpacedPixels(element,startX,startY,xSpacing,ySpacing,overwrite=false,stopAt=null,rayIgnore=[],spawnTemp=null,limit=1000) { + if(element.includes(",")) { element = element.split(",") }; + var newElement = element; + if(isNaN(xSpacing) || isNaN(ySpacing)) { + throw new Error("Missing xSpacing or ySpacing"); + }; + if(xSpacing == 0 && ySpacing == 0) { + //pixel.color = convertColorFormats("#5F5F5F","rgb"); + return false; + }; + if(outOfBounds(startX,startY) /*|| (!overwrite && !isEmpty(startX,startY,false))*/) { + return false; + }; + var posX = startX; + var posY = startY; + var pixelsPlaced = 0; + //var tries = 0; + while(!outOfBounds(posX,posY) /*&& tries < 100*/) { + //tries++; + if(newElement instanceof Array) { newElement = newElement[Math.floor(Math.random() * newElement.length)] }; + if(!elements[newElement]) { + //pixel.color = convertColorFormats("#FF5F5F","rgb"); + console.error(`Nonexistent element ${newElement}`); + return false; + }; + if(isEmpty(posX,posY,true)) { + createPixel(newElement,posX,posY); + if(spawnTemp !== null) { pixelMap[posX][posY].temp = spawnTemp }; + pixelsPlaced++; + } else { + if(outOfBounds(posX,posY)) { + break; + } else { + if(!isEmpty(posX,posY,true)) { + var otherElement = pixelMap[posX][posY].element; + //console.log(tries,"tries"); + //console.log("ri",rayIgnore); + if(rayIgnore) { + /*console.log( + rayIgnore instanceof Array, + otherElement, + otherElement == rayIgnore || rayIgnore.includes(otherElement) + );*/ + if(rayIgnore instanceof Array) { + if(rayIgnore.includes(otherElement)) { + posX += xSpacing; + posY += ySpacing; + //console.log(posX, posY); + continue; + }; + } else { + if(otherElement == rayIgnore) { + posX += xSpacing; + posY += ySpacing; + //console.log(posX,posY); + continue; + }; + }; + }; + if(stopAt) { + if(stopAt instanceof Array) { + if(stopAt.includes(otherElement)) { break }; + } else { + if(otherElement == stopAt) { break }; + }; + }; + if(overwrite) { + changePixel(pixelMap[posX][posY],newElement) + if(spawnTemp !== null) { + pixelMap[posX][posY].temp = spawnTemp; + }; + pixelsPlaced++ + } else { break }; + }; + }; + }; + posX += xSpacing; + posY += ySpacing; + if(limit !== null && pixelsPlaced >= limit) { + return true; + }; + }; + return true; + }; + + elements.ray_cloner = { + properties: { + xSpacing: 0, + ySpacing: 0, + overwrite: false, + stopAt: null, + rayIgnore: [], + spawnAtPixelTemp: false, + maxPixels: 1000, + /*clone: "plasma", + xSpacing: 0, + ySpacing: 1, + overwrite: false, + stopAt: null, + rayIgnoreSelf: true, + spawnAtPixelTemp: true, + maxPixels: 1000,*/ + }, + //temp: 100000, + tick: function(pixel) { + storeFirstTouchingElement(pixel,"clone",true,true); + if(pixel.clone && pixel.charge) { + placeRegularlySpacedPixels( + pixel.clone, + pixel.x+pixel.xSpacing, + pixel.y+pixel.ySpacing, + pixel.xSpacing, + pixel.ySpacing, + pixel.overwrite, + pixel.stopAt, + pixel.rayIgnore, + pixel.spawnAtPixelTemp ? pixel.temp : null, + pixel.maxPixels + ); + pixel.charge = 0 + }; + }, + conduct: 1, + category: "machines", + state: "solid", + density: 3000, + insulate: true, + hardness: 0.8, + color: "#FFFF7F", + desc: `clone: Which element to place. Cannot be an array or comma-separated string, and will be chosen from the first pixel to touch it.
+xSpacing and ySpacing: Horizontal and vertical spacing between x pixels. Note that blocking is only checked at these intervals. An xSpacing of 0 with a ySpacing of 1 would give a straight line going down; xS1 and yS0 would give a line to the right.
+overwrite (default false): Whether to replace pixels the line goes into.
+stopAt (default null): Elements the line to stop at if it hits. Also applies to overwrite, and has no effect if set to null. Can be a string or an array.
+spawnAtPixelTemp (default false): Whether to place new pixels at the same temperature as this pixel.
+maxPixels (default 1000): Maximum amount of pixels/changes (if xSpacing and ySpacing are both less than 2, this corresponds to the pixel length of the line). + +prop or old_prop are highly recommended to set pixel properties`, + }; + + //NO GAMMA RAY SPAWNERS IN RANDOM ## + + runAfterLoad(function() { + randomBlacklist = ["quark_matter", "liquid_neutronium", "molten_neutronium", "neutronium", "neutronium_gas"]; + for(i = 0; i < randomBlacklist.length; i++) { + var element = randomBlacklist[i]; + elements[element].excludeRandom = true; + }; + }); + + //NO RADIOACTIVE ELEMENTS IN FALLING PIXEL EVENTS ## + + window.addEventListener("load",function(){ + var rads = Object.keys(elements).filter(function(name) { + return !!((elements[name].behavior ?? "undefined").toString().match(/C[RH]:[A-Za-z0-9_,]*radiation/)) + }).concat(["radiation"]); + + for(var i = 0; i < rads.length; i++) { + var radElem = rads[i]; + if(randomEventChoices.falling_pixel.includes(radElem)) { + randomEventChoices.falling_pixel.splice(randomEventChoices.falling_pixel.indexOf(radElem),1) + } + }; + }) + //END ## elements.unknown = { @@ -40515,4 +41356,4 @@ These mods have been inserted automatically. Please reload for this to take effe !!! This has nothing to do with the needed mods themselves, and it is something I cannot fix. !!! If the game fails to load, try refreshing (repeating as needed). If this message itself persists, something is wrong.`) -} \ No newline at end of file +}