This commit is contained in:
GGod 2025-02-08 02:11:10 +01:00
commit 3dae0a9951
32 changed files with 51015 additions and 7075 deletions

View File

@ -23,7 +23,7 @@
"shock":"Šok",
"paint":"Malovat",
"sand":"Písek",
"water":"Voda",
"water":"Voda",
"salt_water":"Slaná_Voda",
"sugar_water":"Sladká_Voda",
"seltzer":"Minerální_Voda",
@ -305,7 +305,7 @@
"crumb":"Drobek",
"baked_batter":"Dort",
"wheat":"Pšenice",
"candy":"Sladkosti",
"candy":"Sladkost",
"coffee_bean":"Kávové_Zrna",
"coffee_ground":"Mletá_Káva",
"nut":"Ořech",
@ -444,7 +444,7 @@
"supernova":"Supernova",
"cook":"Vařit",
"incinerate":"Spálit",
"room_temp":"Teplota_Pokoje",
"room_temp":"Pokojová_Teplota",
"positron":"Pozitron",
"tnt":"TNT",
"c4":"C-4",
@ -541,7 +541,11 @@
"tornado":"Tornádo",
"earthquake":"Zemětřesení",
"tsunami":"Tsunami",
"blaster":"Blaster",
"blaster":"Lazerová_Pistole",
"propane_ice":"Zrmzlý_Propan",
"molten_caustic_potash":"Rozteklý_Potaš"
"molten_caustic_potash":"Rozteklý_Potaš",
"spider": "Pavouk",
"web": "Pavučina",
"rice": "Rýže",
"midas_touch": "Midasův_Dotek"
}

View File

@ -12,6 +12,7 @@ var json = `{
"food": "",
"machines": "",
"special": "",
"states": "",
"other": ""`;
for (var element in elements) {
json += ',\n"'+element+'": ""'

View File

@ -233,7 +233,7 @@
"copper":"réz",
"gold":"arany",
"steel":"acél",
"galvanized_steel":"horganyzott_acél"
"galvanized_steel":"horganyzott_acél",
"nickel":"nikkel",
"zinc":"cink",
"silver":"ezüst",
@ -548,7 +548,7 @@
"tsunami": "cunami",
"blaster": "plazmavető",
"propane_ice": "fagyott_propán",
"molten_caustic_potash": "olvadt_kálium-hidroxid"
"molten_caustic_potash": "olvadt_kálium-hidroxid",
"ectoplasm":"ektoplazma",
"soul":"lélek",
"tombstone":"sírkő",

View File

@ -479,7 +479,7 @@
"prop":"реквизит",
"salt_ice":"солёный лёд",
"sugar_ice":"сладкий лёд",
"seltzer_ice":"селтизерный лёд",
"seltzer_ice":"минеральный лёд",
"dirty_ice":"грязный лёд",
"pool_ice":"лёд в бассейне",
"blood_ice":"кровяной лёд",

View File

@ -63,6 +63,7 @@
"rad_glass": "",
"meat": "",
"rotten_meat": "",
"cured_meat": "",
"cooked_meat": "",
"frozen_meat": "",
"salt": "",
@ -98,10 +99,12 @@
"flea": "",
"termite": "",
"ant": "",
"spider": "",
"web": "",
"fly": "",
"firefly": "",
"hive": "",
"bee": "",
"hive": "",
"stink_bug": "",
"dead_bug": "",
"human": "",
@ -123,12 +126,14 @@
"pipe_wall": "",
"mixer": "",
"grinder": "",
"fuse": "",
"ewall": "",
"torch": "",
"spout": "",
"udder": "",
"bone_marrow": "",
"bone": "",
"ball": "",
"balloon": "",
"antipowder": "",
"antimolten": "",
@ -142,7 +147,6 @@
"light": "",
"liquid_light": "",
"laser": "",
"ball": "",
"pointer": "",
"charcoal": "",
"tinder": "",
@ -153,12 +157,14 @@
"nitrogen": "",
"helium": "",
"anesthesia": "",
"carbon_dioxide": "",
"bubble": "",
"ammonia": "",
"liquid_ammonia": "",
"carbon_dioxide": "",
"oil": "",
"lamp_oil": "",
"propane": "",
"liquid_propane": "",
"methane": "",
"liquid_methane": "",
"stained_glass": "",
@ -190,7 +196,6 @@
"vine": "",
"bamboo_plant": "",
"foam": "",
"bubble": "",
"acid": "",
"neutral_acid": "",
"acid_gas": "",
@ -225,7 +230,6 @@
"wax": "",
"melted_wax": "",
"incense": "",
"fuse": "",
"dioxin": "",
"insulation": "",
"sponge": "",
@ -234,11 +238,12 @@
"copper": "",
"gold": "",
"steel": "",
"nickel": "",
"galvanized_steel": "",
"zinc": "",
"silver": "",
"tin": "",
"lead": "",
"nickel": "",
"aluminum": "",
"tungsten": "",
"molten_tungsten": "",
@ -254,7 +259,9 @@
"electrum": "",
"pyrite": "",
"solder": "",
"amber": "",
"molten_copper": "",
"molten_copper_sulfate": "",
"molten_gold": "",
"molten_silver": "",
"molten_iron": "",
@ -273,6 +280,7 @@
"egg": "",
"yolk": "",
"hard_yolk": "",
"cream": "",
"nut_milk": "",
"dough": "",
"batter": "",
@ -280,7 +288,9 @@
"butter": "",
"cheese": "",
"rotten_cheese": "",
"cheese_powder": "",
"chocolate": "",
"chocolate_powder": "",
"grape": "",
"vinegar": "",
"herb": "",
@ -306,10 +316,12 @@
"crumb": "",
"baked_batter": "",
"wheat": "",
"rice": "",
"candy": "",
"coffee_bean": "",
"coffee_ground": "",
"nut": "",
"nut_oil": "",
"nut_meat": "",
"nut_butter": "",
"jelly": "",
@ -317,7 +329,6 @@
"yogurt": "",
"frozen_yogurt": "",
"ice_cream": "",
"cream": "",
"beans": "",
"dry_ice": "",
"nitrogen_ice": "",
@ -350,11 +361,12 @@
"coffee": "",
"honey": "",
"sap": "",
"amber": "",
"caramel": "",
"molasses": "",
"ketchup": "",
"mayo": "",
"grease": "",
"fat": "",
"melted_chocolate": "",
"liquid_hydrogen": "",
"liquid_oxygen": "",
@ -368,6 +380,11 @@
"limestone": "",
"quicklime": "",
"slaked_lime": "",
"potassium": "",
"molten_potassium": "",
"potassium_gas": "",
"magnesium": "",
"molten_magnesium": "",
"thermite": "",
"molten_thermite": "",
"slag": "",
@ -384,19 +401,24 @@
"cyanide": "",
"cyanide_gas": "",
"ozone": "",
"liquid_ozone": "",
"cloud": "",
"rain_cloud": "",
"snow_cloud": "",
"hail_cloud": "",
"thunder_cloud": "",
"acid_cloud": "",
"sandstorm": "",
"pyrocumulus": "",
"fire_cloud": "",
"rad_cloud": "",
"rad_steam": "",
"color_smoke": "",
"spray_paint": "",
"led_r": "",
"led_g": "",
"led_b": "",
"light_bulb": "",
"sulfur": "",
"molten_sulfur": "",
"sulfur_gas": "",
@ -404,9 +426,8 @@
"snake": "",
"loopy": "",
"warp": "",
"midas_touch": "",
"radiation": "",
"rad_steam": "",
"rad_cloud": "",
"fallout": "",
"neutron": "",
"proton": "",
@ -433,6 +454,7 @@
"borax": "",
"epsom_salt": "",
"potassium_salt": "",
"caustic_potash": "",
"sodium_acetate": "",
"lightning": "",
"bless": "",
@ -463,6 +485,7 @@
"greek_fire": "",
"fireball": "",
"rocket": "",
"antibomb": "",
"cold_bomb": "",
"hot_bomb": "",
"antimatter_bomb": "",
@ -471,9 +494,12 @@
"flash": "",
"smoke_grenade": "",
"landmine": "",
"tornado": "",
"earthquake": "",
"tsunami": "",
"blaster": "",
"armageddon": "",
"tesla_coil": "",
"light_bulb": "",
"shocker": "",
"pressure_plate": "",
"primordial_soup": "",
@ -493,12 +519,13 @@
"slime_ice": "",
"antiice": "",
"ammonia_ice": "",
"liquid_propane": "",
"propane_ice": "",
"methane_ice": "",
"molten_brick": "",
"acid_ice": "",
"soda_ice": "",
"molten_steel": "",
"molten_galvanized_steel": "",
"molten_brass": "",
"molten_bronze": "",
"molten_sterling": "",
@ -521,34 +548,12 @@
"molten_amalgam": "",
"neon_ice": "",
"cyanide_ice": "",
"molten_copper_sulfate": "",
"molten_alga": "",
"molten_metal_scrap": "",
"molten_borax": "",
"molten_epsom_salt": "",
"molten_potassium_salt": "",
"molten_sodium_acetate": "",
"frozen_nitro": "",
"cured_meat": "",
"nut_oil": "",
"grease": "",
"fat": "",
"potassium": "",
"molten_potassium": "",
"magnesium": "",
"molten_magnesium": "",
"sandstorm": "",
"caustic_potash": "",
"antibomb": "",
"tornado": "",
"earthquake": "",
"tsunami": "",
"blaster": "",
"propane_ice": "",
"molten_caustic_potash": "",
"ectoplasm":"",
"soul":"",
"tombstone":"",
"spider":"",
"web":""
}
"molten_sodium_acetate": "",
"frozen_nitro": ""
}

View File

