Merge branch 'R74nCom:main' into main
This commit is contained in:
commit
db5b4ab5ef
|
|
@ -181,6 +181,7 @@
|
||||||
<tr><td>conveyance.js</td><td>Conveyors, operated with and without electricity</td><td>Melecie</td></tr>
|
<tr><td>conveyance.js</td><td>Conveyors, operated with and without electricity</td><td>Melecie</td></tr>
|
||||||
<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>flipflop.js</td><td>Toggleable switches; <a href="https://github.com/R74nCom/sandboxels/pull/134">Explanation</a></td><td>Flix</td></tr>
|
||||||
<tr><td>gameOfLife.js</td><td>Conway's Game of Life on a screen</td><td>ggod</td></tr>
|
<tr><td>gameOfLife.js</td><td>Conway's Game of Life on a screen</td><td>ggod</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>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>
|
<tr><td>nousersthings.js</td><td>Destroyable machines, pipe variants, filters, and more</td><td>nousernamefound</td></tr>
|
||||||
<tr><td>portal.js</td><td>Adds portals that can teleport pixels</td><td>Alice</td></tr>
|
<tr><td>portal.js</td><td>Adds portals that can teleport pixels</td><td>Alice</td></tr>
|
||||||
|
|
@ -197,6 +198,7 @@
|
||||||
<tr><td>liquid_void.js</td><td>Adds a liquid variant of Void</td><td>Alice</td></tr>
|
<tr><td>liquid_void.js</td><td>Adds a liquid variant of Void</td><td>Alice</td></tr>
|
||||||
<tr><td>more_breaking.js</td><td>Allows for breaking more elements in explosions</td><td>Alice</td></tr>
|
<tr><td>more_breaking.js</td><td>Allows for breaking more elements in explosions</td><td>Alice</td></tr>
|
||||||
<tr><td>rays.js</td><td>Adds more Ray types</td><td>Alice</td></tr>
|
<tr><td>rays.js</td><td>Adds more Ray types</td><td>Alice</td></tr>
|
||||||
|
<tr><td>weapons.js</td><td>Adds some extra weapons</td><td>Jayd-Rubies</td></tr>
|
||||||
|
|
||||||
<!----><tr><td class="modCat" colspan="3">Food & Cooking</td></tr><!---->
|
<!----><tr><td class="modCat" colspan="3">Food & Cooking</td></tr><!---->
|
||||||
<tr><td>aChefsDream.js</td><td>Adds more food and animals</td><td>SquareScreamYT and RealerRaddler</td></tr>
|
<tr><td>aChefsDream.js</td><td>Adds more food and animals</td><td>SquareScreamYT and RealerRaddler</td></tr>
|
||||||
|
|
@ -207,6 +209,7 @@
|
||||||
<tr><td>morefoodsmod.js</td><td>Adds more foods</td><td>Clide4</td></tr>
|
<tr><td>morefoodsmod.js</td><td>Adds more foods</td><td>Clide4</td></tr>
|
||||||
<tr><td>pizzasstuff.js</td><td>New animals, foods, and plants</td><td>_ilikepizza_</td></tr>
|
<tr><td>pizzasstuff.js</td><td>New animals, foods, and plants</td><td>_ilikepizza_</td></tr>
|
||||||
<tr><td>sbstuff.js</td><td>Adds many foods</td><td>Stefan Blox</td></tr>
|
<tr><td>sbstuff.js</td><td>Adds many foods</td><td>Stefan Blox</td></tr>
|
||||||
|
<tr><td>weAllScreamFor.js</td><td>Adds ice cream toppings</td><td>rottenEgghead</td></tr>
|
||||||
|
|
||||||
<!----><tr><td class="modCat" colspan="3">Life & Nature</td></tr><!---->
|
<!----><tr><td class="modCat" colspan="3">Life & Nature</td></tr><!---->
|
||||||
<tr><td>aChefsDream.js</td><td>Adds more food and animals</td><td>SquareScreamYT and RealerRaddler</td></tr>
|
<tr><td>aChefsDream.js</td><td>Adds more food and animals</td><td>SquareScreamYT and RealerRaddler</td></tr>
|
||||||
|
|
@ -226,13 +229,14 @@
|
||||||
<tr><td>mobs.js</td><td>Adds Creepers, Zombies, and Skeletons</td><td>Alice</td></tr>
|
<tr><td>mobs.js</td><td>Adds Creepers, Zombies, and Skeletons</td><td>Alice</td></tr>
|
||||||
<tr><td>nocancer.js</td><td>Removes cancer from the game one tick after it is created</td><td>mollthecoder</td></tr>
|
<tr><td>nocancer.js</td><td>Removes cancer from the game one tick after it is created</td><td>mollthecoder</td></tr>
|
||||||
<tr><td>nocancer2.js</td><td>Removes cancer from the game altogether. May be incompatible with other mods that spawn cancer</td><td>mollthecoder</td></tr>
|
<tr><td>nocancer2.js</td><td>Removes cancer from the game altogether. May be incompatible with other mods that spawn cancer</td><td>mollthecoder</td></tr>
|
||||||
<tr><td>obsidian.js</td><td>Adds Obsidian</td><td>Jayd</td></tr>
|
<tr><td>nograssgrow.js</td><td>Prevents Grass from growing</td><td>mollthecoder</td></tr>
|
||||||
<tr><td>pizzasstuff.js</td><td>New animals, foods, and plants</td><td>_ilikepizza_</td></tr>
|
<tr><td>pizzasstuff.js</td><td>New animals, foods, and plants</td><td>_ilikepizza_</td></tr>
|
||||||
<tr><td>primordial_birthpool.js</td><td>A cross between Primordial Soup and Birthpool. Requires F&M</td><td>Alice</td></tr>
|
<tr><td>primordial_birthpool.js</td><td>A cross between Primordial Soup and Birthpool. Requires F&M</td><td>Alice</td></tr>
|
||||||
<tr><td>spring.js</td><td>Many nature elements, like sakura trees, butterflies, beehives, and more</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
<tr><td>spring.js</td><td>Many nature elements, like sakura trees, butterflies, beehives, and more</td><td><a href="https://R74n.com" class="R74nLink">R74n</a></td></tr>
|
||||||
<tr><td>the_ground_og.js</td><td>Simplified and more stable version of the_ground.js</td><td>Alice</td></tr>
|
<tr><td>the_ground_og.js</td><td>Simplified and more stable version of the_ground.js</td><td>Alice</td></tr>
|
||||||
<tr><td>the_ground.js</td><td>Adds several rock types, worldgen settings, and gemstones</td><td>Alice</td></tr>
|
<tr><td>the_ground.js</td><td>Adds several rock types, worldgen settings, and gemstones</td><td>Alice</td></tr>
|
||||||
<tr><td>toothpaste.js</td><td>Teeth and paste</td><td>Alice</td></tr>
|
<tr><td>toothpaste.js</td><td>Teeth and paste</td><td>Alice</td></tr>
|
||||||
|
<tr><td>volcanic_expansion.js</td><td>Adds Obsidian, Pumice, and Andesite rocks</td><td>Jayd</td></tr>
|
||||||
|
|
||||||
<!----><tr><td class="modCat" colspan="3">Fun & Games</td></tr><!---->
|
<!----><tr><td class="modCat" colspan="3">Fun & Games</td></tr><!---->
|
||||||
<tr><td>allliquids.js</td><td>Made all elements liquids</td><td>Alex</td></tr>
|
<tr><td>allliquids.js</td><td>Made all elements liquids</td><td>Alex</td></tr>
|
||||||
|
|
@ -252,10 +256,11 @@
|
||||||
<tr><td>musicalfruit.js</td><td>Humans get gas from eating Beans</td><td>mollthecoder</td></tr>
|
<tr><td>musicalfruit.js</td><td>Humans get gas from eating Beans</td><td>mollthecoder</td></tr>
|
||||||
<tr><td>random_elems.js</td><td>Curated randomly generated elements</td><td>Alice</td></tr>
|
<tr><td>random_elems.js</td><td>Curated randomly generated elements</td><td>Alice</td></tr>
|
||||||
<tr><td>random_liquids.js</td><td>Randomly generates liquids on game load</td><td>Alice</td></tr>
|
<tr><td>random_liquids.js</td><td>Randomly generates liquids on game load</td><td>Alice</td></tr>
|
||||||
|
<tr><td>sbmixup.js</td><td>Adds silly elements from a <a href="https://R74n.com/mix/" target="_blank">Mix-Up!</a> game</td><td>Stefan Blox</td>
|
||||||
|
<tr><td>star_wars.js</td><td>Adds various items from Star Wars by Disney</td><td>SeaPickle754</td>
|
||||||
<tr><td>sus.js</td><td>Adds an Among Us crewmate</td><td>Nv7</td></tr>
|
<tr><td>sus.js</td><td>Adds an Among Us crewmate</td><td>Nv7</td></tr>
|
||||||
<tr><td>triggerable_random_powders.js</td><td>Adds powders with different abilities, such as heating and cooling</td><td>Alice</td></tr>
|
<tr><td>triggerable_random_powders.js</td><td>Adds powders with different abilities, such as heating and cooling</td><td>Alice</td></tr>
|
||||||
<tr><td>troll.js</td><td>Adds various dumb elements that iterate randomly on the entire screen</td><td>Alice</td></tr>
|
<tr><td>troll.js</td><td>Adds various dumb elements that iterate randomly on the entire screen</td><td>Alice</td></tr>
|
||||||
<tr><td>star_wars.js</td><td>Adds various items from Star Wars by Disney</td><td>SeaPickle754</td>
|
|
||||||
|
|
||||||
<!----><tr><td class="modCat" colspan="3">Visual Effects</td></tr><!---->
|
<!----><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>acid_and_shapes.js</td><td>Weird visual effects. Enable in Settings</td><td>Alice</td></tr>
|
||||||
|
|
@ -266,6 +271,9 @@
|
||||||
<tr><td>rainbow_tests.js</td><td>Adds variants of the rainbow element with different maths</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>Shroomboxels.js</td><td>A variant of acid_and_shapes.js that uses a different trigonometric function</td><td>Alice</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 class="modCat" colspan="3">Compilations</td></tr><!---->
|
||||||
|
<tr><td>a_mod_by_alice.js</td><td>A mod combining most of Alice’s mods, and some other things</td><td>Alice</td></tr>
|
||||||
|
|
||||||
<!----><tr><td class="modCat" colspan="3">Technical Libraries & Tests</td></tr><!---->
|
<!----><tr><td class="modCat" colspan="3">Technical Libraries & Tests</td></tr><!---->
|
||||||
<tr><td>a_bundle_of_tests.js</td><td>Several test functions</td><td>Alice</td></tr>
|
<tr><td>a_bundle_of_tests.js</td><td>Several test functions</td><td>Alice</td></tr>
|
||||||
<tr><td>betterMenuScreens.js</td><td>Library for mods to create their own menus</td><td>ggod</td></tr>
|
<tr><td>betterMenuScreens.js</td><td>Library for mods to create their own menus</td><td>ggod</td></tr>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,114 @@
|
||||||
|
/*
|
||||||
|
|
||||||
|
Food Food Food! Adds more food to Sandboxels.
|
||||||
|
Created by sugima.
|
||||||
|
|
||||||
|
Sandboxels Plus v1
|
||||||
|
|
||||||
|
Changelog - 1/25/24 - v1
|
||||||
|
- Made the mod :|
|
||||||
|
- Added Blueberries
|
||||||
|
- Added Lemons
|
||||||
|
- Added Rice
|
||||||
|
- Added Fried Rice
|
||||||
|
- Added Waffle
|
||||||
|
- Added Waffle Cone
|
||||||
|
- Added Chocolate Ice Cream
|
||||||
|
- Added Soup
|
||||||
|
- Added Coca Cola
|
||||||
|
- Added Flavor Formula
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
elements.blueberry = {
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
category: "food",
|
||||||
|
state: "solid",
|
||||||
|
color: ["#464196","#2E2B64"],
|
||||||
|
breakInto: "juice",
|
||||||
|
breakIntoColor: "#1F1C42",
|
||||||
|
reactions: {},
|
||||||
|
};
|
||||||
|
elements.lemon = {
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
category: "food",
|
||||||
|
state: "solid",
|
||||||
|
color: ["#f0e79d","#e3d24a"],
|
||||||
|
breakInto: "juice",
|
||||||
|
breakIntoColor: "#f1e9a6",
|
||||||
|
reactions: {},
|
||||||
|
};
|
||||||
|
elements.rice = {
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
category: "food",
|
||||||
|
state: "solid",
|
||||||
|
color: "#ffffff",
|
||||||
|
tempHigh: 65,
|
||||||
|
stateHigh: "friedrice",
|
||||||
|
reactions: {},
|
||||||
|
};
|
||||||
|
elements.fried_rice = {
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
category: "food",
|
||||||
|
state: "solid",
|
||||||
|
color: ["#ff9c5e","#cf6c30"],
|
||||||
|
reactions: {},
|
||||||
|
};
|
||||||
|
elements.waffle = {
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
category: "food",
|
||||||
|
state: "solid",
|
||||||
|
color: ["#e3a976","#b3855d"],
|
||||||
|
reactions: {},
|
||||||
|
};
|
||||||
|
elements.waffle = {
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
category: "food",
|
||||||
|
state: "solid",
|
||||||
|
color: ["#e3a976","#b3855d"],
|
||||||
|
tempHigh: 100,
|
||||||
|
stateHigh: "wafflecone",
|
||||||
|
reactions: {},
|
||||||
|
};
|
||||||
|
elements.waffle_cone = {
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
category: "food",
|
||||||
|
state: "solid",
|
||||||
|
color: ["#cc8e58","#b58051"],
|
||||||
|
reactions: {},
|
||||||
|
};
|
||||||
|
elements.chocolate_ice_cream = {
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
category: "food",
|
||||||
|
state: "solid",
|
||||||
|
color: "#4d2f1c",
|
||||||
|
reactions: {},
|
||||||
|
};
|
||||||
|
elements.soup = {
|
||||||
|
behavior: behaviors.LIQUID,
|
||||||
|
category: "food",
|
||||||
|
state: "liquid",
|
||||||
|
color: "#c48818",
|
||||||
|
reactions: {},
|
||||||
|
};
|
||||||
|
elements.coca_cola = {
|
||||||
|
behavior: behaviors.LIQUID,
|
||||||
|
category: "liquids",
|
||||||
|
state: "liquid",
|
||||||
|
color: "#241711",
|
||||||
|
reactions: {},
|
||||||
|
};
|
||||||
|
elements.flavor_formula = {
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
category: "liquids",
|
||||||
|
state: "solid",
|
||||||
|
color: ["#ff0000","#ff6400", "#ffff00", "#04ff00", "#00fff7", "#0400ff", "#b700ff", "#ff0099"],
|
||||||
|
reactions: {},
|
||||||
|
};
|
||||||
|
if (!elements.flour.reactions) { elements.flour.reactions = {} }
|
||||||
|
if (!elements.sugar.reactions) { elements.sugar.reactions = {} }
|
||||||
|
elements.flour.reactions.sugar = { "elem1":"waffle", "elem2": "waffle"};
|
||||||
|
if (!elements.ice_cream.reactions) { elements.ice_cream.reactions = {} }
|
||||||
|
elements.ice_cream.reactions.chocolate = { "elem1":"chocolateicecream", "elem2": "chocolateicecream"};
|
||||||
|
if (!elements.sugar_water.reactions) { elements.sugar_water.reactions = {} }
|
||||||
|
elements.sugar_water.reactions.flavor_formula = { "elem1":"coca_cola", "elem2": "coca_cola"};
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,452 @@
|
||||||
|
elements.output = {
|
||||||
|
color: "#601616",
|
||||||
|
category: "logic",
|
||||||
|
state: "solid",
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
conduct: 1,
|
||||||
|
tick: function(pixel){
|
||||||
|
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) && pixel.charged) {
|
||||||
|
if (pixelMap[x][y].element == "logic_wire" && pixelMap[x][y].lstate == 0){
|
||||||
|
if (pixelMap[x][y].lastUpdate == pixelTicks){
|
||||||
|
pixelMap[x][y].lstate = 2
|
||||||
|
pixelMap[x][y].color = pixelColorPick(pixelMap[x][y], "#ffe49c")
|
||||||
|
} else {
|
||||||
|
pixelMap[x][y].lstate = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elements.logic_wire = {
|
||||||
|
color: "#3d4d2c",
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
state: "solid",
|
||||||
|
category: "logic",
|
||||||
|
tick: function (pixel){ // -2 uncharge spread -1 uncharge buffer 0 uncharged 1 charge buffer 2 charge spread
|
||||||
|
pixel.lastUpdate = pixelTicks
|
||||||
|
if (!pixel.lstate){
|
||||||
|
pixel.lstate = 0
|
||||||
|
}
|
||||||
|
if (pixel.lstate == 0){
|
||||||
|
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 (pixelMap[x][y].element == "output" && pixelMap[x][y].charge == 1){
|
||||||
|
pixel.lstate == 2;
|
||||||
|
pixel.color = pixelColorPick(pixel, "#ffe49c");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (pixel.lstate == 2){
|
||||||
|
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 (pixelMap[x][y].element == "logic_wire" && pixelMap[x][y].lstate == 0){
|
||||||
|
if (pixelMap[x][y].lastUpdate == pixelTicks){
|
||||||
|
pixelMap[x][y].lstate = 2
|
||||||
|
pixelMap[x][y].color = pixelColorPick(pixelMap[x][y], "#ffe49c")
|
||||||
|
} else {
|
||||||
|
pixelMap[x][y].lstate = 1
|
||||||
|
}
|
||||||
|
} else if (pixelMap[x][y].element == "output" && pixelMap[x][y].charged == 0){
|
||||||
|
pixel.lstate = -2
|
||||||
|
pixel.color = pixelColorPick(pixel, "#3d4d2c")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (pixel.lstate == 1){
|
||||||
|
pixel.lstate = 2
|
||||||
|
pixel.color = pixelColorPick(pixel, "#ffe49c");
|
||||||
|
}
|
||||||
|
if (pixel.lstate == -2){
|
||||||
|
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 (pixelMap[x][y].element == "logic_wire" && (pixelMap[x][y].lstate == 1 || pixelMap[x][y].lstate == 2)){
|
||||||
|
if (pixelMap[x][y].lastUpdate == pixelTicks){
|
||||||
|
pixelMap[x][y].lstate = -2
|
||||||
|
pixelMap[x][y].color = pixelColorPick(pixelMap[x][y], "#3d4d2c")
|
||||||
|
} else {
|
||||||
|
pixelMap[x][y].lstate = -1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pixel.lstate = 0
|
||||||
|
}
|
||||||
|
if (pixel.lstate == -1){
|
||||||
|
pixel.lstate = -2
|
||||||
|
pixel.color = pixelColorPick(pixel, "#3d4d2c");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function countNeighbors(){
|
||||||
|
var results = {
|
||||||
|
"charged": 0,
|
||||||
|
"uncharged": 0,
|
||||||
|
}
|
||||||
|
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)) {
|
||||||
|
var otherPixel = pixelMap[x][y];
|
||||||
|
if (otherPixel.element == "logic_wire"){
|
||||||
|
if (otherPixel.lstate > 0){
|
||||||
|
results.charged = results.charged + 1;
|
||||||
|
} else {
|
||||||
|
results.uncharged = results.uncharged + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
function chargeOutputs(){
|
||||||
|
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)) {
|
||||||
|
var otherPixel = pixelMap[x][y];
|
||||||
|
if (otherPixel.element == "output"){
|
||||||
|
otherPixel.charged = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function unchargeOutputs(){
|
||||||
|
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)) {
|
||||||
|
var otherPixel = pixelMap[x][y];
|
||||||
|
if (otherPixel.element == "output"){
|
||||||
|
otherPixel.charged = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elements.not_gate = {
|
||||||
|
color: "#4a1b18",
|
||||||
|
category: "logic",
|
||||||
|
state: "solid",
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
tick: function(pixel){
|
||||||
|
var countNeighborsResult = countNeighbors()
|
||||||
|
if (countNeighborsResult.charged == 0){
|
||||||
|
chargeOutputs();
|
||||||
|
} else {
|
||||||
|
unchargeOutputs();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elements.and_gate = {
|
||||||
|
color: "#184a23",
|
||||||
|
category: "logic",
|
||||||
|
state: "solid",
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
tick: function(pixel){
|
||||||
|
var countNeighborsResult = countNeighbors()
|
||||||
|
if (countNeighborsResult.uncharged == 0){
|
||||||
|
chargeOutputs();
|
||||||
|
} else {
|
||||||
|
unchargeOutputs();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elements.xor_gate = {
|
||||||
|
color: "#30184a",
|
||||||
|
category: "logic",
|
||||||
|
state: "solid",
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
tick: function(pixel){
|
||||||
|
var countNeighborsResult = countNeighbors()
|
||||||
|
if (countNeighborsResult.charged == 1){
|
||||||
|
chargeOutputs();
|
||||||
|
} else {
|
||||||
|
unchargeOutputs();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elements.or_gate = {
|
||||||
|
color: "#4a4018",
|
||||||
|
category: "logic",
|
||||||
|
state: "solid",
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
tick: function(pixel){
|
||||||
|
var countNeighborsResult = countNeighbors()
|
||||||
|
if (countNeighborsResult.charged >= 1){
|
||||||
|
chargeOutputs();
|
||||||
|
} else {
|
||||||
|
unchargeOutputs();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elements.nand_gate = {
|
||||||
|
color: "#eb4034",
|
||||||
|
category: "logic",
|
||||||
|
state: "solid",
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
tick: function(pixel){
|
||||||
|
var countNeighborsResult = countNeighbors()
|
||||||
|
if (countNeighborsResult.uncharged){
|
||||||
|
chargeOutputs();
|
||||||
|
} else {
|
||||||
|
unchargeOutputs();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elements.nor_gate = {
|
||||||
|
color: "#eb8c34",
|
||||||
|
category: "logic",
|
||||||
|
state: "solid",
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
tick: function(pixel){
|
||||||
|
var countNeighborsResult = countNeighbors()
|
||||||
|
if (!countNeighborsResult.charged){
|
||||||
|
chargeOutputs();
|
||||||
|
} else {
|
||||||
|
unchargeOutputs();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elements.nxor_gate = {
|
||||||
|
color: "#ebd834",
|
||||||
|
category: "logic",
|
||||||
|
state: "solid",
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
tick: function(pixel){
|
||||||
|
var countNeighborsResult = countNeighbors()
|
||||||
|
if (!(countNeighborsResult.charged == 1)){
|
||||||
|
chargeOutputs();
|
||||||
|
} else {
|
||||||
|
unchargeOutputs();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elements.E2L_lever = {
|
||||||
|
color: "#b2ba75",
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
state: "solid",
|
||||||
|
category: "logic",
|
||||||
|
tick: function(pixel){
|
||||||
|
if (pixel.start === pixelTicks){
|
||||||
|
pixel.cooldown = 0;
|
||||||
|
pixel.toggleMode = 1;
|
||||||
|
}
|
||||||
|
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 ((pixelMap[x][y].charge || pixelMap[x][y].chargeCD) && pixel.cooldown == 0){
|
||||||
|
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 (pixelMap[x][y].element == "logic_wire"){
|
||||||
|
if (pixel.toggleMode == 1){
|
||||||
|
pixelMap[x][y].lstate = 2
|
||||||
|
pixelMap[x][y].color = pixelColorPick(pixel, "#ffe49c");
|
||||||
|
} else {
|
||||||
|
pixelMap[x][y].lstate = -2
|
||||||
|
pixelMap[x][y].color = pixelColorPick(pixel, "#3d4d2c");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pixel.cooldown = 15
|
||||||
|
if (pixel.toggleMode){
|
||||||
|
pixel.toggleMode = 0;
|
||||||
|
} else {
|
||||||
|
pixel.toggleMode = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (pixel.cooldown){
|
||||||
|
pixel.cooldown = pixel.cooldown - 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elements.E2L_button = {
|
||||||
|
color: "#b2ba75",
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
state: "solid",
|
||||||
|
category: "logic",
|
||||||
|
tick: function(pixel){
|
||||||
|
if (pixel.start === pixelTicks){
|
||||||
|
pixel.cooldown = 0;
|
||||||
|
pixel.toggleMode = 1;
|
||||||
|
}
|
||||||
|
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 ((pixelMap[x][y].charge || pixelMap[x][y].chargeCD) && pixel.cooldown == 0){
|
||||||
|
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 (pixelMap[x][y].element == "logic_wire"){
|
||||||
|
if (pixel.toggleMode == 1){
|
||||||
|
pixelMap[x][y].lstate = 2
|
||||||
|
pixelMap[x][y].color = pixelColorPick(pixel, "#ffe49c");
|
||||||
|
} else {
|
||||||
|
pixelMap[x][y].lstate = -2
|
||||||
|
pixelMap[x][y].color = pixelColorPick(pixel, "#3d4d2c");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pixel.cooldown = 5
|
||||||
|
if (pixel.toggleMode){
|
||||||
|
pixel.toggleMode = 0;
|
||||||
|
} else {
|
||||||
|
pixel.toggleMode = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (pixel.cooldown){
|
||||||
|
pixel.cooldown = pixel.cooldown - 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elements.L2E_constant = {
|
||||||
|
color: "#b2ba75",
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
state: "solid",
|
||||||
|
category: "logic",
|
||||||
|
tick: function(pixel){
|
||||||
|
var foundOn = false;
|
||||||
|
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 (pixelMap[x][y].element == "logic_wire" && pixelMap[x][y].lstate > 0){
|
||||||
|
foundOn = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (foundOn){
|
||||||
|
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 (elements[pixelMap[x][y].element].conduct){
|
||||||
|
pixelMap[x][y].charge = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
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 (elements[pixelMap[x][y].element].conduct){
|
||||||
|
pixelMap[x][y].charge = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var transmitterVar = 0;
|
||||||
|
elements.logic_transmitter = {
|
||||||
|
onSelect: function() {
|
||||||
|
var answertransmitter = prompt("Please input the desired element of this filter. It will not work if you do multiple filter types while paused.",(transmitterVar||undefined));
|
||||||
|
if (!answertransmitter) { return }
|
||||||
|
transmitterVar = answertransmitter;
|
||||||
|
},
|
||||||
|
color: "#c26994",
|
||||||
|
state: "solid",
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
category: "logic",
|
||||||
|
tick: function(pixel){
|
||||||
|
var neighborResult = countNeighbors();
|
||||||
|
if (pixel.start === pixelTicks){
|
||||||
|
pixel.channel = transmitterVar;
|
||||||
|
}
|
||||||
|
pixel.clone = pixel.channel;
|
||||||
|
var receivers = currentPixels.filter(function(pixelToCheck) {
|
||||||
|
return (
|
||||||
|
pixelToCheck !== pixel && //should work if this pixel is the same as the other one by reference
|
||||||
|
pixelToCheck.element == "logic_receiver" &&
|
||||||
|
pixelToCheck.channel == pixel.channel
|
||||||
|
);
|
||||||
|
}).map(pixel => [pixel.x,pixel.y]);
|
||||||
|
for(var i in receivers) {
|
||||||
|
i = parseInt(i);
|
||||||
|
var wifiCoords = receivers[i];
|
||||||
|
var newPixel = pixelMap[wifiCoords[0]]?.[wifiCoords[1]];
|
||||||
|
if(newPixel) {
|
||||||
|
if (neighborResult.charged){
|
||||||
|
for(var j in adjacentCoords) {
|
||||||
|
j = parseInt(j);
|
||||||
|
var pixelAdjacentToWifi = pixelMap[newPixel.x+adjacentCoords[j][0]]?.[newPixel.y+adjacentCoords[j][1]];
|
||||||
|
if(pixelAdjacentToWifi && pixelAdjacentToWifi.element == "logic_wire") { pixelAdjacentToWifi.lstate = 2 };
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
for(var j in adjacentCoords) {
|
||||||
|
j = parseInt(j);
|
||||||
|
var pixelAdjacentToWifi = pixelMap[newPixel.x+adjacentCoords[j][0]]?.[newPixel.y+adjacentCoords[j][1]];
|
||||||
|
if(pixelAdjacentToWifi && pixelAdjacentToWifi.element == "logic_wire") { pixelAdjacentToWifi.lstate = -2 };
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elements.logic_receiver = {
|
||||||
|
onSelect: function() {
|
||||||
|
var answertransmitter = prompt("Please input the desired element of this filter. It will not work if you do multiple filter types while paused.",(transmitterVar||undefined));
|
||||||
|
if (!answertransmitter) { return }
|
||||||
|
transmitterVar = answertransmitter;
|
||||||
|
},
|
||||||
|
color: "#69c2ba",
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
state: "solid",
|
||||||
|
category: "logic",
|
||||||
|
tick: function(pixel){
|
||||||
|
if (pixel.start === pixelTicks){pixel.channel = transmitterVar}
|
||||||
|
pixel.clone = pixel.channel;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elements.logic_shock = {
|
||||||
|
color: elements.shock.color,
|
||||||
|
category: "tools",
|
||||||
|
tool: function(pixel){
|
||||||
|
if (pixel.element == "logic_wire"){pixel.lstate = 2; pixel.color = pixelColorPick(pixel, "#ffe49c")}
|
||||||
|
},
|
||||||
|
excludeRandom: true,
|
||||||
|
}
|
||||||
|
elements.logic_unshock = {
|
||||||
|
color: elements.uncharge.color,
|
||||||
|
category: "tools",
|
||||||
|
tool: function(pixel){
|
||||||
|
if (pixel.element == "logic_wire"){pixel.lstate = -2; pixel.color = pixelColorPick(pixel, "#3d4d2c")}
|
||||||
|
},
|
||||||
|
excludeRandom: true,
|
||||||
|
}
|
||||||
|
|
@ -1527,6 +1527,8 @@ elements.invisiblewall = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
category: "solids",
|
category: "solids",
|
||||||
|
movable: false,
|
||||||
|
noMix: true,
|
||||||
},
|
},
|
||||||
elements.bismuth = {
|
elements.bismuth = {
|
||||||
color: ["#818181","#989898","#b0b0b0","#c9c9c9"],
|
color: ["#818181","#989898","#b0b0b0","#c9c9c9"],
|
||||||
|
|
@ -2013,7 +2015,7 @@ elements.element_filler = {
|
||||||
onSelect: function() {
|
onSelect: function() {
|
||||||
var answer6 = prompt("Please input the desired element of this filler. It will not work if you do multiple filter types while paused.",(elemfillerVar||undefined));
|
var answer6 = prompt("Please input the desired element of this filler. It will not work if you do multiple filter types while paused.",(elemfillerVar||undefined));
|
||||||
if (!answer6) { return }
|
if (!answer6) { return }
|
||||||
elemfillerVar = answer6;
|
elemfillerVar = mostSimilarElement(answer6);
|
||||||
},
|
},
|
||||||
tick: function(pixel){
|
tick: function(pixel){
|
||||||
var neighbors = 0;
|
var neighbors = 0;
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
215
mods/sbstuff.js
215
mods/sbstuff.js
|
|
@ -66,7 +66,7 @@ elements.maple_syrup = {
|
||||||
tempHigh: 500,
|
tempHigh: 500,
|
||||||
stateHigh: "steam",
|
stateHigh: "steam",
|
||||||
color: "#9c6000",
|
color: "#9c6000",
|
||||||
behavior: behaviors.LIQUID,
|
behavior: behaviors.CRAWLER,
|
||||||
category: "liquids",
|
category: "liquids",
|
||||||
state: "liquid",
|
state: "liquid",
|
||||||
};
|
};
|
||||||
|
|
@ -362,6 +362,15 @@ elements.coca_cola = {
|
||||||
state: "liquid",
|
state: "liquid",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
elements.pepsi = {
|
||||||
|
tempHigh: 500,
|
||||||
|
stateHigh: "steam",
|
||||||
|
color: "#2b1717",
|
||||||
|
behavior: behaviors.LIQUID,
|
||||||
|
category: "liquids",
|
||||||
|
state: "liquid",
|
||||||
|
};
|
||||||
|
|
||||||
elements.piss = {
|
elements.piss = {
|
||||||
tempHigh: 500,
|
tempHigh: 500,
|
||||||
stateHigh: "steam",
|
stateHigh: "steam",
|
||||||
|
|
@ -1409,7 +1418,7 @@ elements.silver_coin = {
|
||||||
state: "solid",
|
state: "solid",
|
||||||
};
|
};
|
||||||
|
|
||||||
elements.max_graphics_in_roblox = {
|
elements.uraniumaniumaniumaniumanium_popcornicecream_plutoniumeptunium_238239 = {
|
||||||
color: "#238fe8",
|
color: "#238fe8",
|
||||||
behavior: [
|
behavior: [
|
||||||
"XX|XX|XX",
|
"XX|XX|XX",
|
||||||
|
|
@ -1425,7 +1434,199 @@ elements.max_graphics_in_roblox = {
|
||||||
excludeRandom: true,
|
excludeRandom: true,
|
||||||
maxSize: 1,
|
maxSize: 1,
|
||||||
noMix: true,
|
noMix: true,
|
||||||
desc: "ok now ACTUALLY use it at your own risk IM NOT KIDDING! THIS CAN FUCKING CRASH YOUR GAME"
|
desc: "ok now ACTUALLY use it at your own risk IM NOT KIDDING! THIS CAN FUCKING CRASH YOUR GAME",
|
||||||
|
excludeRandom: true,
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.coffee_milk = {
|
||||||
|
tempHigh: 300,
|
||||||
|
stateHigh: "steam",
|
||||||
|
color: "#5c4c42",
|
||||||
|
behavior: behaviors.LIQUID,
|
||||||
|
category: "liquids",
|
||||||
|
state: "liquid",
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.mentos = {
|
||||||
|
tempHigh: 500,
|
||||||
|
stateHigh: "ash",
|
||||||
|
color: "#d0cbd6",
|
||||||
|
behavior: behaviors.STURDYPOWDER,
|
||||||
|
category: "food",
|
||||||
|
state: "liquid"
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.oreo = {
|
||||||
|
tempHigh: 300,
|
||||||
|
stateHigh: "steam",
|
||||||
|
color: ["#211e1e","#fff6f5"],
|
||||||
|
singleColor: true,
|
||||||
|
behavior: behaviors.STURDYPOWDER,
|
||||||
|
category: "food",
|
||||||
|
state: "liquid"
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.uranium_238 = {
|
||||||
|
tempHigh: 1200,
|
||||||
|
stateHigh: "molten_uranium",
|
||||||
|
color: ["#0f400b", "#30522d", "#4d6b4a", "#6f8f6d"],
|
||||||
|
behavior: [
|
||||||
|
"XX|CR:radiation%1|XX",
|
||||||
|
"CR:radiation%1|CH:lead%0.001|CR:radiation%1",
|
||||||
|
"M2|M1|M2",
|
||||||
|
],
|
||||||
|
category: "powders",
|
||||||
|
state: "liquid",
|
||||||
|
density: 19100,
|
||||||
|
hardness: 0.6,
|
||||||
|
conduct: 0.235,
|
||||||
|
excludeRandom: true,
|
||||||
|
reactions: {
|
||||||
|
"neutron": {elem1: "uranium_239",},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.uranium_239 = {
|
||||||
|
tempHigh: 1300,
|
||||||
|
stateHigh: "molten_uranium",
|
||||||
|
color: ["#153816", "#135e14", "#379138", "#567556", "#7bb37b"],
|
||||||
|
behavior: [
|
||||||
|
"XX|CR:radiation%2|XX",
|
||||||
|
"CR:radiation%2|CH:lead%0.002|CR:radiation%2",
|
||||||
|
"M2|M1|M2",
|
||||||
|
],
|
||||||
|
category: "powders",
|
||||||
|
state: "liquid",
|
||||||
|
hidden: true,
|
||||||
|
density: 19100,
|
||||||
|
hardness: 0.6,
|
||||||
|
conduct: 0.235,
|
||||||
|
excludeRandom: true,
|
||||||
|
reactions: {
|
||||||
|
"electron": {elem1: "neptunium_239"}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.neptunium_239 = {
|
||||||
|
tempHigh: 1500,
|
||||||
|
stateHigh: "molten_uranium",
|
||||||
|
color: ["#082e19", "#173b27", "#354a3f", "#4c635a", "#344a41"],
|
||||||
|
behavior: [
|
||||||
|
"XX|CR:radiation%3|XX",
|
||||||
|
"CR:radiation%3|CH:lead%0.003|CR:radiation%3",
|
||||||
|
"M2|M1|M2",
|
||||||
|
],
|
||||||
|
category: "powders",
|
||||||
|
state: "liquid",
|
||||||
|
hidden: true,
|
||||||
|
density: 20000,
|
||||||
|
hardness: 0.7,
|
||||||
|
conduct: 0.3,
|
||||||
|
excludeRandom: true,
|
||||||
|
reactions: {
|
||||||
|
"electron": {elem1: "plutonium"},
|
||||||
|
"neutron": { elem1:"n_explosion", tempMin:500, chance:0.1 }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.plutonium = {
|
||||||
|
tempHigh: 2000,
|
||||||
|
stateHigh: "molten_uranium",
|
||||||
|
color: ["#0a4a17", "#194d23", "#263b2a", "#475449"],
|
||||||
|
behavior: [
|
||||||
|
"XX|CR:radiation%4|XX",
|
||||||
|
"CR:radiation%4|CH:lead%0.004|CR:radiation%4",
|
||||||
|
"M2|M1|M2",
|
||||||
|
],
|
||||||
|
category: "powders",
|
||||||
|
state: "liquid",
|
||||||
|
hidden: true,
|
||||||
|
density: 22000,
|
||||||
|
hardness: 0.8,
|
||||||
|
conduct: 0.4,
|
||||||
|
excludeRandom: true,
|
||||||
|
reactions: {
|
||||||
|
"neutron": { elem1:"n_explosion", tempMin:500, chance:0.2 },
|
||||||
|
"electron": { elem1:"n_explosion", tempMin:500, chance:0.00000000000000000000001 }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.electron = {
|
||||||
|
color: "#c99d16",
|
||||||
|
behavior: behaviors.BOUNCY,
|
||||||
|
reactions: {
|
||||||
|
"uranium": { temp2:100 },
|
||||||
|
},
|
||||||
|
temp: 35,
|
||||||
|
category: "energy",
|
||||||
|
state: "gas",
|
||||||
|
density: 0.00002,
|
||||||
|
ignoreAir: true
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.sned = {
|
||||||
|
color: "#dfe0d9",
|
||||||
|
behavior: [
|
||||||
|
"XX|XX AND CR:sned%1|XX",
|
||||||
|
"M2 AND CR:sned%1|XX|M2 AND CR:sned%1",
|
||||||
|
"M1|M1 AND CH:sned%1|M1",
|
||||||
|
],
|
||||||
|
category: "joke",
|
||||||
|
state: "liquid",
|
||||||
|
excludeRandom: true
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.uranium_tea = {
|
||||||
|
temp: 60,
|
||||||
|
tempHigh: 400,
|
||||||
|
stateHigh: "molten_uranium",
|
||||||
|
color: ["#0f8b15", "#316624", "#59864b", "#502e0f"],
|
||||||
|
behavior: behaviors.RADLIQUID,
|
||||||
|
category: "liquids",
|
||||||
|
state: "liquid"
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.powerlaser = {
|
||||||
|
color: ["#ed0ca9","#ff2b95"],
|
||||||
|
tick: function(pixel) {
|
||||||
|
var x = pixel.x;
|
||||||
|
for (var y = pixel.y; y < height; y++) {
|
||||||
|
if (outOfBounds(x, y)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (isEmpty(x, y)) {
|
||||||
|
if (Math.random() > 0.05) { continue }
|
||||||
|
createPixel("flash", x, y);
|
||||||
|
pixelMap[x][y].color = "#b80ced";
|
||||||
|
pixelMap[x][y].temp = 1001000;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (elements[pixelMap[x][y].element].isGas) { continue }
|
||||||
|
if (elements[pixelMap[x][y].element].id === elements.heat_ray.id) { break }
|
||||||
|
pixelMap[x][y].temp += 901000;
|
||||||
|
pixelTempCheck(pixelMap[x][y]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
deletePixel(pixel.x, pixel.y);
|
||||||
|
},
|
||||||
|
temp: 1000000,
|
||||||
|
category: "energy",
|
||||||
|
state: "gas",
|
||||||
|
excludeRandom: true,
|
||||||
|
noMix: true
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.magma_bomb = {
|
||||||
|
temp: 100,
|
||||||
|
color: "#b83109",
|
||||||
|
behavior: [
|
||||||
|
"XX|EX:6>magma|XX",
|
||||||
|
"XX|XX|XX",
|
||||||
|
"M2|M1 AND EX:6>magma|M2"
|
||||||
|
],
|
||||||
|
category: "weapons",
|
||||||
|
state: "liquid"
|
||||||
};
|
};
|
||||||
|
|
||||||
elements.incinerate.category = "tools",
|
elements.incinerate.category = "tools",
|
||||||
|
|
@ -1463,13 +1664,17 @@ if (!elements.water.reactions) elements.water.reactions = {};
|
||||||
elements.water.reactions.cocaine = { elem1: "solid_water", elem2: null }
|
elements.water.reactions.cocaine = { elem1: "solid_water", elem2: null }
|
||||||
|
|
||||||
if (!elements.paper.reactions) elements.paper.reactions = {};
|
if (!elements.paper.reactions) elements.paper.reactions = {};
|
||||||
elements.paper.reactions.bless = { elem1: "robux", elem2: null, chance: 0.001 }
|
elements.paper.reactions.bless = { elem1: "robux", elem2: null, chance: 0.0000001 }
|
||||||
|
|
||||||
if (!elements.uranium.reactions) elements.uranium.reactions = {};
|
if (!elements.uranium.reactions) elements.uranium.reactions = {};
|
||||||
elements.uranium.reactions.ice_cream = {elem1: "uranium_ice_cream", elem2: null},
|
elements.uranium.reactions.ice_cream = {elem1: "uranium_ice_cream", elem2: null},
|
||||||
elements.uranium.reactions.cream = {elem1: "uranium_ice_cream", elem2: null}
|
elements.uranium.reactions.cream = {elem1: "uranium_ice_cream", elem2: null},
|
||||||
|
elements.uranium.reactions.tea = {elem1: "uranium_tea", elem2: null}
|
||||||
|
|
||||||
if (!elements.dough.reactions) elements.dough.reactions = {};
|
if (!elements.dough.reactions) elements.dough.reactions = {};
|
||||||
elements.dough.reactions.yolk = {elem1: null, elem2: "spaghetti", tempMin: 25}
|
elements.dough.reactions.yolk = {elem1: null, elem2: "spaghetti", tempMin: 25}
|
||||||
|
|
||||||
|
if (!elements.coffee.reactions) elements.coffee.reactions = {};
|
||||||
|
elements.coffee.reactions.milk = {elem1: null, elem2: "coffee_milk",}
|
||||||
|
|
||||||
elements.silver.breakInto = "silver_coin"
|
elements.silver.breakInto = "silver_coin"
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,218 @@
|
||||||
|
/*
|
||||||
|
A Sandboxels mod dedicated to creating yummy ice cream creations! My first Sandboxels mod.
|
||||||
|
Made by rottenEgghead @ https://github.com/rottenEgghead
|
||||||
|
|
||||||
|
Current elements: Waffle cone, Strawberry, Sprinkles, Chocolate chips, Oreos, M&Ms, Cherries, Banana, Coconut (shavings/water)
|
||||||
|
Current renamed elements: Chocolate -> Chocolate bar, Nut -> Peanut
|
||||||
|
Current tools: Freeze
|
||||||
|
|
||||||
|
** v.1.0 **
|
||||||
|
N/A
|
||||||
|
*/
|
||||||
|
|
||||||
|
var mainCat = "food";
|
||||||
|
var smallDensity = 233.95;
|
||||||
|
var foodTempHigh = 176;
|
||||||
|
var defChance = 0.05;
|
||||||
|
|
||||||
|
if (!elements.ice_cream.reactions) { elements.ice_cream.reaction = {}; };
|
||||||
|
elements.ice_cream.temp = -15;
|
||||||
|
elements.ice_cream.reactions = {
|
||||||
|
"strawberry": { color1: ["#f5dad7", "#ffbfbf", "#f7a3a3"], chance: defChance },
|
||||||
|
"gingerbread": { color1: ["#f0cbad", "#dec4af"], chance: defChance },
|
||||||
|
"coffee": { color1: [], chance: defChance },
|
||||||
|
"crumb": { color1: ["#f0cbad", "#dec4af"], chance: defChance },
|
||||||
|
"oreo_crumb": { color1: ["#e8e2e1", "#666161", "#8a8888"], chance: defChance },
|
||||||
|
"oreo": { color1: ["#e8e2e1", "#666161", "#8a8888"], chance: defChance },
|
||||||
|
"mnms": { color1: ["#ebe6e6", "#ebe6e6", "#ffd9d9", "#fffcd9", "#ddffd9", "#d9d9ff"], chance: defChance },
|
||||||
|
"nut_butter": { color1: ["#f0ece9", "#f5cd98", "#cfaf84"], chance: defChance },
|
||||||
|
"melted_chocolate": { color1: ["#785E4C", "#8c664c", "#b37449"], chance: defChance },
|
||||||
|
};
|
||||||
|
|
||||||
|
elements.chocolate.name = "Chocolate Bar";
|
||||||
|
elements.chocolate.behavior = behaviors.WALL;
|
||||||
|
elements.chocolate.breakInto = "chocolate_chips";
|
||||||
|
|
||||||
|
elements.coffee.tempLow = -15;
|
||||||
|
elements.coffee.hidden = false;
|
||||||
|
|
||||||
|
elements.nut.name = "Peanut";
|
||||||
|
elements.nut_butter.name = "Peanut Butter";
|
||||||
|
elements.nut_meat.name = "Peanut Meat";
|
||||||
|
elements.nut_milk.name = "Peanut Milk";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Tools */
|
||||||
|
elements.freeze = {
|
||||||
|
color: ["#BCE7FF", "#65C7FF", "#BCE7FF", "#65C7FF", "#BCE7FF", "#65C7FF"],
|
||||||
|
tool: function (pixel) {
|
||||||
|
if (!shiftDown) {
|
||||||
|
pixel.temp -= 0.5;
|
||||||
|
pixelTempCheck(pixel);
|
||||||
|
} else {
|
||||||
|
pixel.temp -= 1;
|
||||||
|
pixelTempCheck(pixel);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
category: "energy",
|
||||||
|
excludeRandom: true,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Elements */
|
||||||
|
elements.strawberry = {
|
||||||
|
color: "#e63e57",
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
category: "food",
|
||||||
|
state: "solid",
|
||||||
|
hidden: false,
|
||||||
|
isFood: true,
|
||||||
|
|
||||||
|
breakInto: "juice",
|
||||||
|
breakIntoColor: "#db4f64",
|
||||||
|
stateHigh: ["steam", "sugar"],
|
||||||
|
density: 1154,
|
||||||
|
};
|
||||||
|
elements.banana = {
|
||||||
|
color: ["#F5D273", "#FFE093"],
|
||||||
|
behavior: behaviors.STURDYPOWDER,
|
||||||
|
category: mainCat,
|
||||||
|
state: "solid",
|
||||||
|
hidden: false,
|
||||||
|
isFood: true,
|
||||||
|
|
||||||
|
tempHigh: 142,
|
||||||
|
density: 876,
|
||||||
|
};
|
||||||
|
elements.coconut = {
|
||||||
|
color: ["#503733", "#402926"],
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
category: mainCat,
|
||||||
|
state: "solid",
|
||||||
|
hidden: false,
|
||||||
|
isFood: true,
|
||||||
|
|
||||||
|
tempLow: 0,
|
||||||
|
burnInto: "steam",
|
||||||
|
breakInto: ["coconut_shavings", "coconut_water", "coconut_water"],
|
||||||
|
density: 352,
|
||||||
|
};
|
||||||
|
elements.coconut_shavings = {
|
||||||
|
color: ["#E7E1DF", "#F5F1F0"],
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
category: mainCat,
|
||||||
|
state: "solid",
|
||||||
|
hidden: false,
|
||||||
|
isFood: true,
|
||||||
|
|
||||||
|
tempLow: 0,
|
||||||
|
burnInto: "steam",
|
||||||
|
density: 233,
|
||||||
|
};
|
||||||
|
elements.coconut_water = {
|
||||||
|
color: "#D7E0DF",
|
||||||
|
behavior: behaviors.LIQUID,
|
||||||
|
category: "liquids",
|
||||||
|
state: "liquid",
|
||||||
|
hidden: true,
|
||||||
|
isFood: true,
|
||||||
|
|
||||||
|
tempLow: 0,
|
||||||
|
burnInto: "steam",
|
||||||
|
density: 1000,
|
||||||
|
};
|
||||||
|
elements.waffle_cone = {
|
||||||
|
color: ["#d49d66", "#bf8449"],
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
category: mainCat,
|
||||||
|
state: "solid",
|
||||||
|
hidden: false,
|
||||||
|
isFood: true,
|
||||||
|
|
||||||
|
tempHigh: foodTempHigh,
|
||||||
|
burn: 30,
|
||||||
|
burnTime: 200,
|
||||||
|
burnInto: ["smoke", "smoke", "smoke", "ash"],
|
||||||
|
breakInto: "crumb",
|
||||||
|
breakIntoColor: "#d49d66",
|
||||||
|
density: smallDensity,
|
||||||
|
};
|
||||||
|
elements.sprinkles = {
|
||||||
|
color: ["#eb726a", "#ebca6a", "#88eb6a", "#6aaceb", "#eb6ade"],
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
category: mainCat,
|
||||||
|
state: "solid",
|
||||||
|
hidden: false,
|
||||||
|
isFood: true,
|
||||||
|
|
||||||
|
tempHigh: foodTempHigh,
|
||||||
|
stateHigh: "caramel",
|
||||||
|
density: smallDensity,
|
||||||
|
};
|
||||||
|
elements.chocolate_chips = {
|
||||||
|
color: "#382a20",
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
category: mainCat,
|
||||||
|
state: "solid",
|
||||||
|
hidden: true,
|
||||||
|
isFood: true,
|
||||||
|
|
||||||
|
tempHigh: 31,
|
||||||
|
stateHigh: "melted_chocolate",
|
||||||
|
density: 1325,
|
||||||
|
};
|
||||||
|
elements.oreo = {
|
||||||
|
color: "#302c2b",
|
||||||
|
behavior: behaviors.STURDYPOWDER,
|
||||||
|
category: mainCat,
|
||||||
|
state: "solid",
|
||||||
|
hidden: false,
|
||||||
|
isFood: true,
|
||||||
|
|
||||||
|
tempHigh: foodTempHigh,
|
||||||
|
stateHigh: "caramel",
|
||||||
|
breakInto: "oreo_crumb",
|
||||||
|
density: smallDensity,
|
||||||
|
};
|
||||||
|
elements.oreo_crumb = {
|
||||||
|
color: "#302c2b",
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
category: mainCat,
|
||||||
|
state: "solid",
|
||||||
|
hidden: true,
|
||||||
|
isFood: true,
|
||||||
|
|
||||||
|
tempHigh: foodTempHigh,
|
||||||
|
stateHigh: "caramel",
|
||||||
|
density: smallDensity,
|
||||||
|
};
|
||||||
|
elements.mnms = {
|
||||||
|
name: "M&Ms",
|
||||||
|
color: ["#f71f14", "#f2d622", "#2279f2", "#45f222", "#5e3f32"],
|
||||||
|
behavior: behaviors.POWDER,
|
||||||
|
category: mainCat,
|
||||||
|
state: "solid",
|
||||||
|
hidden: false,
|
||||||
|
isFood: true,
|
||||||
|
|
||||||
|
tempHigh: 31,
|
||||||
|
stateHigh: "melted_chocolate",
|
||||||
|
density: 1325,
|
||||||
|
};
|
||||||
|
elements.cherry = {
|
||||||
|
name: "Cherries",
|
||||||
|
color: "#ab261d",
|
||||||
|
behavior: behaviors.WALL,
|
||||||
|
category: mainCat,
|
||||||
|
state: "solid",
|
||||||
|
hidden: false,
|
||||||
|
isFood: true,
|
||||||
|
|
||||||
|
tempHigh: 256,
|
||||||
|
stateHigh: ["steam", "sugar"],
|
||||||
|
density: 1154,
|
||||||
|
breakInto: "jelly",
|
||||||
|
breakIntoColor: ["#8c142a", "#800a20"],
|
||||||
|
};
|
||||||
|
|
@ -0,0 +1,99 @@
|
||||||
|
elements.tsar_bomba = {
|
||||||
|
color: "#524C41",
|
||||||
|
behavior: [
|
||||||
|
"XX|EX:150>plasma|XX",
|
||||||
|
"XX|XX|XX",
|
||||||
|
"M2|M1 AND EX:150>plasma|M2",
|
||||||
|
],
|
||||||
|
category: "weapons",
|
||||||
|
state: "solid",
|
||||||
|
density: 1300,
|
||||||
|
excludeRandom: true,
|
||||||
|
cooldown: defaultCooldown
|
||||||
|
},
|
||||||
|
elements.little_boy = {
|
||||||
|
color: "#F5F5DC",
|
||||||
|
behavior: [
|
||||||
|
"XX|EX:20>plasma|XX",
|
||||||
|
"XX|XX|XX",
|
||||||
|
"M2|M1 AND EX:70>plasma,plasma,plasma,plasma,radiation,fallout|M2",
|
||||||
|
],
|
||||||
|
category: "weapons",
|
||||||
|
state: "solid",
|
||||||
|
density: 500,
|
||||||
|
excludeRandom: true,
|
||||||
|
cooldown: defaultCooldown
|
||||||
|
},
|
||||||
|
elements.fat_man = {
|
||||||
|
color: ["#ffff00","#333333"],
|
||||||
|
behavior: [
|
||||||
|
"XX|EX:28>plasma|XX",
|
||||||
|
"XX|XX|XX",
|
||||||
|
"M2|M1 AND EX:98>plasma,plasma,plasma,plasma,radiation,fallout|M2",
|
||||||
|
],
|
||||||
|
category: "weapons",
|
||||||
|
state: "solid",
|
||||||
|
density: 1000,
|
||||||
|
excludeRandom: true,
|
||||||
|
cooldown: defaultCooldown
|
||||||
|
},
|
||||||
|
elements.self_propelled_bomb = {
|
||||||
|
color: "#71797E",
|
||||||
|
tick: function(pixel) {
|
||||||
|
if ((pixel.temp > 1000 || pixel.charge) && !pixel.burning) {
|
||||||
|
pixel.burning = true;
|
||||||
|
pixel.burnStart = pixelTicks;
|
||||||
|
}
|
||||||
|
if (pixel.burning) {
|
||||||
|
if (!tryMove(pixel, pixel.x, pixel.y-1)) {
|
||||||
|
// tryMove again to the top left or top right
|
||||||
|
tryMove(pixel, pixel.x+(Math.random() < 0.5 ? -1 : 1), pixel.y-1);
|
||||||
|
}
|
||||||
|
if (pixelTicks-pixel.burnStart > 50 && Math.random() < 0.1) {
|
||||||
|
explodeAt(pixel.x, pixel.y, 10, "bomb");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (!tryMove(pixel, pixel.x, pixel.y+1)) {
|
||||||
|
// tryMove again to the bottom left or bottom right
|
||||||
|
tryMove(pixel, pixel.x+(Math.random() < 0.5 ? -1 : 1), pixel.y+1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
doDefaults(pixel);
|
||||||
|
},
|
||||||
|
burn: 90,
|
||||||
|
burnTime: 100,
|
||||||
|
density: 2000,
|
||||||
|
conduct: 1,
|
||||||
|
state: "solid",
|
||||||
|
category: "weapons"
|
||||||
|
},
|
||||||
|
elements.left_missile = {
|
||||||
|
color: "#4c4e42",
|
||||||
|
behavior: [
|
||||||
|
"M2|EX:10|XX",
|
||||||
|
"M1 AND EX:10|XX|EX:10",
|
||||||
|
"M2|EX:10|XX",
|
||||||
|
],
|
||||||
|
category:"weapons",
|
||||||
|
},
|
||||||
|
elements.right_missile = {
|
||||||
|
color: "#4c4e42",
|
||||||
|
behavior: [
|
||||||
|
"XX|EX:10|M2",
|
||||||
|
"EX:10|XX|M1 AND EX:10",
|
||||||
|
"XX|EX:10|M2",
|
||||||
|
],
|
||||||
|
category:"weapons",
|
||||||
|
},
|
||||||
|
elements.cluster_munition = {
|
||||||
|
color: "#444444",
|
||||||
|
behavior: [
|
||||||
|
"XX|EX:10>smoke,smoke,smoke,smoke,bomb,bomb|XX",
|
||||||
|
"XX|XX|XX",
|
||||||
|
"M2|M1 AND EX:10>smoke,smoke,smoke,smoke,bomb,cluster_munition|M2",
|
||||||
|
],
|
||||||
|
category: "weapons",
|
||||||
|
state: "solid",
|
||||||
|
density: 1300,
|
||||||
|
};
|
||||||
Loading…
Reference in New Issue