Merge branch 'R74nCom:main' into main

This commit is contained in:
HACKERPRO908 2024-01-27 08:45:40 +00:00 committed by GitHub
commit db5b4ab5ef
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 4343 additions and 112 deletions

View File

@ -181,6 +181,7 @@
<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>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>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>
@ -197,6 +198,7 @@
<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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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 Alices mods, and some other things</td><td>Alice</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>betterMenuScreens.js</td><td>Library for mods to create their own menus</td><td>ggod</td></tr>

114
mods/FoodFoodFood.js Normal file
View File

@ -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

452
mods/logicgates.js Normal file
View File

@ -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,
}

View File

@ -1527,6 +1527,8 @@ elements.invisiblewall = {
}
},
category: "solids",
movable: false,
noMix: true,
},
elements.bismuth = {
color: ["#818181","#989898","#b0b0b0","#c9c9c9"],
@ -2013,7 +2015,7 @@ elements.element_filler = {
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));
if (!answer6) { return }
elemfillerVar = answer6;
elemfillerVar = mostSimilarElement(answer6);
},
tick: function(pixel){
var neighbors = 0;

1439
mods/sbmixup.js Normal file

File diff suppressed because it is too large Load Diff

View File

@ -66,7 +66,7 @@ elements.maple_syrup = {
tempHigh: 500,
stateHigh: "steam",
color: "#9c6000",
behavior: behaviors.LIQUID,
behavior: behaviors.CRAWLER,
category: "liquids",
state: "liquid",
};
@ -362,6 +362,15 @@ elements.coca_cola = {
state: "liquid",
};
elements.pepsi = {
tempHigh: 500,
stateHigh: "steam",
color: "#2b1717",
behavior: behaviors.LIQUID,
category: "liquids",
state: "liquid",
};
elements.piss = {
tempHigh: 500,
stateHigh: "steam",
@ -1409,7 +1418,7 @@ elements.silver_coin = {
state: "solid",
};
elements.max_graphics_in_roblox = {
elements.uraniumaniumaniumaniumanium_popcornicecream_plutoniumeptunium_238239 = {
color: "#238fe8",
behavior: [
"XX|XX|XX",
@ -1425,7 +1434,199 @@ elements.max_graphics_in_roblox = {
excludeRandom: true,
maxSize: 1,
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",
@ -1463,13 +1664,17 @@ if (!elements.water.reactions) elements.water.reactions = {};
elements.water.reactions.cocaine = { elem1: "solid_water", elem2: null }
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 = {};
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 = {};
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"

218
mods/weAllScreamFor.js Normal file
View File

@ -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"],
};

99
mods/weapons.js Normal file
View File

@ -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,
};