@ -135,7 +135,7 @@
<tr><td>velocity.js</td><td>Beta for explosion velocity, and later wind, which may come to the base game in the future</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
<!----><tr><td class="modCat" colspan="3">Tools & Settings</td></tr><!---->
<!-- <tr><td>adjustablepixelsize.js</td><td>Allows you to set the pixelSize with a URL parameter</td><td>Alice</td></tr> -->
<!--<tr><td>adjustablepixelsize.js</td><td>Allows you to set the pixelSize with a URL parameter</td><td>Alice</td></tr>-->
<tr><td>betaworldgen.js</td><td>adds a more advanced world generation to the game</td><td>Adora</td></tr>
<tr><td>betterModManager.js</td><td>Improvements to the Mod Manager</td><td>ggod</td></tr>
<tr><td>betterSettings.js</td><td>Adds additional settings and functionality</td><td>ggod</td></tr>
@ -174,6 +174,7 @@
<tr><td>selective_paint.js</td><td>Adds a tool to paint only selected elements</td><td>SquareScreamYT</td></tr>
<tr><td>stripe_paint.js</td><td>Adds a tool to paint with stripes</td><td>Alice</td></tr>
<tr><td>texturepack.js</td><td>Adds tools that let you create and share custom texture packs</td><td>nousernamefound</td></tr>
<tr><td>text.js</td><td>Adds tools to write text</td><td>RedBirdly</td></tr>
<tr><td>the_ground.js</td><td>Adds several rock types, worldgen settings, and gemstones</td><td>Alice</td></tr>
<!----><tr><td class="modCat" colspan="3">Science & Chemistry</td></tr><!---->
@ -186,7 +187,6 @@
<tr><td>bioooze_and_pyrogens.js</td><td>Adds Bio-Ooze from <a herf="https://frackinuniverse.miraheze.org/wiki/Main_Page">Frackin Universe</a> and several heat-producing materials from various games mods</td><td>Alice</td></tr>
<tr><td>boiling_things.js</td><td>Allows for various elements to be vaporized</td><td>Alice</td></tr>
<tr><td>bouncing_balls.js</td><td>Adds new types of balls that bounce accurately and roll.</td><td>Nekonico</td></tr>
<tr><td>bromine.js</td><td>Adds bromine which emits an orange gas</td><td>Suss</td></tr>
<tr><td>chalcopyrite.js</td><td>Adds the chalcopyrite ore</td><td>Sophie</td></tr>
<tr><td>chem.js</td><td>Adds several chemistry and physics-related elements</td><td>lllllllllwith10ls</td></tr>
<tr><td>clf3.js</td><td>Adds Chlorine Trifluoride</td><td>Alice</td></tr>
@ -231,6 +231,7 @@
<tr><td>flipflop.js</td><td>Toggleable switches; <a href="https://github.com/R74nCom/sandboxels/pull/134">Explanation</a></td><td>Flix</td></tr>
<tr><td>fueled_generators.js</td><td>Fuel powered generators.</td></tr>
<tr><td>gameOfLife.js</td><td>Conway's Game of Life on a screen</td><td>ggod</td></tr>
<tr><td>heatshield.js</td><td>adds heatshields, makes plasma cooler</td></td><td>Taterbob</td></tr>
<tr><td>logicgates.js</td><td>Adds predictable electricity and logic gates</td><td>nousernamefound</td></tr>
<tr><td>note_block.js</td><td>Adds musical Note Blocks</td><td>Alice</td></tr>
<tr><td>nousersthings.js</td><td>Destroyable machines, pipe variants, filters, and more</td><td>nousernamefound</td></tr>
@ -245,10 +246,12 @@
<tr><td>video.js</td><td>Adds a video player</td><td>ggod</td></tr>
<tr><td>waterspout.js</td><td>Adds back the old Water Spout</td><td>mollthecoder</td></tr>
<tr><td>WhisperingTheory.js</td><td>Adds many more variants of heater and cooler</td><td>kaeud</td></tr>
<tr><td>wifi_draw.js</td><td>Draws connections between WiFi in wifi.js and logicgates.js</td><td>RedBirdly</td></tr>
<!----><tr><td class="modCat" colspan="3">Weapons</td></tr><!---->
<tr><td>aircrafts.js</td><td>Adds aircraft and aircraft part pixels</td><td>Jayd</td></tr>
<tr><td>c_fighter_jet.js</td><td>Adds a controllable fighter jet, wasd to move, q+wasd to shoot, gvbn for missiles.</td><td>Jayd</td></tr>
<tr><td>guided_rocket.js</td><td>Adds a homing misile.</td><td>voidapex11</td></tr>
<tr><td>icb.js</td><td>Adds various levels of nested cluster bombs</td><td>Alice</td></tr>
<tr><td>life_eater.js</td><td>Adds Warhammer 40,000s Life-Eater Virus and Virus Bombs</td><td>Alice</td></tr>
<tr><td>liquid_void.js</td><td>Adds a liquid variant of Void</td><td>Alice</td></tr>
@ -284,6 +287,7 @@
<tr><td>biology.js</td><td>Adds various elements and functions that let you build your own organism.</td><td>Nekonico</td></tr>
<tr><td>cat.js</td><td>Adds cats and cat food</td><td>SquareScreamYT</td></tr>
<tr><td>cells.js</td><td>Adds several experimental edits of the Cell element</td><td>Alice</td></tr>
<tr><td>children.js</td><td>Adds pesky little gremlins</td><td>Taterbob</td></tr>
<tr><td>colonies.js</td><td>Adds rockets that contain settlers to terraform a planet.</td><td>Nekonico</td></tr>
<tr><td>crimson.js</td><td>Adds elements relating to the Crimson from Terraria</td><td>Alice</td></tr>
<tr><td>dogs.js</td><td>Adds a simple dog and dog food</td><td>hedera-ivy</td></tr>
@ -322,6 +326,7 @@
<tr><td>all_around_fillers.js</td><td>Adds directional Filler variants</td><td>idk73248</td></tr>
<tr><td>allliquids.js</td><td>Made all elements liquids</td><td>Adora</td></tr>
<tr><td>amogus.js</td><td>Adds a small amogus structure</td><td>Alice</td></tr>
<tr><td>bfdi.js</td><td>Adds several references to bfdi</td><td>Taterbob</td></tr>
<tr><td>citybuilding.js</td><td>Adds seeds that create miniature buildings and other city-related items</td><td>SquareScreamYT</td></tr>
<tr><td>collab_mod.js</td><td>Created by multiple people, adds random things</td><td>mrapple, ilikepizza, stefanblox</td></tr>
<tr><td>doom.js</td><td>As seen on TikTok - Select the Doom element to start, WASD</td><td>ggod</td></tr>
@ -354,18 +359,23 @@
<!----><tr><td class="modCat" colspan="3">Visual Effects</td></tr><!---->
<tr><td>acid_and_shapes.js</td><td>Weird visual effects. Enable in Settings</td><td>Alice</td></tr>
<tr><td>customBackground.js</td><td>Set your background to an image link</td><td>Jayd</td></tr>
<tr><td>fast_lightmap.js</td><td>Makes light sources glow, but the fast version</td><td>RedBirdly</td></tr>
<tr><td>fractals.js</td><td>Adds an element and tools to render fractals in game</td><td>nousernamefound</td></tr>
<tr><td>hexagon_test.js</td><td>Makes pixels look like hexagons</td><td>RedBirdly</td></tr>
<tr><td>heatglow.js</td><td>Red glowing effect for hot metals</td><td>nousernamefound</td></tr>
<tr><td>invisible_dye.js</td><td>Adds elements like Dye and Spray Paint that take the color of the background</td><td>Alice</td></tr>
<tr><td>invisible_wall.js</td><td>Adds an element like Wall that takes the color of the background</td><td>Alice</td></tr>
<tr><td>lightmap.js</td><td>Makes light sources glow</td><td>RedBirdly</td></tr>
<tr><td>moreViews.js</td><td>Many new rendering modes</td><td>ggod</td></tr>
<tr><td>nicer_flame.js</td><td>Makes fire visually pleasing</td><td>RedBirdly</td></tr>
<tr><td>occlusion.js</td><td>Adds realistic shadows (similar to Terraria's lighting)</td><td>RedBirdly</td></tr>
<tr><td>onecolor.js</td><td>Makes all placed pixels single-colored</td><td>nousernamefound</td></tr>
<tr><td>paint_event.js</td><td>Adds a random event that randomly paints a circle</td><td>Alice</td></tr>
<tr><td>rainbow_tests.js</td><td>Adds variants of the rainbow element with different maths</td><td>Alice</td></tr>
<tr><td>shader_by_jayd.js</td><td>Adds a glow around light elements</td><td>Jayd</td></tr>
<tr><td>Shroomboxels.js</td><td>A variant of acid_and_shapes.js that uses a different trigonometric function</td><td>Alice</td></tr>
<tr><td>singleColor.js</td><td>Makes all elements pick one color each time they're drawn</td><td>stefanblox</td></tr>
<tr><td>sky.js</td><td>Adds a day-night cycle</td><td>RedBirdly</td></tr>
<tr><td>texture_pack_by_jayd.js</td><td>Adds a cool background</td><td>Jayd</td></tr>
<tr><td>UwUify.js</td><td>Adds an "UwU" background</td><td>Jayd</td></tr>

View File

@ -649,7 +649,8 @@ behavior: behaviors.LIQUID,
category: "life",
state: "liquid",
conduct: 0.019,
viscosity: 100
viscosity: 100,
reactions: {}
};
elements.berry = {
burn: 15,

View File

@ -0,0 +1,62 @@
// made by dogo8me2 lololol
let channelVar = "0";
// RF Transmitter Element
elements.rf_transmitter = {
color: "#142c47",
category: "machines",
behavior: behaviors.WALL,
tempHigh: 250,
stateHigh: "dirt",
hoverStat: function(pixel) {
return pixel.channel || "unset";
},
onSelect: function() {
let ans1 = prompt("Set the transmitter channel (numbers only):", channelVar || 0);
channelVar = ans1;
},
tick: function(pixel) {
if (!pixel.channel) {
pixel.channel = channelVar;
}
for (let i in currentPixels) {
let otherPixel = currentPixels[i];
if (otherPixel.element == "rf_receiver" && otherPixel.channel == pixel.channel) {
for (let j = 0; j < adjacentCoords.length; j++) {
let coord = adjacentCoords[j];
let x = otherPixel.x + coord[0];
let y = otherPixel.y + coord[1];
if (!isEmpty(x, y, true)) {
let neighborPixel = pixelMap[x][y];
if (elements[neighborPixel.element].conduct) {
neighborPixel.charge = pixel.charge;
}
}
}
}
}
doDefaults(pixel);
},
conduct: 1
};
// RF Receiver Element
elements.rf_receiver = {
color: "#142c47",
category: "Machines",
behaviors: behaviors.WALL,
tempHigh: 250,
stateHigh: "dirt",
hoverStat: function(pixel) {
return pixel.channel || "unset";
},
onSelect: function() {
let ans1 = prompt("Set the receiver channel (numbers only):", channelVar || 0);
channelVar = ans1;
},
tick: function(pixel) {
if (!pixel.channel) {
pixel.channel = channelVar;
}
}
};

View File

@ -8032,11 +8032,13 @@ elements.fruit_slush.stateLowColorMultiplier = 1.2;
elements.juice_ice.stateHighColorMultiplier = 0.83333333333;
elements.juice_ice.stateHigh = "fruit_slush"
elements.juice_ice.tempHigh = -20
elements[iceelem].stateHigh = "fruit_slush"
elements[iceelem].tempHigh = -20
if(elements[iceelem]) {
elements[iceelem].stateHigh = "fruit_slush"
elements[iceelem].tempHigh = -20
}
// fruit milk with milk
elements.fruit_milk.reactions.milk = { chance:1, func: function(pixel1, pixel2){
elements.fruit_milk.reactions ??= {}; elements.fruit_milk.reactions.milk = { chance:1, func: function(pixel1, pixel2){
let newrgb = interpolateRgb(getRGB(pixel1.color), getRGB(pixel2.color), 0.2);
if (((newrgb.r + newrgb.g + newrgb.b) / 3) < 230) {
changePixel(pixel1,"fruit_milk")

File diff suppressed because it is too large Load Diff

37
mods/advancedbugs.js Normal file
View File

@ -0,0 +1,37 @@
elements.hornet = {
tempHigh: 200,
stateHigh: "dead_bug",
color: "#ede48e",
behavior: behaviors.FLY,
category: "life",
state: "solid",
behaviorOn: [
"XX|CR:flash|XX",
"CR:flash|CH:ash|CR:flash",
"XX|CR:flash|XX",
],
reactions: {
"head": { elem2: null, },
"body": { elem2: null, },
"fly": { elem2: null, },
"spider": { elem1: null, }
}
}
elements.lice = {
tempHigh: 212,
stateHigh: "dead_bug",
color: "#7a7852",
behavior: behaviors.LIQUID,
category: "life",
state: "solid",
behaviorOn: [
"XX|CR:flash|XX",
"CR:flash|CH:ash|CR:flash",
"XX|CR:flash|XX",
],
reactions: {
"head": { elem2: null, },
"body": { elem2: null, }
}
}

View File

@ -1,4 +1,3 @@
//alice's new mini mod
urlParams = new URLSearchParams(window.location.search);
function elementExists(elementName) {
@ -58,15 +57,17 @@ window.addEventListener("load",function() {
};*/
});
function getEmptyVonNeumannNeighbors(pixel) {
function getEmptyVonNeumannNeighbors(pixel,returnOffsets=false) {
var neighbors = [];
var x = pixel.x;
var y = pixel.y;
for(var i = 0; i < adjacentCoords.length; i++) {
var finalX = pixel.x + adjacentCoords[i][0];
var finalY = pixel.y + adjacentCoords[i][1];
var offsetX = adjacentCoords[i][0];
var offsetY = adjacentCoords[i][1];
var finalX = pixel.x + offsetX;
var finalY = pixel.y + offsetY;
if(isEmpty(finalX,finalY,false)) {
neighbors.push([finalX,finalY])
neighbors.push(returnOffsets ? [offsetX,offsetY] : [finalX,finalY])
};
};
return neighbors
@ -93,15 +94,17 @@ function getPixelMooreNeighbors(pixel) {
return neighbors
};
function getEmptyMooreNeighbors(pixel) {
function getEmptyMooreNeighbors(pixel,returnOffsets=false) {
var neighbors = [];
var x = pixel.x;
var y = pixel.y;
for(var i = 0; i < mooreDonutCoords.length; i++) {
var finalX = pixel.x + mooreDonutCoords[i][0];
var finalY = pixel.y + mooreDonutCoords[i][1];
var offsetX = mooreDonutCoords[i][0];
var offsetY = mooreDonutCoords[i][1];
var finalX = pixel.x + offsetX;
var finalY = pixel.y + offsetY;
if(isEmpty(finalX,finalY,false)) {
neighbors.push([finalX,finalY])
neighbors.push(returnOffsets ? [offsetX,offsetY] : [finalX,finalY])
};
};
return neighbors
@ -187,17 +190,17 @@ var argonChance; if(hasArgon == true) { argonChance = ((1.204 * 0.0093) / elemen
var condensationMultiplierScaling = Math.abs(-273.15 - (-190));
function glaciliteBase(pixel,coolingAmount,minimumTemperature,cmsScaling=1.5) {
if(pixel.temp > minimumTemperature) {
if(pixel.temp - coolingAmount <= minimumTemperature) {
pixel.temp = minimumTemperature
function glaciliteBase(pixel,coolingAmount,maximumTemperature,cmsScaling=1.5) {
if(pixel.temp > maximumTemperature) {
if(pixel.temp - coolingAmount <= maximumTemperature) {
pixel.temp = maximumTemperature
} else {
pixel.temp = pixel.temp - coolingAmount;
}
};
var condensationMultiplier = 1;
if(pixel.temp < -190) { //NOT scaled to minimum temperature OR absolute zero
if(pixel.temp < -190) { //NOT scaled to maximum temperature OR absolute zero
var distanceFromNegative190 = Math.abs((-190) - pixel.temp);
condensationMultiplier = Math.max(6,1 + (distanceFromNegative190 / (condensationMultiplierScaling / cmsScaling)));
}
@ -243,7 +246,7 @@ elements.glacilite = {
breakInto: "glacilite_shard",
color: ["#17BBF6","#70A4FE","#6ADCEE","#8EA9FF"],
tempHigh: 1200,
stateHigh: "molten_glacilite",
stateHigh: "liquified_glacilite",
tick: function(pixel) {
glaciliteBase(pixel,5,-190)
}
@ -259,13 +262,13 @@ elements.glacilite_shard = {
temp: -190,
color: ["#17BBF6","#70A4FE","#6ADCEE","#8EA9FF"],
tempHigh: 1200,
stateHigh: "liquid_glacilite",
stateHigh: "liquified_glacilite",
tick: function(pixel) {
glaciliteBase(pixel,5,-190)
}
}
elements.liquid_glacilite = {
elements.liquified_glacilite = {
behavior: behaviors.LIQUID,
state: "liquid",
category: "liquids",
@ -275,21 +278,21 @@ elements.liquid_glacilite = {
hardness: 0.99,
color: ["#01BFE1","#2404C3","#0763DB","#04308F","#3AF0F3"],
tempHigh: 1200,
stateHigh: "molten_glacilite",
stateHigh: "liquified_glacilite",
tick: function(pixel) {
var minimumTemperature = (settings.abszero ?? -273.15);
var maximumTemperature = (settings.abszero ?? -273.15);
var coolingAmount = 14;
var cmsScaling = 3.5;
if(pixel.temp > minimumTemperature) {
if(pixel.temp - coolingAmount <= minimumTemperature) {
pixel.temp = minimumTemperature
if(pixel.temp > maximumTemperature) {
if(pixel.temp - coolingAmount <= maximumTemperature) {
pixel.temp = maximumTemperature
} else {
pixel.temp = pixel.temp - coolingAmount;
}
};
var condensationMultiplier = 1;
if(pixel.temp < -150) { //NOT scaled to minimum temperature OR absolute zero
if(pixel.temp < -150) { //NOT scaled to maximum temperature OR absolute zero
var distanceFromNegative190 = Math.abs((-190) - pixel.temp);
condensationMultiplier = Math.max(6,1 + (distanceFromNegative190 / (condensationMultiplierScaling / cmsScaling)));
};
@ -344,6 +347,159 @@ elements.liquid_glacilite = {
}
}
function igniscidBase(pixel,heatingAmount,minimumTemperature,nerfExponent) {
if(pixel.temp < minimumTemperature) {
if(pixel.temp + heatingAmount >= minimumTemperature) {
pixel.temp = minimumTemperature
} else {
pixel.temp = pixel.temp + heatingAmount;
}
};
var nerfFactor = 1;
if(pixel.temp > minimumTemperature) { nerfFactor = 1 / (Math.log10((pixel.temp - (minimumTemperature - 1))) + 1) ** nerfExponent };
if(Math.random() < (0.04 * nerfFactor)) { pixel.temp += heatingAmount };
var emptyNeighbors = getEmptyVonNeumannNeighbors(pixel,true);
var element = "fire";
var temp = pixel.temp;
if(pixel.temp >= 7000) {
element = "plasma";
temp = Math.max(temp,5000);
} else if(pixel.temp < 100) {
element = "smoke";
pixel.temp += 1.5;
};
for(var i = 0; i < emptyNeighbors.length; i++) {
var coords = emptyNeighbors[i];
var distance = coords.map(x => Math.abs(x)).reduce((a,b) => a + b);
coords = [coords[0]+pixel.x,coords[1]+pixel.y];
var chance = 1/distance;
var newPixel = createPixelReturn(element,...coords);
if(newPixel && (newPixel.temp < pixel.temp)) {
newPixel.temp = temp
}
}
}
elements.igniscid = {
behavior: behaviors.WALL,
state: "solid",
category: "solids",
density: 3300,
hardness: 0.44,
temp: 1200,
breakInto: "igniscid_shard",
color: ["#f68317","#f6b317","#eeea6a","#ffa38e"],
tempHigh: 11000,
stateHigh: "liquified_igniscid",
tick: function(pixel) {
igniscidBase(pixel,4,1200,1.2)
}
}
elements.igniscid_shard = {
behavior: behaviors.POWDER,
state: "solid",
category: "powders",
hidden: true,
density: 3100,
hardness: 0.89,
temp: 1200,
color: ["#f68317","#f6b317","#eeea6a","#ffa38e"],
tempHigh: 11000,
stateHigh: "liquified_igniscid",
tick: function(pixel) {
igniscidBase(pixel,4,1200,1.2)
}
}
elements.liquified_igniscid = {
behavior: behaviors.LIQUID,
state: "liquid",
category: "liquids",
hidden: true,
density: 2790,
temp: 12000,
hardness: 0.99,
color: ["#f77b0f","#e0410b","#db4a07","#f5ac7f","#f3593a"],
tick: function(pixel) {
igniscidBase(pixel,12,100000,0.5)
}
}
elements.frozen_fertilizer = {
color: ["#4d341d","#40301c","#3d2814"],
behavior: [
"CR:stench,stench,methane%0.25|CR:stench,stench,methane%0.5|CR:stench,stench,methane%0.25",
"CR:stench,stench,methane%0.5|XX|CR:stench,stench,methane%0.5",
"CR:stench,stench,methane%0.25|CR:stench,stench,methane%0.5|CR:stench,stench,methane%0.25"
],
behavior: behaviors.WALL,
tempHigh: 0,
stateHigh: "fertilizer",
category: "solids",
hardness: 0.35,
breakInto: "fertilizer",
state: "solid",
density: 1060,
stain: 0.01,
hidden: true,
},
elements.fertilizer = {
color: ["#451f0a","#542b07","#593317"],
behavior: [
"CR:stench,stench,methane%0.25|CR:stench,stench,methane%0.5|CR:stench,stench,methane%0.25",
"M2 AND CR:stench,stench,methane%0.5|XX|M2 AND CR:stench,stench,methane%0.5",
"M1|M1|M1"
],
viscosity: 8000,
tempHigh: 40,
stateHigh: ["poison","stench","methane","dried_fertilizer","dried_fertilizer","dried_fertilizer","dried_fertilizer","dried_fertilizer","dried_fertilizer","dried_fertilizer","dried_fertilizer"],
tempLow: 0,
stateLow: "frozen_fertilizer",
category: "solids",
state: "solid",
density: 1060,
stain: 0.07
},
elements.dried_fertilizer = {
color: ["#4f382b","#66462b","#704a2b"],
behavior: [
"CR:stench,stench,methane%0.15|CR:stench,stench,methane%0.3|CR:stench,stench,methane%0.15",
"CR:stench,stench,methane%0.3|XX|CR:stench,stench,methane%0.3",
"M2|M1|M2"
],
tempHigh: 100,
stateHigh: ["steam","steam","steam","steam","steam","steam","steam","steam","steam","steam","steam","steam","steam","steam","steam","steam","steam","steam","stench","poison","stench","poison","methane","methane","cooked_fertilizer","cooked_fertilizer","cooked_fertilizer","cooked_fertilizer","cooked_fertilizer","cooked_fertilizer","cooked_fertilizer","cooked_fertilizer","cooked_fertilizer","cooked_fertilizer","cooked_fertilizer","cooked_fertilizer",],
category: "solids",
state: "solid",
density: 1100,
stain: 0.045,
hidden: true
},
elements.cooked_fertilizer = {
color: ["#473931","#594636","#4f3621"],
behavior: [
"CR:stench,stench,methane%0.1|CR:stench,stench,methane%0.2|CR:stench,stench,methane%0.1",
"CR:stench,stench,methane%0.2|XX|CR:stench,stench,methane%0.2",
"M2|M1|M2"
],
tempHigh: 550,
stateHigh: ["charcoal","hydrogen","oxygen","nitrogen","sulfur_gas","metal_scrap","calcium","stench","poison_gas","steam","dust"],
category: "solids",
state: "solid",
density: 1240,
burn: 3,
burnTime: 260,
fireElement: ["stench","smoke","carbon_dioxide","poison_gas","fire","fire","fire","fire"],
burnInto: ["charcoal","hydrogen","oxygen","nitrogen","molten_sulfur","metal_scrap","calcium","stench","poison_gas","steam","dust","stench","poison_gas","smoke"],
hidden: true
},
elements.fartium = {
behavior: behaviors.LIQUID,
state: "liquid",
@ -356,7 +512,7 @@ elements.fartium = {
stateHigh: ["fire","explosion","fire","stench","stench"],
burn: 0.8,
burnTime: 150,
burnInto: ["stench","stench","stench","stench","fire","fire","fire","fire","molten_sulfur","explosion"],
burnInto: ["stench","stench","stench","stench","fire","fire","fire","fire","liquified_sulfur","explosion"],
tick: function(pixel) {
var chanceModifier = Math.min(0.22,(pixel.temp - 20) / 750);
if(chanceModifier < 0) { chanceModifier *= 2 };

145
mods/bfdi.js Normal file
View File

@ -0,0 +1,145 @@
elements.abcdefghijklmon = {
color: "#c86b8f",
name: "myblueberryseed",
behavior: behaviors.POWDER,
reactions: {
"porcelain": { elem1: "grower", elem2: "porcelain"},
},
state: "solid",
category: "bfdi",
};
elements.grower = {
color: "#00ff00",
name: "blueberry_plant",
behavior: [
"XX|CL AND CH:shower%10|XX",
"CR:blueberry%1|XX|CR:blueberry%1",
"XX|XX|XX"
],
category: "bfdi",
};
elements.blueberry = {
color: "#5500aa",
behavior: [
"XX|XX|XX",
"XX|EX:20%1|XX",
"XX|XX|XX"
],
category: "bfdi",
};
elements.shower = {
color: "#00aa00",
name: "blueberry_plant",
category: "bfdi"
};
elements.steel.breakInto = "fork"
;
elements.fork = {
color: "#999999",
ignore: "abcd",
behavior: [
"XX|XX|XX",
"XX|XX|XX",
"M2|DL AND M1|M2"
],
state: "solid",
category: "bfdi",
};
elements.abcd = {
state: "gas",
name: "forkrepellent",
category: "bfdi",
stain: 0,
alpha: 0.4,
behavior: [
"XX|M1 AND ST|XX",
"M1 AND ST|XX|M1 AND ST",
"XX|M1 AND ST|XX"
],
};
elements.cheesecake = {
state: "solid",
behavior: behaviors.POWDER,
color: "#ccbb77",
category: "bfdi",
reactions: {
"glass_shard": { elem1: "shardcake", elem2: null }
},
};
elements.baked_batter.reactions = {}
elements.baked_batter.reactions.cheese_powder = { elem1: "cheesecake", elem2: null };
elements.shardcake = {
state: "solid",
name: "cheesecake_with_shards",
behavior: [
"XX|XX|XX",
"XX|XX|XX",
"XX|DL%5 AND M1|XX"
],
color: Array ("#ccbb77","#5e807d"),
category: "bfdi",
};
elements.rocky = {
color: "#777777",
behavior: [
"XX|CR:barf|XX",
"CR:barf|XX|CR:barf",
"XX|CR:barf|XX"
],
category: "bfdi",
reactions: {
"lava_barf": { elem1: null, elem2: "zombie_rocky" }
},
};
elements.barf = {
color: "#008800",
category: "bfdi",
ignore: Array("rocky", "zombie_rocky","cured_rocky"),
state: "liquid",
behavior: [
"XX|XX|XX",
"M2|XX|M2",
"M2|DL%30 AND M1|M2"
],
tempHigh: 800,
stateHigh: "lava_barf",
reactions: {
"lava": { elem1: "lava_barf", elem2: null }
},
};
elements.lava_barf = {
color: "#ffaa00",
glow: 1,
state: "liquid",
ignore: Array("zombie_rocky","rocky","cured_rocky"),
behavior: [
"XX|CH:rocky>zombie_rocky AND CH:barf>lava_barf%5|XX",
"M2 AND CH:rocky>zombie_rocky AND CH:barf>lava_barf%5|XX|M2 AND CH:rocky>zombie_rocky AND CH:barf>lavabarf%5",
"XX|CH:rocky>zombie_rocky AND CH:barf>lava_barf%5 AND M1|XX"
],
category: "bfb",
};
elements.zombie_rocky = {
color: "#005500",
category: "bfdi",
behavior: [
"XX|CH:rocky>zombie_rocky AND CR:lava_barf|XX",
"CH:rocky>zombie_rocky AND CR:lava_barf|XX|CH:rocky>zombie_rocky AND CR:lava_barf",
"XX|CH:rocky>zombie_rocky AND CR:lava_barf|XX"
],
reactions: {
"water": { elem1: null, elem2: "cured_rocky" }
},
};
elements.cured_rocky = {
color: "#777777",
category: "bfdi",
behavior: [
"XX|CR:barf AND CH:zombie_rocky>cured_rocky|XX",
"CR:barf AND CH:zombie_rocky>cured_rocky|XX|CR:barf AND CH:zombie_rocky>cured_rocky",
"XX|CR:barf AND CH:zombie_rocky>cured_rocky|XX"
],
reactions: {
"zombie_rocky": { elem1: "cured_rocky", elem2: "cured_rocky" }
},
};

File diff suppressed because it is too large Load Diff

View File

@ -1,40 +0,0 @@
// coded by suss, so the code probably sucks
// lmao it only adds three elements, actually this is my first mod that even ADDS elements
// wait, nobody even reads the mod code, so im essentially talking to myself
// oh well :(
elements.bromine = {
color: "#4e0e00",
behavior: [
"XX|CR:bromine_vapor%5|XX",
"M2|XX|M2",
"XX|M1|XX",
],
category: "liquids",
viscosity: 1.5,
state: "liquid",
density: 3102,
tempLow: -7,
stateLow: "bromine_ice",
};
elements.bromine_ice = {
color: "#350900",
behavior: behaviors.WALL,
category: "states",
state: "solid",
density: 3102,
tempHigh: -7,
stateHigh: "bromine",
temp: -10,
hidden: true,
};
elements.bromine_vapor = {
color: "#d48846",
behavior: behaviors.GAS,
category: "gases",
state: "gas",
density: 7.59,
hidden: true,
}

32
mods/chaos.js Normal file
View File

@ -0,0 +1,32 @@
function getRandomSize(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
function randomizeall() {
const elements = document.querySelectorAll('*');
elements.forEach(element => {
const randomFontSize = getRandomSize(1, 150);
element.style.fontSize = `${randomFontSize}px`;
if (element.offsetWidth > 0 && element.offsetHeight > 0) {
const randomWidth = getRandomSize(1, 500);
const randomHeight = getRandomSize(1, 500);
element.style.width = `${randomWidth}px`;
element.style.height = `${randomHeight}px`;
}
if (window.getComputedStyle(element).position === 'absolute' || window.getComputedStyle(element).position === 'relative') {
const randomTop = getRandomSize(1, window.innerHeight - 1);
const randomLeft = getRandomSize(1, window.innerWidth - 1);
element.style.position = 'absolute';
element.style.top = `${randomTop}px`;
element.style.left = `${randomLeft}px`;
}
const randomRotation = getRandomSize(-360, 360);
element.style.transform = `rotate(${randomRotation}deg)`;
});
}
setTimeout(randomizeall, 15000);

494
mods/charsonsmodbeta.js Normal file
View File

@ -0,0 +1,494 @@
//it would be cool to put this on the website :D
//thanks r74n and sandboxels mod devs for the idea for making this and adding so much value to my gaming experience
//if one needs a desc for the mod list on the website it'd be something around "charson's mods compiled such as random foods and random elements asked for by random people, beta"
//thanks!
elements.syrup = {
color: "#a13d08",
behavior: behaviors.LIQUID,
category: "liquids",
viscosity: 100000,
state: "liquid",
density: 720,
isFood: true,
desc: "maple syrup",
reactions: {
"head": { elem1: null, elem2:"head" },
}
};
elements.akshajium = {
color: ["#a8160c", "#fdff94", "#d47d20"],
behavior: behaviors.POWDER,
category: "food",
viscosity: 10000,
state: "solid",
density: 100,
desc: "its pizza",
reactions: {
"head": { elem1: null, elem2:"head" },
}
};
elements.brioche_steam = {
color: "#ab8c60",
behavior: behaviors.GAS,
category: "gases",
state: "gas",
density: 720,
temp: 80,
tempLow: 30,
desc: "how does this make any sense?",
stateLow: ["brioche"],
isFood: true,
};
elements.fancy_dough = {
color: "#d1c0a5",
behavior: behaviors.LIQUID,
category: "liquids",
viscosity: 999999,
state: "liquid",
density: 720,
temp: 30,
tempHigh: 50,
stateHigh: ["steam", "brioche_steam"],
desc: "it can be evaporated",
reactions: {
"head": { elem1: null, elem2:"head" },
}
};
elements.brioche = {
color: ["#c2770e", "#b06227"],
behavior: behaviors.STURDYPOWDER,
category: "food",
temp: 30,
tempHigh: 80,
tempLow: 10,
stateHigh: ["fragrance", "ash"],
stateLow: ["cold_brioche"],
burn: 55,
isFood: true,
breakInto: "fancy_flour",
reactions: {
"head": { elem1: null, elem2:"head" },
}
};
elements.aresium = {
color: "#1017ad",
behavior: behaviors.WALL,
category: "solids",
temp: 19,
tempHigh: 100,
tempLow: -20,
stateHigh: ["skibidi_aresium"],
stateLow: ["magma", "electric"],
desc: "it's a transition metal named after mars",
burn: 0,
conduct: 1,
};
elements.skibidi_aresium = {
color: "#ad1051",
behavior: behaviors.MOLTEN,
category: "states",
temp: 100,
tempHigh: 153,
stateHigh: ["tnt", "molten_iron", "copper", "explosion"],
burn: 0,
conduct: 1,
};
elements.cold_brioche = {
color: "#5f7a8c",
behavior: behaviors.WALL,
category: "states",
temp: 5,
tempHigh: 30,
stateHigh: ["brioche"],
};
elements.fancy_flour = {
color: "#f5e9b5",
behavior: behaviors.POWDER,
category: "powders",
temp: 20,
tempHigh: 70,
burn: 70,
stateHigh: ["fragrance", "smoke"],
};
//thanks to the creator of stickyslime.js for this code
elements.syrup.behavior = [
"XX|ST|XX",
"ST AND M2|XX|ST AND M2",
"XX|ST AND M1|XX",
];
elements.briochify = {
color: ["#c2770e", "#ff0000", "#00ff00", "#0000ff", "#ffdec4"],
tool: function(pixel) {
if (pixel.element == "bread") {
pixel.element = "brioche"
}
if (pixel.element == "flour") {
pixel.element = "fancy_flour"
}
if (pixel.element == "dough") {
pixel.element = "fancy_dough"
}
if (pixel.element == "steam") {
pixel.element = "brioche_steam"
}
if (pixel.element == "kai_cenat") {
pixel.element = "brioche"
}
},
category: "tools",
};
elements.pyrane = {
color: "#fc7c19",
behavior: behaviors.GAS,
category: "gases",
state: "gas",
temp: 50,
desc: "this is a ripoff of nitrogen gas",
tempLow: -20,
stateLow: ["fyrium"],
reactions: {
"ash": { elem1: null, elem2:"pyric_nitrite" },
"dirt": { elem1:"pyrane", elem2:"fire" },
"hydrogen": { elem1:"hydroid", elem2:"hydroid" },
}
};
elements.pyric_nitrite = {
color: "#b3270e",
behavior: behaviors.POWDER,
category: "powders",
state: "solid",
temp: 20,
conduct: 1,
desc: "not to be confused with iron pyrite or anything like that",
reactions: {
"iron": { elem1:"pyric_nitrite", elem2:"pyric_rust" },
"oil": { elem1: null, elem2:"nitrol_fuel" },
"electric": { elem1:["fire", "nitrogen", "stench", "electric", "explosion"], elem2:"fire" },
"shock": { elem1:["fire", "nitrogen", "stench", "electric", "explosion"], elem2:"fire" },
}
};
elements.pyric_rust = {
color: "#913e17",
behavior: behaviors.POWDER,
category: "powders",
state: "solid",
temp: 20,
reactions: {
"steel": { elem1: null, elem2:"tnt" }
}
};
elements.fyrium = {
color: "#ffa930",
behavior: behaviors.WALL,
category: "solids",
state: "solid",
temp: 20,
tempHigh: 137,
stateHigh: ["molten_fyrium"],
breakInto: ["fire"],
};
elements.molten_fyrium = {
color: "#ffffff",
behavior: behaviors.MOLTEN,
category: "states",
temp: 137,
tempLow: -20,
stateLow: ["fyrium"],
reactions: {
"water": { elem1:"fire", elem2:"water" }
}
};
elements.nitrol_fuel = {
color: "#4f180e",
behavior: behaviors.LIQUID,
category: "liquids",
state: "liquid",
temp: 20,
reactions: {
"wood": { elem1: null, elem2:"fueled_wood" },
}
};
elements.fueled_wood = {
color: "#631608",
behavior: behaviors.WALL,
category: "weapons",
state: "solid",
temp: 20,
tempHigh: 30,
stateHigh: ["rocket", "pyrane", "nitrol_fuel", "explosion", "stench"],
reactions: {
"fire": { elem1:["rocket", "pyrane", "nitrol_fuel", "explosion", "stench"], elem2:["rocket", "pyrane", "nitrol_fuel", "explosion", "stench"] },
}
};
elements.hydroid = {
color: "#3a0ca6",
behavior: behaviors.LIQUID,
category: "liquids",
state: "liquid",
temp: 20,
tempHigh: 100,
density: 12,
conduct: 1,
desc: "this is NOT water",
stateHigh: ["pyrane", "steam"],
reactions: {
"fire": { elem1: "hydroid", elem2:"explosion" },
"body": { elem1: "hydroid", elem2:"fyrium" },
"head": { elem1: "hydroid", elem2:"pyrane" },
"water": { elem1: "hydroid", elem2:"hydroid" },
"syrup": { elem1: "hydroid", elem2:"hydroid" },
"magma": { elem1: "hydroid", elem2:"hydroid" },
"oil": { elem1: "hydroid", elem2:"hydroid" },
"juice": { elem1: "hydroid", elem2:"hydroid" },
"syrup": { elem1: "hydroid", elem2:"hydroid" },
}
};
//by someone named spencer
elements.kai_cenat = {
color: "#e00b0b",
behavior: behaviors.STURDYPOWDER,
category: "special",
state: "solid",
desc: "wow",
conduct: 1,
desc: "someone named spencer told me to add this",
};
elements.kai_cenat.behavior = [
["XX","CH:kai_cenat","XX"],
["CH:kai_cenat","XX","CH:kai_cenat"],
["M2","M1 AND CH:kai_cenat","M2"]
];
elements.kai_eraser = {
color: ["e00b0b", "#ff0000", "#00ff00", "#0000ff"],
tool: function(pixel) {
if (pixel.element == "kai_cenat") {
pixel.element = "foam"
}
},
category: "tools",
};
//ok this is the skibididdy mod part
elements.tocopherol = {
color: "#094237",
behavior: behaviors.POWDER,
category: "powders",
viscosity: 10000,
state: "solid",
density: 100,
reactions: {
"sodium_acetate": { elem1:"tocopheryl_acetate", elem2:"sodium" },
}
};
elements.freakium = {
color: "#ff4fed",
behavior: behaviors.DGAS,
category: "gases",
state: "gas",
density: 720,
temp: 80,
tempLow: 30,
reactions: {
"head": { elem1:"baby_oil", elem2:"meat" },
"body": { elem1:"baby_oil", elem2:"meat" },
}
};
elements.tocopheryl_gas = {
color: "#96e3d4",
behavior: behaviors.GAS,
category: "gases",
state: "gas",
density: 720,
temp: 80,
tempLow: 0,
stateLow: ["tocopherol"],
};
elements.tocopheryl_acetate = {
color: "#cffdff",
behavior: behaviors.LIQUID,
category: "liquids",
viscosity: 999999,
state: "liquid",
density: 720,
temp: 30,
tempHigh: 96,
stateHigh: ["tocopheryl_gas"],
reactions: {
"oil": { elem1:"baby_oil", elem2:"baby_oil" },
}
};
elements.diddium = {
color: ["#210742", "#9e20d4"],
behavior: behaviors.STURDYPOWDER,
category: "powders",
temp: 30,
tempHigh: 80,
tempLow: 10,
reactions: {
"diddium": { elem1:"diddium", elem2:"stable_diddium" },
}
};
elements.stable_diddium = {
color: ["#210742", "#9e20d4"],
behavior: behaviors.WALL,
category: "states",
temp: 30,
tempHigh: 80,
tempLow: 10,
reactions: {
"diddium": { elem1:"freakium", elem2:"diddium" },
"stable_diddium": { elem1:"diddium", elem2:"baby_oil" },
}
};
elements.baby_oil = {
color: "#ffeecc",
behavior: behaviors.LIQUID,
category: "liquids",
temp: 30,
tempHigh: 96,
stateHigh: ["tocopheryl_gas"],
reactions: {
"uranium": { elem1: null, elem2:"diddium" },
"diddium": { elem1:"stable_diddium", elem2:"freakium" },
}
};
elements.stupidine = {
color: "#4e4b75",
behavior: behaviors.STURDYPOWDER,
category: "solids",
state: "solid",
temp: 20,
tempHigh: 137,
stateHigh: "liquid_stupidine",
tempLow: -31,
stateLow: "activated_stupidine",
reactions: {
"stupidine": { elem1: "stupidine", elem2:"fragrance" },
}
};
elements.liquid_stupidine = {
color: ["#5328c9", "4089e3"],
behavior: behaviors.AGLIQUID,
category: "liquids",
state: "liquid",
temp: 140,
tempHigh: 500,
stateHigh: "stupidine_gas",
tempLow: 25,
stateLow: "skibidine",
reactions: {
"liquid_stupidine": { elem1:"liquid_stupidine", elem2:"slime" },
}
};
elements.stupidine_gas = {
color: "#802d3a",
behavior: behaviors.GAS,
category: "gases",
state: "gas",
temp: 500,
tempHigh: 1000,
stateHigh: ["nuke", "explosion"],
tempLow: 200,
stateLow: "liquid_stupidine",
reactions: {
"stupidine_gas": { elem1:"stupidine_gas", elem2:"stench" },
}
};
elements.activated_stupidine = {
color: "#3d2f61",
behavior: behaviors.WALL,
category: "solids",
state: "solid",
temp: 20,
reactions: {
"stupidine": { elem1:"explosion", elem2:"explosion" },
}
};
elements.skibidi_soda = {
color: "#3279a8",
behavior: behaviors.LIQUID,
category: "liquids",
state: "liquid",
tempHigh: 100,
stateHigh: ["skibidiness", "skibidine"],
reactions: {
"oxygen": { elem1:"skibidi_soda", elem2:"skibidiness" },
"head": { elem1: "skibidiness", elem2:"head" },
}
};
elements.skibidine = {
color: ["#51649c", "949c51"],
behavior: behaviors.LIQUID,
category: "liquids",
state: "liquid",
reactions: {
"carbon_dioxide": { elem1:"skibidi_soda", elem2:"skibidi_soda" },
"iron": { elem1: "magma", elem2:"stupidine" },
}
};
elements.skibidiness = {
color: "#567de8",
behavior: behaviors.GAS,
category: "gases",
state: "gas",
temp: 20,
reactions: {
"water": { elem1:"skibidiness", elem2:"skibidi_soda"},
}
};
//idk how these work and most of them don't idk why but this is just a beta so...
elements.melted_butter.reactions.bread = { "elem1": null, "elem2":"brioche" },
elements.water.reactions.fancy_flour = { "elem1": null, "elem2":"fancy_dough" },
elements.wood.reactions.nitrol_fuel = { "elem1":"fueled_wood", "elem2": null },
elements.brioche.breakInto = "fancy_flour";
elements.fyrium.breakInto = "fire";
elements.fire.reactions.nitrogen = { "elem1": null, "elem2": "pyrane" },
elements.ash.reactions.pyrane = { "elem1":"pyric_nitrite", "elem2": null },
elements.oil.reactions.pyric_nitrite = { "elem1":"nitrol_fuel", "elem2": null },
elements.hydrogen.reactions.pyrane = { "elem1":"hydroid", "elem2": null },
elements.fire.reactions.fueled_wood = { "elem1": "fire", "elem2": ["rocket", "pyrane", "nitrol_fuel", "explosion", "stench"] };
elements.water.reactions.molten_fyrium = { "elem1": null, "elem2":["fire", "explosion"] },
elements.brioche.breakInto = "fancy_flour";
elements.fyrium.breakInto = "fire";

14
mods/children.js Normal file
View File

@ -0,0 +1,14 @@
elements.child = {
color: "#ffaa55",
behavior: [
"M2|M2|M2",
"M2|XX|M2",
"XX|M1|XX"
],
tempHigh: 100,
stateHigh: "cooked_meat",
category: "life",
reactions: {
"herb": { elem1: "blood", elem2: "explosion"}
},
};

31
mods/cs_expanded.js Normal file
View File

@ -0,0 +1,31 @@
// Made by Kopalecek (also known as davistudios or sylas)
/*
If you would want to use this to make stuff like de_expanded.js, just put "Based off cs_expanded" in a comment at the top. And remove the previous comments in general.
Ryan, if you see this, it would be great if you add ids for stuff like controls, the "Sandboxels Introduction" or menu items in like settings or mods.
*/
const reqCode = 'cs' // Change this to the lang code you want.
const menu = { // Just change the values in this.
pauseButton: 'Pauza',
resetButton: 'Reset',
replaceButton: 'Nahradit',
elemSelectButton: 'VE',
tpsButton: 'TZS',
infoButton: 'Info',
savesButton: 'Uložené',
modsButton: 'Módy',
settingsButton: 'Nastavení',
changelogButton: 'Změny',
}
if (langCode == reqCode) {
Object.keys(menu).forEach(key => {
document.getElementById(key).textContent = menu[key]
})
}

41
mods/dalgonacandy.js Normal file
View File

@ -0,0 +1,41 @@
elements.dalgona = {
desc: "Dalgona candy from Squid Game",
color: "#c49543",
behavior: behaviors.WALL,
category: "food",
state: "solid",
isFood: true,
tempHigh: 400,
stateHigh: "smoke",
tempLow: -20,
stateLow: "salted_caramel",
breakInto: "salted_sugar",
};
elements.salted_caramel = {
color: "#c48537",
behavior: behaviors.POWDER,
category: "food",
state: "solid",
isFood: true,
tempHigh: 400,
temp: -20,
stateHigh: "smoke",
tempLow: -50,
stateLow: "candy",
breakInto: "salted_sugar",
};
elements.salted_sugar = {
color: "#fcfcfc",
behavior: behaviors.POWDER,
category: "food",
state: "solid",
isFood: true,
tempHigh: 170,
temp: -20,
stateHigh: "salted_caramel",
};
elements.sugar.reactions.salt = { elem1:"salted_sugar", elem2: null };
elements.caramel.reactions.salt = { elem1:"salted_caramel", elem2: null };
elements.caramel.reactions.baking_soda = { elem1:"dalgona", elem2: null };

786
mods/debrisable.js Normal file
View File

@ -0,0 +1,786 @@
elements.microplastic = {
color: ["#B7BFBF","#c3cccc"],
behavior: behaviors.POWDER,
category: "powders",
tempHigh: 200,
stateHigh: "dioxin",
reactions: {
"water": { elem1:null, elem2:"microplastic_water", chance:0.5 },
},
burn: 15,
burnTime: 350,
burnInto: "dioxin",
state: "solid",
density: 902,
hidden: true,
}
elements.microplastic_water = {
color: ["#6491E8","#799EE3","#97B0DA"],
behavior: behaviors.LIQUID,
tempHigh: 105,
stateHigh: ["steam","dioxin"],
tempLow: -5,
stateLowName: "plastic_ice",
viscosity: 10,
category: "liquids",
reactions: {
"rock": { elem2: "wet_sand", chance: 0.0004 },
"limestone": { elem2: "wet_sand", chance: 0.0004 },
"plant": { elem1:"water", chance:0.05 },
"algae": { elem1:"water", chance:0.05 },
"kelp": { elem1:"water", chance:0.05 },
"charcoal": { elem1:"water", chance:0.02 },
"gravel": { elem1:"water", chance:0.01 },
"fly": { elem2:"dead_bug", chance:0.1, oneway:true },
"firefly": { elem2:"dead_bug", chance:0.1, oneway:true },
"bee": { elem2:"dead_bug", chance:0.05, oneway:true },
"stink_bug": { elem2:"dead_bug", chance:0.1, oneway:true },
"dirty_water": { elem2:"bubble", attr2:{"clone":"microplastic_water"}, chance:0.001, tempMin:85 },
"microplastic_water": { elem2:"bubble", attr2:{"clone":"microplastic_water"}, chance:0.001, tempMin:85 },
},
hidden: true,
state: "liquid",
density: 1018,
conduct: 0.075,
extinguish: true
}
elements.glass_fiber = {
color: ["#5e807d","#679e99"],
behavior: behaviors.POWDER,
reactions: {
"radiation": { elem1:"rad_glass_fiber", chance:0.33 },
"rad_steam": { elem1:"rad_glass_fiber", elem2:null, chance:0.33 },
"fallout": { elem1:"rad_glass_fiber", elem2:"radiation", chance:0.1 }
},
tempHigh: 1490,
stateHigh: "molten_glass",
category: "powders",
state: "solid",
density: 2500,
hidden: true
}
elements.rad_glass_fiber = {
color: ["#648c64","#6aad83"],
behavior: behaviors.RADPOWDER,
tempHigh: 1490,
stateHigh: "molten_rad_glass",
category: "powders",
state: "solid",
density: 2500,
hidden: true
}
elements.copper_debris = {
color: ["#a95232","#be4322","#c76035"],
behavior: behaviors.SUPPORT,
reactions: {
"blood": { elem1:"oxidized_copper", chance:0.01 },
"infection": { elem1:"oxidized_copper", chance:0.01 },
"antibody": { elem1:"oxidized_copper", chance:0.01 },
"fire": { elem1:"oxidized_copper", chance:0.0095 },
},
category: "solids",
tempHigh: 1085,
stateHigh: "molten_copper",
density: 8960,
conduct: 0.95,
hardness: 0.025,
fireColor: ["#07BA4F","#00BC5B","#00C2A9","#11B7E7","#C6F2EC"]
}
elements.silver_debris = {
color: "#cacaca",
behavior: behaviors.SUPPORT,
tempHigh: 961.8,
category: "powders",
density: 9297,
conduct: 0.99,
hardness: 0.25,
hidden: true
}
elements.iron_debris = {
color: ["#cbcdcd","#bdbdbd"],
behavior: behaviors.SUPPORT,
reactions: {
"water": { elem1:"rust", chance:0.003 },
"salt_water": { elem1:"rust", chance:0.01 },
"dirty_water": { elem1:"rust", chance:0.05 },
"pool_water": { elem1:"rust", chance:0.05 },
"sugar_water": { elem1:"rust", chance:0.004 },
"seltzer": { elem1:"rust", chance:0.007 },
"salt": { elem1:"rust", chance:0.005 },
"blood": { elem1:"rust", chance:0.004 },
"infection": { elem1:"rust", chance:0.004 },
"antibody": { elem1:"rust", chance:0.004 },
"fire": { elem1:"rust", chance:0.003 },
"coffee": { elem1:"rust", chance:0.0004 },
"tea": { elem1:"rust", chance:0.0004 },
"broth": { elem1:"rust", chance:0.0004 },
"juice": { elem1:"rust", chance:0.0004 },
"nut_milk": { elem1:"rust", chance:0.0004 },
},
breakInto: "iron_dust",
tempHigh: 1538,
category: "powders",
density: 7660,
conduct: 0.47,
hardness: 0.4,
darkText: true,
hidden: true
}
elements.steel_debris = {
color: ["#888f94","#71797e","#71797e","#71797e"],
grain: 0.75,
behavior: behaviors.SUPPORT,
reactions: {
"water": { elem1:"rust", chance:0.0025 },
"salt_water": { elem1:"rust", chance:0.005 },
"dirty_water": { elem1:"rust", chance:0.04 },
"pool_water": { elem1:"rust", chance:0.04 },
"sugar_water": { elem1:"rust", chance:0.0035 },
"seltzer": { elem1:"rust", chance:0.006 },
"salt": { elem1:"rust", chance:0.004 },
"blood": { elem1:"rust", chance:0.003 },
"infection": { elem1:"rust", chance:0.003 },
"antibody": { elem1:"rust", chance:0.003 },
"fire": { elem1:"rust", chance:0.0025 },
"coffee": { elem1:"rust", chance:0.0003 },
"tea": { elem1:"rust", chance:0.0003 },
"broth": { elem1:"rust", chance:0.0003 },
"juice": { elem1:"rust", chance:0.0003 },
"nut_milk": { elem1:"rust", chance:0.0003 },
},
breakInto: ["iron_debris","iron_debris","iron_dust"],
tempHigh: 1455.5,
category: "powders",
density: 7750,
conduct: 0.42,
hardness: 0.8,
hidden: true
}
elements.zinc_dust = {
color: ["#8d8c8e","#f6f6f1","#c7c7c5","#ccccca","#6b6a6a","#848382"],
behavior: behaviors.POWDER,
tempHigh: 419.53,
stateHigh: "molten_zinc",
category: "powders",
density: 7068,
conduct: 0.53,
hardness: 0.1,
fireColor: ["#91B797","#CAE4CA","#F1F2F0"],
superconductAt: -272.25
}
elements.tin_scrap = {
color: ["#9e9d98","#aeada4"],
behavior: behaviors.SUPPORT,
tick: function(pixel) {
if (pixel.temp < 13.2 && Math.random() < 0.0005) {
changePixel(pixel,"metal_scrap");
}
doDefaults(pixel)
},
tempHigh: 231.9,
stateHigh:"molten_tin",
category: "powders",
density: 7260,
conduct: 0.45,
hardness: 0.15,
superconductAt: -269.45
}
elements.aluminum_foil = {
color: "#d2d9db",
reactions: {
"radiation": { elem2:"electric", temp1:200 }
},
behavior: behaviors.SUPPORT,
tempHigh: 660.3,
stateHigh: "molten_aluminum",
category: "powders",
density: 2710,
conduct: 0.73,
hardness: 0.01,
breakInto: "aluminum_dust",
fireColor: "#A7B3BF",
superconductAt: -271.95
}
elements.aluminum_dust = {
color: ["#BEC4C6","#C8CFD0","#B1B1B4"],
reactions: {
"radiation": { elem2:"electric", temp1:200 }
},
behavior: behaviors.POWDER,
tempHigh: 660.3,
stateHigh: "molten_aluminum",
category: "powders",
density: 2710,
conduct: 0.73,
fireColor: "#A7B3BF",
superconductAt: -271.95
}
elements.tungsten_scrap = {
color: ["#d4d3cd","#c3c0b8","#bcbaae","#625950"],
behavior: behaviors.SUPPORT,
tempHigh: 3422,
stateHigh: "molten_tungsten",
category: "powders",
density: 13300,
conduct: 0.35,
superconductAt: -270.65,
hardness: 0.5
}
elements.brass_scrap = {
color: ["#cb9e5d","#865e39"],
behavior: behaviors.SUPPORTPOWDER,
tempHigh: 927,
stateHigh: "molten_brass",
category: "powders",
density: 7550,
conduct: 0.22,
hardness: 0.1,
hidden: true
}
elements.bronze_coin = {
color: "#cd7f32",
behavior: behaviors.POWDER,
reactions: {
"water": { elem1:"oxidized_copper", chance:0.00125 },
"salt_water": { elem1:"oxidized_copper", chance:0.0025 },
"dirty_water": { elem1:"oxidized_copper", chance:0.02 },
"pool_water": { elem1:"oxidized_copper", chance:0.02 },
"sugar_water": { elem1:"oxidized_copper", chance:0.00175 },
"seltzer": { elem1:"oxidized_copper", chance:0.003 },
"blood": { elem1:"oxidized_copper", chance:0.0015 },
"infection": { elem1:"oxidized_copper", chance:0.0015 },
"antibody": { elem1:"oxidized_copper", chance:0.0015 },
},
tempHigh: 913,
stateHigh: "molten_bronze",
category: "powders",
density: 8150,
conduct: 0.44,
hardness: 0.15,
hidden: true
}
elements.gallium_shard = {
color: ["#b3b3b3","#cccccc","#dbdbdb"],
behavior: behaviors.POWDER,
tempHigh: 29.76,
stateHigh: "molten_gallium",
category: "powders",
density: 5100,
conduct: 0.05,
hardness: 0.15,
superconductAt: -272.15,
hidden: true
}
elements.pyrite_shard = {
color: ["#e8e0cb","#cdcaaf","#726a53","#8f835e","#bfb9a0",],
behavior: behaviors.POWDER,
tempHigh: 1182.5,
stateHigh: "molten_pyrite",
category: "powders",
density: 4900,
state: "solid",
conduct: 0.5,
hardness: 0.6,
hidden: true,
alias: "fool's gold coin"
}
elements.solder_debris = {
color: "#a1a19d",
behavior: behaviors.SUPPORTPOWDER,
tempHigh: 200,
stateHigh: "molten_solder",
category: "powders",
density: 8885,
conduct: 0.43,
hardness: 0.15,
hidden: true
}
elements.amber_shard = {
color: ["#b67f18","#c86305","#cf7a19","#e4ae3a"],
behavior: behaviors.POWDER,
tempHigh: 345,
stateHigh: ["dna","sugar","sugar","steam","smoke","smoke","smoke","smoke","smoke","smoke","sugar","sugar","steam","smoke","smoke","smoke","smoke","smoke","smoke","sugar","sugar","steam","smoke","smoke","smoke","smoke","smoke","smoke"],
category: "powders",
hidden: true,
density: 1250
}
elements.lead_dust = {
color: ["#6c6c6a","#838381"],
behavior: behaviors.POWDER,
reactions: {
"water": { elem2:"dirty_water", chance:0.5 },
"salt_water": { elem2:"dirty_water", chance:0.5 },
"sugar_water": { elem2:"dirty_water", chance:0.5 },
"seltzer": { elem2:"dirty_water", chance:0.5 },
"dye": { elem1:null, func:function(pixel1,pixel2){ pixel2.element = "lead_paint"
}, chance:0.5 },
},
tempHigh: 327.5,
category: "powders",
density: 8343,
conduct: 0.41,
fireColor: ["#DBD1E9","#D7E9F2","#9AB0D1"],
superconductAt: -265.95,
hidden: true
}
elements.lead_paint = {
color: ["#ff0000","#ff8800","#ffff00","#00ff00","#00ffff","#0000ff","#ff00ff"],
behavior: behaviors.LIQUID,
reactions: {
"water": { elem1:null, elem2:"dirty_water", chance:0.05 },
"salt_water": { elem1:null, elem2:"dirty_water", chance:0.05 },
"sugar_water": { elem1:null, elem2:"dirty_water", chance:0.05 },
"seltzer": { elem1:null, elem2:"dirty_water", chance:0.05 },
"dirty_water": { elem1:null, chance:0.05 },
"pool_water": { elem1:null, elem2:"water", chance:0.05 },
"bleach": { elem1:null, elem2:null, chance:0.05 },
"cell": { elem2:"dna", chance:0.0015 },
"blood": { elem2:"infection", chance:0.01 },
"antibody": { elem2:"blood", chance:0.025 },
"frog": { elem2:"meat", chance:0.05 },
"fish": { elem2:"meat", chance:0.05 },
"rat": { elem2:"rotten_meat", chance:0.05 },
"bird": { elem2:"rotten_meat", chance:0.05 },
"ant": { elem2:"dead_bug", chance:0.05 },
"fly": { elem2:"dead_bug", chance:0.05 },
"bee": { elem2:"dead_bug", chance:0.05 },
"stinkbug": { elem2:"dead_bug", chance:0.05 },
"firefly": { elem2:"dead_bug", chance:0.05 },
"plant": { elem2:"dead_plant", chance:0.05 },
"vine": { elem2:"dead_plant", chance:0.05 },
"cactus": { elem2:"dead_plant", chance:0.05 },
"sapling": { elem2:"dead_plant", chance:0.05 },
"grass": { elem2:"dead_plant", chance:0.05 },
"head": { func:behaviors.KILLPIXEL2, chance:0.005 },
},
viscosity: 900,
customColor: true,
stain: 0.69,
tempHigh: 100,
stateHigh: "smoke",
category: "liquids",
state: "liquid",
density: 1252,
stainSelf: true,
hidden: true
}
elements.nickels = {
color: "#6C7474",
behavior: behaviors.POWDER,
tempHigh: 1064,
stateHigh: "molten_nickel",
category: "powders",
state: "solid",
density: 19300,
conduct: 0.78,
hardness: 0.2
}
elements.iron_dust = {
color: ["#888f94","#71797e","#71797e"],
grain: 0.85,
behavior: behaviors.POWDER,
reactions: {
"water": { elem1:"rust_dust", chance:0.003 },
"salt_water": { elem1:"rust_dust", chance:0.01 },
"dirty_water": { elem1:"rust_dust", chance:0.05 },
"pool_water": { elem1:"rust_dust", chance:0.05 },
"sugar_water": { elem1:"rust_dust", chance:0.004 },
"seltzer": { elem1:"rust_dust", chance:0.007 },
"salt": { elem1:"rust_dust", chance:0.005 },
"blood": { elem1:"rust_dust", chance:0.004 },
"infection": { elem1:"rust_dust", chance:0.004 },
"antibody": { elem1:"rust_dust", chance:0.004 },
"fire": { elem1:"rust_dust", chance:0.003 },
"coffee": { elem1:"rust_dust", chance:0.0004 },
"tea": { elem1:"rust_dust", chance:0.0004 },
"broth": { elem1:"rust_dust", chance:0.0004 },
"juice": { elem1:"rust_dust", chance:0.0004 },
"nut_milk": { elem1:"rust_dust", chance:0.0004 },
},
tempHigh: 1538,
stateHigh: "molten_iron",
category: "powders",
density: 7560,
conduct: 0.47,
hardness: 0.4,
darkText: true,
hidden: true
}
elements.rust_dust = {
color: ["#ae551c","#bc6e39","#925f49"],
behavior: behaviors.POWDER,
tempHigh: 1538,
stateHigh: "molten_iron",
category: "powders",
state: "solid",
density: 5250,
conduct: 0.37,
hardness: 0.3,
alias: "iron oxide",
hidden: true
}
elements.concrete_rubble = {
color: ["#9E9E9E","#929292","#858585","#7F7F7F"],
behavior: behaviors.STURDYPOWDER,
category: "powders",
tempHigh: 1490,
stateHigh: "magma",
state: "solid",
density: 1650,
hardness: 0.25,
hidden: true
}
elements.wood_scrap = {
color: ["#a0522d","#955637"],
behavior: behaviors.SUPPORT,
renderer: renderPresets.WOODCHAR,
tempHigh: 395,
stateHigh: ["ember","charcoal","fire","fire","fire"],
category: "powders",
burn: 5,
burnTime: 300,
burnInto: ["ember","charcoal","fire"],
state: "solid",
hardness: 0.1,
breakInto: "sawdust",
hidden: true
}
elements.bamboo_debris = {
color: ["#87B026","#8B9D2F",],
behavior: behaviors.SUPPORT,
tempHigh: 380,
stateHigh: ["ember","fire","fire","fire"],
burn: 10,
burnTime: 200,
burnInto: ["ember","fire","fire","fire"],
category: "powders",
state: "solid",
density: 686,
breakInto: ["sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","sawdust","bamboo_plant"],
hidden: true
}
elements.ground_meat = {
color: ["#A74142","#C05B50","#D67970","#AA4248"],
behavior: behaviors.SUPPORTPOWDER,
reactions: {
"dirty_water": { elem1:"rotten_meat", chance:0.1 },
"fly": { elem1:"rotten_meat", chance:0.2 },
"dioxin": { elem1:"rotten_meat", elem2:null, chance:0.1 },
"uranium": { elem1:"rotten_meat", chance:0.1 },
"cancer": { elem1:"rotten_meat", chance:0.1 },
"plague": { elem1:"rotten_meat", elem2:null, chance:0.3 },
"ant": { elem1:"rotten_meat", chance:0.1 },
"worm": { elem1:"rotten_meat", chance:0.1 },
"rat": { elem1:"rotten_meat", chance:0.3 },
"mushroom_spore": { elem1:"rotten_meat", chance:0.1 },
"mushroom_stalk": { elem1:"rotten_meat", chance:0.1 },
"mycelium": { elem1:"rotten_meat", chance:0.1 },
"hyphae": { elem1:"rotten_meat", chance:0.1 },
"mercury": { elem1:"rotten_meat", elem2:null, chance:0.2 },
"mercury_gas": { elem1:"rotten_meat", elem2:null, chance:0.1 },
"virus": { elem1:"rotten_meat", chance:0.1 },
"poison": { elem1:"rotten_meat", elem2:null, chance:0.5 },
"infection": { elem1:"rotten_meat", elem2:null, chance:0.1 },
"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_gas": { elem1:"rotten_meat", elem2:null, chance:0.5 },
"rotten_cheese": { elem1:"rotten_meat", chance:0.02 },
"fallout": { elem1:"rotten_meat", chance:0.2 },
"water": { elem2:"broth", tempMin:70 },
"salt_water": { elem2:"broth", tempMin:70 },
"sugar_water": { elem2:"broth", tempMin:70 },
"seltzer": { elem2:"broth", tempMin:70 },
"salt": { elem1:"cured_meat" },
"vinegar": { elem1:"cured_meat", chance:0.1 },
},
tempHigh: 100,
stateHigh: "cooked_meat",
tempLow: -18,
stateLow: "frozen_meat",
category:"food",
burn:15,
burnTime:200,
burnInto:"cooked_meat",
state: "solid",
density: 1019.5,
conduct: 0.2,
isFood: true,
hidden: true
}
elements.rotten_ground_meat = {
color: ["#BEA16A","#BE896A"],
behavior: [
"XX|CR:plague,stench,stench,stench,fly%0.25 AND CH:ground_meat>rotten_ground_meat%1 AND CH:meat>rotten_meat%1|XX",
"SP%99 AND CH:ground_meat>rotten_ground_meat%1 AND CH:meat>rotten_meat%1|XX|SP%99 AND CH:ground_meat>rotten_ground_meat%1 AND CH:meat>rotten_meat%1",
"M2|M1 AND CH:ground_meat>rotten_ground_meat%1 AND CH:meat>rotten_meat%1|M2",
],
reactions: {
"water": { elem2:"broth", tempMin:70, color2:"#d7db69" },
"salt_water": { elem2:"broth", tempMin:70, color2:"#d7db69" },
"sugar_water": { elem2:"broth", tempMin:70, color2:"#d7db69" },
"dirty_water": { elem2:"broth", tempMin:70, color2:"#d7db69" },
"seltzer": { elem2:"broth", tempMin:70, color2:"#d7db69" }
},
tempHigh: 300,
stateHigh: ["plague","ash","ammonia"],
category:"food",
hidden: true,
burn:12,
burnTime:200,
burnInto:["plague","ash","ammonia"],
state: "solid",
density: 1005,
conduct: 0.1,
isFood: true,
hidden: true
}
elements.cured_ground_meat = {
color: ["#C45452","#CD7873","#E09693","#C2585D"],
behavior: behaviors.SUPPORTPOWDER,
reactions: {
"water": { elem2:"broth", tempMin:70 },
"salt_water": { elem2:"broth", tempMin:70 },
"sugar_water": { elem2:"broth", tempMin:70 },
"seltzer": { elem2:"broth", tempMin:70 },
},
tempHigh: 100,
stateHigh: "cooked_meat",
category:"food",
burn:15,
burnTime:200,
burnInto:"cooked_meat",
state: "solid",
density: 1019.5,
conduct: 0.3,
isFood: true,
hidden: true
}
elements.scrap_paper = {
color: ["#ffffff","#e6e6e6"],
behavior: behaviors.POWDER,
reactions: {
"water": { elem1:"cellulose", elem2:null },
"dirty_water": { elem1:"cellulose", elem2:null },
"salt_water": { elem1:"cellulose", elem2:null },
"sugar_water": { elem1:"cellulose", elem2:null },
"seltzer": { elem1:"cellulose", elem2:null },
"soda": { elem1:"cellulose", elem2:null },
"blood": { elem1:"cellulose", elem2:null },
"foam": { elem1:"cellulose", elem2:null },
"bubble": { elem1:"cellulose", elem2:null },
"oil": { elem1:"cellulose", elem2:null },
"alcohol": { elem1:"cellulose", elem2:null },
"vinegar": { elem1:"cellulose", elem2:null },
"light": { stain1:"#ebdfa7" },
"oxygen": { stain1:"#ebdfa7" }
},
tempHigh: 248,
stateHigh: ["fire","fire","fire","fire","fire","ash"],
burn: 70,
burnTime: 300,
burnInto: ["fire","fire","fire","fire","fire","ash"],
category: "powders",
state: "solid",
density: 1195,
breakInto: "confetti",
breakIntoColor: ["#ffffff","#e6e6e6","#dbdbdb"],
hidden: true
}
elements.cloth_scrap = {
color: ["#F7F7F7","#F1F1F1","#E8E8E8","#CDCDCD","#e6e6e6","#dbdbdb"],
behavior: behaviors.WALL,
tick: function(pixel) {
behaviors.ABSORB(pixel,1,0.01);
},
onBreak: behaviors.RELEASE_MOISTURE,
onDelete: behaviors.RELEASE_MOISTURE,
reactions: {
"water":{}, "salt_water":{}, "sugar_water":{}, "dirty_water":{}, "pool_water":{}, "seltzer":{},
},
tempHigh: 405,
stateHigh: "fire",
burn: 6,
burnTime: 350,
burnInto: ["smoke","smoke","smoke","smoke","ash"],
category: "powders",
state: "solid",
breakInto: "dust",
movable:false,
breakIntoColor: ["#f7f7f7","#dbdbdb"],
hidden: true
}
elements.snow_nine = {
color: ["#C6E9F9","#CCF0FC","#D7FAFC"],
behavior: [
"XX|XX|XX",
"XX|CH:snow%0.5|XX",
"M2|M1|M2",
],
reactions: {
"water": { elem2: ["ice_nine","snow_nine"] },
"salt_water": { elem2: ["ice_nine","snow_nine"] },
"dirty_water": { elem2: ["ice_nine","snow_nine"] },
"sugar_water": { elem2: ["ice_nine","snow_nine"] },
"seltzer": { elem2: ["ice_nine","snow_nine"] },
"pool_water": { elem2: ["ice_nine","snow_nine"] },
"steam": { elem2: "snow_nine" },
"rain_cloud": { elem2: "snow_nine" },
"cloud": { elem2: "snow_nine" },
"snow_cloud": { elem2: "snow_nine" },
"hail_cloud": { elem2: ["ice_nine","snow_nine"] },
"thunder_cloud": { elem2: ["ice_nine","snow_nine"] },
"snow": { elem2: "snow_nine", chance: 0.05 },
"smog": { elem2: "snow_nine" },
"rad_steam": { elem2: "snow_nine" }
},
temp:-100,
category: "special",
state: "solid",
density: 917,
hidden: true,
excludeRandom: true
}
elements.antiice = {
color: "#EAEFF6",
behavior: behaviors.WALL,
category:"special",
tempHigh: 5,
stateHigh: "antifluid",
temp: -5,
state: "solid",
density: 100,
hidden: true
}
elements.antisnow = {
color: "#D8E8F3",
behavior: behaviors.AGPOWDER,
category:"special",
tempHigh: 18,
stateHigh: "antifluid",
temp: -5,
state: "solid",
density: 995,
hidden: true
}
elements.plastic.breakInto = ["microplastic","microplastic","microplastic","microplastic","glitter"]
elements.amber.breakInto = "amber_shard"
elements.insulation.breakInto = ["microplastic","glass_fiber","cloth_scrap","dust"]
elements.bead.breakInto = ["microplastic","microplastic","microplastic","glitter"]
elements.wire.breakInto = ["microplastic","glass_fiber","copper_debris","silver_debris","glass_fiber","copper_debris","silver_debris"]
elements.copper.breakInto = ["copper_debris"]
elements.silver.breakInto = ["silver_debris"]
elements.zinc.breakInto = ["zinc_dust"]
elements.tin.breakInto = ["tin_scrap"]
elements.tin.tick = function(pixel) {
if (pixel.temp < 13.2 && Math.random() < 0.0005) {
changePixel(pixel,"tin_scrap");
}
doDefaults(pixel)
}
elements.iron.breakInto = ["iron_debris","iron_debris","iron_debris","iron_debris","iron_dust"]
elements.lead.breakInto = ["lead_dust"]
elements.steel.breakInto = ["steel_debris","steel_debris","steel_debris","iron_debris","iron_dust"]
elements.galvanized_steel.breakInto = ["steel","steel","steel","steel","steel","steel","steel","steel","steel_debris"]
elements.rust.breakInto = ["rust_dust"]
elements.concrete.breakInto = ["concrete_rubble"]
elements.wood.breakInto = ["wood_scrap","wood_scrap","wood_scrap","wood_scrap","sawdust"]
elements.meat.breakInto = ["ground_meat"]
elements.cured_meat.breakInto = ["cured_ground_meat"]
elements.rotten_meat.breakInto = ["rotten_ground_meat"]
elements.paper.breakInto = ["scrap_paper"]
elements.paper.breakIntoColor = ["#ffffff","#e6e6e6"]
elements.cloth.breakInto = ["cloth_scrap"]
elements.bamboo.breakInto = ["bamboo_debris","bamboo_debris","bamboo_debris","bamboo_debris","bamboo_debris","bamboo_debris","bamboo_debris","bamboo_debris","bamboo_debris","bamboo_debris","bamboo_debris","bamboo_debris","bamboo_debris","bamboo_debris","bamboo_plant"]
elements.nickel.breakInto = ["nickels"]
elements.aluminum.breakInto = ["aluminum_foil"]
elements.tungsten.breakInto = ["tungsten_scrap"]
elements.brass.breakInto = ["brass_scrap"]
elements.bronze.breakInto = ["bronze_coin"]
elements.sterling.breakInto = ["silver_debris"]
elements.gallium.breakInto = ["gallium_shard"]
elements.pyrite.breakInto = ["pyrite_shard"]
elements.solder.breakInto = ["solder_debris"]
elements.straw.breakInto = ["flour","flour","dust"]
elements.ice_nine.breakInto = "snow_nine"
elements.art.breakInto = "dye"
elements.udder.breakInto = ["blood","blood","meat","meat","meat","meat","milk"]
elements.antiice.breakInto = "antisnow"
elements.antigas.stateHigh = {}
elements.antigas.tempHigh = {}

70
mods/deneme.js Normal file
View File

@ -0,0 +1,70 @@
elements.carbonite = {
color: "#343634",
behavior: behaviors.WALL,
category: "star wars",
state: "solid",
density: 1000,
tempHigh: 1000,
stateHigh: "carbondioxide",
reactions:{
"acid": {elem1: null, elem2: "slag"},
}
};
elements.light_saber = {
color: "#06d106",
behavior: behaviors.WALL,
category: "star wars",
state: "solid"
}
// look it up:
// https://starwars.fandom.com/wiki/Plastoid
// stormtrooper armor
elements.plastoid = {
color: "#FFAAAA",
behavior: behaviors.WALL,
category: "star wars",
state: "solid",
density: 400,
tempHigh: 300,
stateHigh: "molten_plastic",
hardness: 1,
burn: 0
};
elements.green_milk ={
color: "#95f595",
behavior: behaviors.LIQUID,
category: "star wars",
state: "liquid",
viscosity: 100,
density: 720,
};
elements.laser_blast = {
color: "#ff0000",
behavior: behaviors.BOUNCY,
category: "star wars",
};
elements.tibanna_gas ={
color: "#d99a9a",
behavior: behaviors.GAS,
category: "star wars",
burn: 100,
burnTime: 1,
}
elements.milk_water = {
color: "#e4fade",
behavior: behaviors.LIQUID,
category: "star wars",
hidden: true,
viscosity: 90,
state: "liquid",
density: 1,
};
elements.water.reactions.green_milk = {elem1: null, elem2: "milk_water"}

38
mods/dried_food.js Normal file
View File

@ -0,0 +1,38 @@
// A mod that adds dried versions of some foods. (by pilot_773)
elements.dried_tomato = {
color: elements.sauce.color,
category: "food",
behavior: behaviors.STURDYPOWDER
};
elements.dried_lettuce = {
color: elements.herb.color,
category: "food",
behavior: behaviors.STURDYPOWDER
};
elements.raisin = {
color: elements.fireball.color,
category: "food",
behavior: behaviors.STURDYPOWDER
};
elements.dry = {
color: elements.earthquake.color,
category: "tools",
tool: function(pixel) {
if (pixel.element == "tomato") {
pixel.element = "dried_tomato"
}
if (pixel.element == "lettuce") {
pixel.element = "dried_lettuce"
}
if (pixel.element == "grape") {
pixel.element = "raisin"
}
},
}
elements.dried_tomato.reactions.water = { "elem1":"tomato", "elem2":null }
elements.dried_lettuce.reactions.water = { "elem1":"lettuce", "elem2":null }

File diff suppressed because it is too large Load Diff

119
mods/fiveys_stuff.js Normal file
View File

@ -0,0 +1,119 @@
elements.r74n = {
color: "#00ffff",
behavior: behaviors.POWDER,
category: "r74n",
state: "powder",
density: 740,
};
elements.r74n_water = {
hidden:false,
color: "#009999",
behavior: behaviors.LIQUID,
category: "r74n",
viscosity: 74,
state: "liquid",
density: 74,
};
elements.ice.category = "ices"
elements.frosted_ice = {
color: "#c3e2f0",
behavior: behaviors.WALL,
tempHigh: 5,
stateHigh: "water",
tempLow: -9,
stateLow: "frosted_ice",
category: "ices",
state: "solid",
density: 1027,
};
elements.packed_ice = {
color: "#d6ebf5",
behavior: behaviors.WALL,
tempHigh: 5,
stateHigh: "packed_water",
tempLow: -26,
stateLow: "packed_ice",
category: "ices",
state: "solid",
density: 1257,
};
elements.compressed_ice = {
color: "#80bbfa",
behavior: behaviors.WALL,
tempHigh: 5,
stateHigh: "compressed_water",
tempLow: -79,
stateLow: "compressed_ice",
category: "ices",
state: "solid",
density: 2007,
};
elements.blue_ice = {
color: "#3f96f1",
behavior: behaviors.WALL,
tempHigh: 5,
stateHigh: "blue_water",
tempLow: -26,
stateLow: "blue_ice",
category: "ices",
state: "solid",
density: 2657,
};
elements.trench_ice = {
color: "#0070e4",
behavior: behaviors.WALL,
tempHigh: 5,
stateHigh: "trench_water",
tempLow: -26,
stateLow: "trench_ice",
category: "ices",
state: "solid",
density: 3017,
};
elements.packed_water = {
color: "#d6ebf5",
behavior: behaviors.LIQUID,
tempHigh: 100,
stateHigh: "steam",
tempLow: 0,
stateLow: "packed_ice",
category: "ices",
state: "solid",
density: 1337,
};
elements.compressed_water = {
color: "#80bbfa",
behavior: behaviors.LIQUID,
tempHigh: 100,
stateHigh: "steam",
tempLow: 0,
stateLow: "compressed_ice",
category: "ices",
state: "liquid",
density: 2087,
};
elements.blue_water = {
color: "#01336f",
behavior: behaviors.LIQUID,
tempHigh: 100,
stateHigh: "steam",
tempLow: 0,
stateLow: "blue_ice",
category: "ices",
state: "liquid",
density: 2737,
};
elements.trench_water = {
color: "#00254d",
behavior: behaviors.WALL,
tempHigh: 5,
stateHigh: "steam",
tempLow: 0,
stateLow: "trench_ice",
category: "ices",
state: "liquid",
density: 3097,
}
//If you spot any bugs, let me know! - Fivey1777

106
mods/guided_rocket.js Normal file
View File

@ -0,0 +1,106 @@
// from code_libary.js
function pyth(xA, yA, xB, yB) {
var a = Math.abs(xB - xA);
var b = Math.abs(yB - yA);
var c = Math.sqrt(a ** 2 + b ** 2);
return c;
};
tgt = ""
elements.guided_misile = {
color: "#323333",
category: "weapons",
behavior: [
"EX:10|EX:10|EX:10",
"EX:10| XX |EX:10",
"EX:10|EX:10|EX:10",
],
onSelect: function () {
var answer1 = prompt("Please input the target element.", (tgt || undefined));
if (!answer1) { return }
tgt = answer1;
},
tick: (pixel) => {
let targets = [];
// find all posible targets
for (var x = 1; x < width; x++) {
for (var y = 1; y < height; y++) {
if (!isEmpty(x, y)) {
if (pixelMap[x][y]["element"] === tgt) {
pxl = pixelMap[x][y];
targets.push(
[pxl.x, pxl.y,
// calculate distance from target to current pixel
pyth(pixel.x, pixel.y, pxl.x, pxl.y)
]);
}
}
}
}
if (targets == []) {
return
}
// sort the targets by distance from self
targets.sort((a, b) => a[2] - b[2]);
try {
// get the closest target
current_best = targets[0];
target = [current_best[0], current_best[1]];
} catch {
// no pixels of target found
return
}
if (pixel.x != target[0] || pixel.y != target[1]) {
let { x, y } = pixel;
const empty = checkForEmptyPixels(x, y);
const [tX, tY] = target;
// Separate moves into non-diagonal and diagonal categories
const nonDiagonal = [];
const diagonal = [];
for (const [dx, dy] of empty) {
if ((dx === 0) || (dy === 0)) {
nonDiagonal.push([dx, dy]); // Horizontal or vertical moves
} else {
diagonal.push([dx, dy]); // Diagonal moves
}
}
let prioritizedMoves = []
// chose whether to move diagonaly
if (Math.abs(Math.abs(x - tX) - Math.abs(y - tY)) > 1) {
prioritizedMoves = [...nonDiagonal];
} else {
prioritizedMoves = [...diagonal];
}
let bestVal = pyth(tX, tY, x, y)
Math.sqrt(Math.pow(tX - x, 2) + Math.pow(tY - y, 2));
let best = null;
for (const [dx, dy] of prioritizedMoves) {
const x_ = x + dx;
const y_ = y + dy;
const c = Math.sqrt(Math.pow(tX - x_, 2) + Math.pow(tY - y_, 2));
if (c < bestVal) {
bestVal = c;
best = [dx, dy];
}
}
if (best) {
if (!tryMove(pixel, x + best[0] * 2, y + best[1] * 2, undefined, true)) {
tryMove(pixel, x + best[0], y + best[1], undefined, true)
};
}
}
}
}

30
mods/heatshield.js Normal file
View File

@ -0,0 +1,30 @@
elements.ablative_shield = {
color: "#d6999c",
behavior: behaviors.WALL,
category: "solids",
state: "solid",
tempHigh: 2760,
stateHigh: "smoke",
conduct: 0.01,
};
elements.molten_reusable = {
color: "#ff9900",
behavior: behaviors.MOLTEN,
category: "states",
state: "liquid",
hidden: 1,
temp: 1261,
tempLow: 1259,
stateLow: "reusable_shield",
};
elements.reusable_shield = {
color: "#3c3c3c",
behavior: behaviors.WALL,
category: "solids",
state: "solid",
tempHigh: 1260,
stateHigh: "molten_reusable",
conduct: 0.01,
};
elements.plasma.temp = 2800
;

45
mods/hexagon_test.js Normal file
View File

@ -0,0 +1,45 @@
function drawHexagon(ctx, color, x, y, scale=1, opacity=1) {
const size = (pixelSize * scale) * 0.63;
const height = Math.sqrt(3) * size; // Height of the hexagon
if (color) { ctx.fillStyle = color; }
if (ctx.globalAlpha !== opacity) { ctx.globalAlpha = opacity; }
// Convert canvas coordinates
const centerX = canvasCoord(x);
const centerY = canvasCoord(y);
ctx.beginPath();
ctx.moveTo(centerX + size, centerY);
ctx.lineTo(centerX + size / 2, centerY + height / 2);
ctx.lineTo(centerX - size / 2, centerY + height / 2);
ctx.lineTo(centerX - size, centerY);
ctx.lineTo(centerX - size / 2, centerY - height / 2);
ctx.lineTo(centerX + size / 2, centerY - height / 2);
ctx.closePath();
ctx.fill();
}
// Hexagon view
viewInfo[8] = {
name: "",
effects: true,
colorEffects: true,
pixel: function(pixel, ctx) {
var a = (settings.textures !== 0) ? pixel.alpha : undefined;
const offsetY = ((pixel.x % 2) * 0.5); // Offset for staggered rows
if (((elements[pixel.element].isGas && elements[pixel.element].glow !== false) || elements[pixel.element].glow || pixel.glow) && pixel.glow !== false) {
drawPlus(ctx, pixel.color, pixel.x, pixel.y + offsetY, undefined, a);
} else {
drawHexagon(ctx, pixel.color, pixel.x, pixel.y + offsetY, undefined, a);
}
if (pixel.charge && view !== 2) { // Yellow glow on charge
if (!elements[pixel.element].colorOn) {
drawHexagon(ctx, "rgba(255,255,0,0.5)", pixel.x, pixel.y + offsetY);
}
}
}
};

View File

@ -106,7 +106,7 @@ elements.frozen_xenon = {
elements.radon = {
color: elements.neon.color,
behavior: behaviors.GAS,
colorOn: ["#3dd3cb","#32f7e7","#31c0a8"],
colorOn: ["#d33d83","#f7327d","#c0316d"],
category: "gases",
state: "gas",
conduct: 0.8,
@ -156,7 +156,7 @@ elements.radon = {
elements.liquid_radon = {
color: elements.neon.color,
behavior: behaviors.LIQUID,
colorOn: ["#3dd3cb","#32f7e7","#31c0a8"],
colorOn: ["#d33d83","#f7327d","#c0316d"],
category: "states",
state: "liquid",
tempHigh: -58,
@ -170,7 +170,7 @@ elements.liquid_radon = {
elements.frozen_radon = {
color: elements.neon.color,
behavior: behaviors.WALL,
colorOn: ["#3dd3cb","#32f7e7","#31c0a8"],
colorOn: ["#d33d83","#f7327d","#c0316d"],
category: "states",
state: "solid",
tempHigh: -68,

View File

@ -625,7 +625,7 @@ elements.e_pipe = {
var x = pixel.x+coord[0];
var y = pixel.y+coord[1];
if (isEmpty(x,y)) {
createPixel("brick",x,y);
createPixel("pipe_wall",x,y);
pixelMap[x][y].color = pixelColorPick(pixel,"#808080");
}
}
@ -870,7 +870,7 @@ elements.channel_pipe = {
var x = pixel.x+coord[0];
var y = pixel.y+coord[1];
if (isEmpty(x,y)) {
createPixel("brick",x,y);
createPixel("pipe_wall",x,y);
pixelMap[x][y].color = pixelColorPick(pixel,"#808080");
}
}
@ -1110,7 +1110,7 @@ elements.bridge_pipe = {
var x = pixel.x+coord[0];
var y = pixel.y+coord[1];
if (isEmpty(x,y)) {
createPixel("brick",x,y);
createPixel("pipe_wall",x,y);
pixelMap[x][y].color = pixelColorPick(pixel,"#808080");
}
}
@ -2676,33 +2676,38 @@ elements.healing_serum = {
},
tick: function(pixel){
if (pixel.waitReduce){pixel.wait -= 1}
if (pixel.wait == 0){
pixel.elementsSeen = {}
}
for (var i = 0; i < adjacentCoords.length; i++) {
var coord = adjacentCoords[i];
var x = pixel.x+coord[0];
var y = pixel.y+coord[1];
if (!isEmpty(x,y, true)){
if (!pixel.waitReduce){
pixel.waitReduce = true
}
if (pixel.wait == 0){
if (!pixel.elementsSeen[pixelMap[x][y].element] && !(["healing_serum", "bless", "experience"].includes(pixelMap[x][y].element))){
pixel.elementsSeen[pixelMap[x][y].element] = 1
} else if (!(["healing_serum", "bless", "experience"].includes(pixelMap[x][y].element))) {
pixel.elementsSeen[pixelMap[x][y].element] += 1
if (!pixel.decidedPixel){
for (var i = 0; i < squareCoords.length; i++) {
var coord = squareCoords[i];
var x = pixel.x+coord[0];
var y = pixel.y+coord[1];
if (!isEmpty(x, y, true)){
let otherPixel = pixelMap[x][y]
if (otherPixel.element != "healing_serum"){
pixel.decidedPixel = otherPixel
pixel.waitReduce = true
break;
}
}
}
if (pixel.wait == 0){
if (Object.keys(pixel.elementsSeen).length == 0){
deletePixel(pixel.x, pixel.y)
return;
} else{
changePixel(pixel, Object.keys(pixel.elementsSeen).reduce((a, b) => pixel.elementsSeen[a] > pixel.elementsSeen[b] ? a : b))
}
}
}
if (pixel.wait <= 0){
const { x, y, ...remainingProperties } = pixel.decidedPixel;
Object.assign(pixel, remainingProperties);
delete pixel.decidedPixel
return;
}
},
renderer: function(pixel, ctx){
// interpolate pixel color and decidedpixel's color (if it has one!)
if (pixel.decidedPixel){
var color1 = pixel.color.match(/\d+/g);
var color2 = pixel.decidedPixel.color.match(/\d+/g);
var ratio = pixel.wait/15
drawSquare(ctx, `rgb(${color1[0]*ratio+color2[0]*(1-ratio)},${color1[1]*ratio+color2[1]*(1-ratio)},${color1[2]*ratio+color2[2]*(1-ratio)})`, pixel.x, pixel.y)
}
else{
drawSquare(ctx, pixel.color, pixel.x, pixel.y)
}
}
}

25
mods/ru_expanded.js Normal file
View File

@ -0,0 +1,25 @@
// Based off cs_expanded
// Made by Kopalecek (also known as davistudios or sylas) and Bufka2011
const reqCode = 'ru' // Change this to the lang code you want.
const menu = { // Just change the values in this.
pauseButton: 'Пауза',
resetButton: 'Сброс',
replaceButton: 'Замена',
elemSelectButton: 'Э',
tpsButton: 'TPS',
infoButton: 'Инфо',
savesButton: 'Сохранения',
modsButton: 'Моды',
settingsButton: 'Настройки',
changelogButton: 'Чейнджлог',
}
if (langCode == reqCode) {
Object.keys(menu).forEach(key => {
document.getElementById(key).textContent = menu[key]
})
}

89
mods/sky.js Normal file
View File

@ -0,0 +1,89 @@
if (!enabledMods.includes("mods/betterSettings.js")) { enabledMods.unshift("mods/betterSettings.js"); localStorage.setItem("enabledMods", JSON.stringify(enabledMods)); window.location.reload() };
var sky_settingsTab = new SettingsTab("Sky");
var realtime_setting = new Setting("Use real life time for sky", "real_time", settingType.BOOLEAN, false, defaultValue=true);
var initial_hour_setting = new Setting("Initial hour", "initial_hour", settingType.NUMBER, false, defaultValue=8);
var ticks_per_hour_setting = new Setting("Ticks per hour", "ticks_per_hour", settingType.NUMBER, false, defaultValue=150);
sky_settingsTab.registerSettings("Real time", realtime_setting);
sky_settingsTab.registerSettings("Initial hour", initial_hour_setting);
sky_settingsTab.registerSettings("Ticks per hour", ticks_per_hour_setting);
settingsManager.registerTab(sky_settingsTab);
var hour = initial_hour_setting.value;
function lerpColor(start, end, t) {
return start.map((s, i) => Math.round(s + (end[i] - s) * t));
}
function getSkyColors(hour) {
const SKY_COLOR_PAIRS = [
[[0, 0, 15], [0, 0, 30]], // midnight
[[10, 10, 40], [20, 20, 60]],
[[255, 100, 50], [255, 150, 100]],
[[135, 206, 235], [180, 230, 255]],
[[135, 206, 250], [135, 206, 255]],
[[135, 206, 250], [120, 190, 240]],
[[255, 150, 100], [120, 70, 70]],
[[30, 15, 60], [20, 10, 40]],
[[0, 0, 15], [0, 0, 30]], // midnight
];
// Determine the interval (each interval is 3 hours)
const index = Math.floor(hour / 3);
const t = (hour % 3) / 3;
const [bottomStart, topStart] = SKY_COLOR_PAIRS[index];
const [bottomEnd, topEnd] = SKY_COLOR_PAIRS[index + 1];
return {
skyTop: `rgb(${lerpColor(topStart, topEnd, t).join(", ")})`,
skyBottom: `rgb(${lerpColor(bottomStart, bottomEnd, t).join(", ")})`,
};
}
function renderSky(ctx) {
const { skyTop, skyBottom } = getSkyColors(hour);
const gradient = ctx.createLinearGradient(0, 0, 0, height * pixelSize);
gradient.addColorStop(0, skyTop);
gradient.addColorStop(1, skyBottom);
ctx.fillStyle = gradient;
ctx.fillRect(0, 0, width * pixelSize, height * pixelSize);
}
function updateDayTime() {
if (realtime_setting.value) {
const now = new Date();
hour = now.getHours() + now.getMinutes() / 60;
} else {
hour = (hour + (1 / ticks_per_hour_setting.value)) % 24; // Keep within 0-23
}
}
// Make sure the sky gets VIP treatment in the render list
function prioritizeRenderSky() {
const idx = renderPrePixelList.indexOf(renderSky);
if (idx !== -1) {
const [skyFn] = renderPrePixelList.splice(idx, 1);
renderPrePixelList.unshift(skyFn);
}
}
// Resetting canvas also resets time
function initializeCanvas() {
const resizeCanvas = autoResizeCanvas;
autoResizeCanvas = (clear) => {
resizeCanvas(clear);
hour = initial_hour_setting.value;
};
}
// Hooks
setTimeout(initializeCanvas, 500);
runAfterLoad(prioritizeRenderSky);
runEveryTick(updateDayTime);
renderPrePixel(renderSky);