This commit is contained in:
slweeb 2022-02-14 10:30:12 -05:00
commit cbccd2b632
18 changed files with 938 additions and 48 deletions

View File

@ -1056,6 +1056,38 @@ temp: 2000,
viscosity: 10000,
density: 2.65
};
elements.liquid_cloner = {
color: "#ffff00",
category: "special",
state: "liquid",
behavior: [
"CF|CF|CF",
"CF AND M2|XX|CF AND M2",
"CF AND M1|CF AND M1|CF AND M1",
],
density: 975,
};
elements.fire_cloner = {
color: "#ff8000",
category: "special",
state: "gas",
behavior: [
"CF AND HT%1 AND M1|CF AND HT%1|CF AND HT%1 AND M1",
"CF AND HT%1|HT%1|CF AND HT%1",
"CF AND HT%1|CF AND HT%1|CF AND HT%1",
],
};
elements.antigravity_powder_cloner = {
color: "#808000",
category: "special",
state: "powder",
behavior: [
"CF AND M2|CF AND M1|CF AND M2",
"CF|XX|CF",
"CF|CF|CF",
],
density: 1050,
};
/* Unfinished:
magnesium
hematite mixture

54
mods/Shroomboxels.js Normal file
View File

@ -0,0 +1,54 @@
var incrementt = 0;
var interval = setInterval( increment, 500/30);
function increment(){
incrementt = incrementt % (Math.PI*8.8) + (Math.PI/30);
}
function drawPixels(forceTick=false) {
// newCurrentPixels = shuffled currentPixels
var newCurrentPixels = currentPixels.slice();
newCurrentPixels.sort(function() {return 0.5 - Math.random()});
for (var i = 0; i < newCurrentPixels.length; i++) {
pixel = newCurrentPixels[i];
//if (pixelMap[pixel.x][pixel.y] == undefined || currentPixels.indexOf(pixel) == -1) {continue}
if (pixel.del) {continue}
if ((!paused) || forceTick) {
if (elements[pixel.element].tick) { // Run tick function if it exists
elements[pixel.element].tick(pixel);
}
if (elements[pixel.element].behavior) { // Parse behavior if it exists
pixelTick(pixel);
}
};
}
// Draw the current pixels
var canvas = document.getElementById("game");
var ctx = canvas.getContext("2d");
for (var i = 0; i < newCurrentPixels.length; i++) {
pixel = newCurrentPixels[i];
if (pixelMap[pixel.x][pixel.y] == undefined) {continue}
if (view===null) {
ctx.fillStyle = pixel.color;
}
else if (view === "thermal") {
// set the color to pixel.temp, from hottest at 0 hue to coldest 225 hue, with the minimum being -273, max being 6000
var temp = pixel.temp;
if (temp < -273) {temp = -273}
if (temp > 6000) {temp = 6000}
var hue = 225 - (temp/6000)*225;
if (hue < 0) {hue = 0}
if (hue > 225) {hue = 225}
ctx.fillStyle = "hsl("+hue+",100%,50%)";
}
ctx.fillRect(pixel.x*pixelSize+(19.8*Math.tan((pixel.y+incrementt )/4.4)), pixel.y*pixelSize+(21.6*Math.tan((pixel.x+incrementt)/4.4)), pixelSize, pixelSize);
if (pixel.charge) { // Yellow glow on charge
if (!elements[pixel.element].colorOn) {
ctx.fillStyle = "rgba(255,255,0,0.5)";
ctx.fillRect(pixel.x*pixelSize+(18*Math.sec((pixel.y+incrementt)/4.4)), pixel.y*pixelSize+(9*Math.sec((pixel.x+incrementt)/4.4)), pixelSize, pixelSize);
}
}
}
if ((!paused) || forceTick) {pixelTicks++};
}

View File

@ -1,31 +1,54 @@
runAfterLoad(function() {
drawPixels = function(forceTick=false) {
// newCurrentPixels = shuffled currentPixels
var newCurrentPixels = currentPixels.slice();
newCurrentPixels.sort(function() {return 0.5 - Math.random()});
var incrementt = 0;
var interval = setInterval( increment, 500/30);
function increment(){
incrementt = incrementt % (Math.PI*8.8) + (Math.PI/30);
}
function drawPixels(forceTick=false) {
// newCurrentPixels = shuffled currentPixels
var newCurrentPixels = currentPixels.slice();
newCurrentPixels.sort(function() {return 0.5 - Math.random()});
for (var i = 0; i < newCurrentPixels.length; i++) {
pixel = newCurrentPixels[i];
//if (pixelMap[pixel.x][pixel.y] == undefined || currentPixels.indexOf(pixel) == -1) {continue}
if (pixel.del) {continue}
if ((!paused) || forceTick) {
if (elements[pixel.element].tick) { // Run tick function if it exists
elements[pixel.element].tick(pixel);
}
if (elements[pixel.element].behavior) { // Parse behavior if it exists
pixelTick(pixel);
}
};
}
// Draw the current pixels
var canvas = document.getElementById("game");
var ctx = canvas.getContext("2d");
for (var i = 0; i < newCurrentPixels.length; i++) {
pixel = newCurrentPixels[i];
//if (pixelMap[pixel.x][pixel.y] == undefined || currentPixels.indexOf(pixel) == -1) {continue}
if (pixel.del) {continue}
if ((!paused) || forceTick) {pixelTick(pixel);};
}
// Draw the current pixels
if (!hiding) {
var canvas = document.getElementById("game");
var ctx = canvas.getContext("2d");
for (var i = 0; i < newCurrentPixels.length; i++) {
pixel = newCurrentPixels[i];
if (pixelMap[pixel.x][pixel.y] == undefined) {continue}
if (pixelMap[pixel.x][pixel.y] == undefined) {continue}
if (view===null) {
ctx.fillStyle = pixel.color;
ctx.fillRect(pixel.x*pixelSize+(18*Math.sin((pixel.y)/4.4)), pixel.y*pixelSize+(18*Math.sin((pixel.x)/4.4)), pixelSize, pixelSize);
if (pixel.charge) { // Yellow glow on charge
if (!elements[pixel.element].colorOn) {
ctx.fillStyle = "rgba(255,255,0,0.5)";
ctx.fillRect(pixel.x*pixelSize+(18*Math.sin((pixel.y)/4.4)), pixel.y*pixelSize+(18*Math.sin((pixel.x)/4.4)), pixelSize, pixelSize);
}
}
else if (view === "thermal") {
// set the color to pixel.temp, from hottest at 0 hue to coldest 225 hue, with the minimum being -273, max being 6000
var temp = pixel.temp;
if (temp < -273) {temp = -273}
if (temp > 6000) {temp = 6000}
var hue = 225 - (temp/6000)*225;
if (hue < 0) {hue = 0}
if (hue > 225) {hue = 225}
ctx.fillStyle = "hsl("+hue+",100%,50%)";
}
ctx.fillRect(pixel.x*pixelSize+(18*Math.sin((pixel.y+incrementt )/4.4)), pixel.y*pixelSize+(18*Math.sin((pixel.x+incrementt)/4.4)), pixelSize, pixelSize);
if (pixel.charge) { // Yellow glow on charge
if (!elements[pixel.element].colorOn) {
ctx.fillStyle = "rgba(255,255,0,0.5)";
ctx.fillRect(pixel.x*pixelSize+(18*Math.sin((pixel.y+incrementt)/4.4)), pixel.y*pixelSize+(18*Math.sin((pixel.x+incrementt)/4.4)), pixelSize, pixelSize);
}
}
}
if ((!paused) || forceTick) {pixelTicks++};
}
});
if ((!paused) || forceTick) {pixelTicks++};
}

22
mods/clone_liquid.js Normal file
View File

@ -0,0 +1,22 @@
elements.clone_liquid = {
color: "#f0f000",
behavior: [
"XX|CF|XX",
"CF AND M2|XX|CF AND M2",
"M1|CF AND M1|M1",
],
ignore: ["cloner","ecloner","slow_cloner","floating_cloner","clone_powder","clone_liquid_spout"],
category:"machines",
insulate:true,
state:"gas",
density:2710,
hardness: 1,
},
elements.floating_cloner.state = "gas"
runAfterLoad(function() {
if(enabledMods.includes("mods/spouts.js")) {
elements.floating_cloner.ignore.push("floating_cloner_spout")
}
});

41
mods/evenmoretemptools.js Normal file
View File

@ -0,0 +1,41 @@
//base syntax by sightnado
elements.warm = {
color: "#7fff7f",
tool: function(pixel) {
pixel.temp = 20;
pixelTempCheck(pixel)
},
category: "tools",
};
elements.ultraheat = {
color: ["#ff0000", "#ffbf4f", "#ff0000", "#ffbf4f", "#ff0000", "#ffbf4f"],
tool: function(pixel) {
if(shiftDown) { pixel.temp += (350 * (1 + shiftDown)) } else { pixel.temp += 350 }
pixelTempCheck(pixel)
},
category: "tools",
};
elements.ultracool = {
color: ["#0000ff", "#4fbfff", "#0000ff", "#4fbfff", "#0000ff", "#4fbfff"],
tool: function(pixel) {
if(shiftDown) { pixel.temp -= (350 * (1 + shiftDown)) } else { pixel.temp -= 350 }
pixelTempCheck(pixel)
},
category: "tools",
};
elements.na_ntemp = {
color: ["#000000", "#ff00ff", "#000000", "#ff00ff"],
tool: function(pixel) {
pixel.temp = NaN;
pixelTempCheck(pixel)
},
category: "tools",
};
elements.inftemp = {
color: ["#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff", "#ff0000", "#ffffff"],
tool: function(pixel) {
pixel.temp = Infinity;
pixelTempCheck(pixel)
},
category: "tools",
};

View File

@ -1,7 +1,16 @@
// Extra Element Info, v1.0
// Extra Element Info, v1.1
// Author: MelecieDiancie
// To show extra info on the info screen, add the extraInfo variable onto an object. It's a string.
/*
=== CHANGELOG ===
1.1 Version
- Removed code for extra element info, due to its addition to vanilla. It still exists as a comment if you want to check it out.
1.0 Version
+ Initial release
*/
/*
showInfo = (function() {
var cached_function = showInfo;
@ -15,6 +24,8 @@ showInfo = (function() {
};
})();
*/
// Everything down below is adding info to vanilla elements
elements.random.extraInfo = "Produces random pixels.";
@ -22,6 +33,11 @@ elements.pick.extraInfo = "Picks a selected pixel. Works with hidden elements as
elements.mix.extraInfo = "Mixes pixels in the selection box.";
elements.lookup.extraInfo = "Brings up the info screen of a selected pixel.";
elements.shock.extraInfo = "Produces electricity on all pixels in the selection box that can conduct it.";
elements.uncharge.extraInfo = "Removes electricity on all pixels in the selection box with electricity.";
elements.smash.extraInfo = "Crushes all elements in the selection box as if they were destroyed by an explosion.";
elements.cook.extraInfo = "Slowly heats up elements.";
elements.heat.extraInfo = "Heats up elements.";
elements.cool.extraInfo = "Cools down elements.";
elements.bamboo_plant.extraInfo = "Plants a bamboo plant of variable height.";
elements.sapling.extraInfo = "Plants a tree of variable height and structure.";
@ -52,7 +68,11 @@ elements.antimolten.extraInfo = "Moves in reverse.";
elements.antifire.extraInfo = "Moves in reverse.";
elements.antigas.extraInfo = "Moves in reverse.";
elements.static.extraInfo = "Flickers in grayscale.";
elements.rainbow.extraInfo = "Flickers the rainbow's colors.";
elements.gray_goo.extraInfo = "Duplicates itself when touching other pixels.";
elements.virus.extraInfo = "Duplicates itself when touching other pixels.";
elements.snake.extraInfo = "Goes around in a snake-like pattern.";
elements.shocker.extraInfo = "Produces sparks when powered.";
elements.pressure_plate.extraInfo = "Produces electricity when something is above it.";
elements.light_bulb.extraInfo = "Produces light when powered.";
elements.tesla_coil.extraInfo = "Produces plasma when powered.";
elements.border.extraInfo = "Produces a border effect.";

View File

@ -32,6 +32,7 @@ elements.cum = {
category:"cum",
conduct:0,
extraInfo: "A whitish, sticky liquid that contains sperm. <span style=\"font-size: 0;\">It isn't funny.</span>",
stain: 0.11,
},
elements.dead_cum = {
name: "dead cum",
@ -62,6 +63,7 @@ elements.dead_cum = {
conduct: 0.04,
hidden:true,
extraInfo: "Semen whose sperm have died.",
stain: 0.11,
},
elements.cum_water = {
name: "cum water",
@ -96,6 +98,7 @@ elements.cum_water = {
state: "liquid",
hidden: true,
extraInfo: "Dilute semen.",
stain: 0.04,
},
elements.dead_cum_water = {
name: "dead cum water",
@ -119,6 +122,7 @@ elements.dead_cum_water = {
conduct: 0.03,
hidden:true,
extraInfo: "Dilute semen whose sperm have died.",
stain: 0.04,
},
elements.burnt_cum = {
name: "burnt cum",
@ -428,6 +432,7 @@ elements.precum = {
category:"cum",
state: "liquid",
extraInfo: "A sticky fluid that neutralizes acid.",
stain: 0.03,
},
elements.precum_ice = {
name: "frozen pre-cum",

View File

@ -24,6 +24,7 @@ elements.piss = {
state: "liquid",
conduct:elements.water.conduct+0.1,
extraInfo: "A liquid excreted as waste by many animals.",
stain: 0.07,
},
elements.piss_water = {
@ -50,6 +51,7 @@ elements.piss_water = {
category: "piss",
conduct: elements.water.conduct+0.05,
hidden: true,
stain: 0.05,
},
elements.piss_ice = {

View File

@ -23,6 +23,7 @@ elements.vomit = {
stateLow: "frozen_vomit",
state: "liquid",
density: 1049,
stain: 0.32,
},
elements.acid_gas.ignore.push("water")

View File

@ -15,24 +15,9 @@ elements.shit = {
category: "shit",
state: "solid",
density: 1060,
stain: 0.34,
},
elements.altnull = {
color: settings.bg,
behavior: behaviors.SELFDELETE,
reactions: {
"altnull": { "elem1": null, "elem2": null }
},
tick: function(pixel) {
deletePixel(pixel.x,pixel.y)
},
burn: 10000,
burnTime: 1,
hidden: true,
category: "special",
},
elements.dried_shit = {
color: ["#b58738","#8c7245","#ad915f","#b5a174","#705e34","#bdad88"],
behavior: [
@ -48,9 +33,9 @@ elements.dried_shit = {
density: 265,
burn: 120,
burnTime: 300,
burnInto: ["ash","altnull","altnull"],
burnInto: ["ash",null,null],
tempHigh: 300, //bs
stateHigh: ["ash","altnull","altnull"],
stateHigh: ["ash",null,null],
},
elements.diarrhea = {
@ -71,6 +56,7 @@ elements.diarrhea = {
state: "liquid",
density: 1030, //bs
viscosity: 3,
stain: 0.51,
},
elements.frozen_shit = {

382
mods/grav_mudstones.js Normal file
View File

@ -0,0 +1,382 @@
elements.anti_mudstone = {
color: "#4a341e",
behavior: [
"XX|M1|XX",
"SP|XX|SP",
"XX|XX|XX",
],
tempHigh:1200,
stateHigh: "molten_dirt",
category: "center intersecting s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.vertical_mudstone_1 = {
name: "<|- mudstone",
color: "#4a341e",
behavior: [
"XX|SP|XX",
"M1|XX|XX",
"XX|SP|XX",
],
tempHigh:1200,
stateHigh: "molten_dirt",
category: "center intersecting s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.vertical_mudstone_2 = {
name: "|>- mudstone",
color: "#4a341e",
behavior: [
"XX|SP|XX",
"XX|XX|M1",
"XX|SP|XX",
],
tempHigh:1200,
stateHigh: "molten_dirt",
category: "center intersecting s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.tl_br_mudstone_1 = {
name: "L\\- mudstone",
color: "#4a341e",
behavior: [
"SP|XX|XX",
"XX|XX|XX",
"M1|XX|SP",
],
tempHigh:1200,
stateHigh: "molten_dirt",
category: "center intersecting s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.tl_br_mudstone_2 = {
name: "\\'- mudstone",
color: "#4a341e",
behavior: [
"SP|XX|M1",
"XX|XX|XX",
"XX|XX|SP",
],
tempHigh:1200,
stateHigh: "molten_dirt",
category: "center intersecting s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.tr_bl_mudstone_1 = {
name: "/J- mudstone",
color: "#4a341e",
behavior: [
"XX|XX|SP",
"XX|XX|XX",
"SP|XX|M1",
],
tempHigh: 1200,
stateHigh: "molten_dirt",
category: "center intersecting s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.tr_bl_mudstone_2 = {
name: "r/- mudstone",
color: "#4a341e",
behavior: [
"M1|XX|SP",
"XX|XX|XX",
"SP|XX|XX",
],
tempHigh: 1200,
stateHigh: "molten_dirt",
category: "center intersecting s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.tr_tl_mudstone = {
name: "V- mudstone",
color: "#4a341e",
behavior: [
"SP|XX|SP",
"XX|XX|XX",
"XX|M1|XX",
],
tempHigh: 1200,
stateHigh: "molten_dirt",
category: "non- center intersecting s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.br_bl_mudstone = {
name: "^- mudstone",
color: "#4a341e",
behavior: [
"XX|M1|XX",
"XX|XX|XX",
"SP|XX|SP",
],
tempHigh: 1200,
stateHigh: "molten_dirt",
category: "non- center intersecting s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.tl_bl_mudstone = {
name: ">- mudstone",
color: "#4a341e",
behavior: [
"SP|XX|XX",
"XX|XX|M1",
"SP|XX|XX",
],
tempHigh: 1200,
stateHigh: "molten_dirt",
category: "non- center intersecting s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.tr_br_mudstone = {
name: "<- mudstone",
color: "#4a341e",
behavior: [
"XX|XX|SP",
"M1|XX|XX",
"XX|XX|SP",
],
tempHigh: 1200,
stateHigh: "molten_dirt",
category: "non- center intersecting s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.tm_mr_mudstone = {
name: "-,- mudstone",
color: "#4a341e",
behavior: [
"XX|SP|XX",
"XX|XX|SP",
"M1|XX|XX",
],
tempHigh: 1200,
stateHigh: "molten_dirt",
category: "non- center intersecting s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.ml_tm_mudstone = {
name: "r- mudstone",
color: "#4a341e",
behavior: [
"XX|SP|XX",
"SP|XX|XX",
"XX|XX|M1",
],
tempHigh: 1200,
stateHigh: "molten_dirt",
category: "non- center intersecting s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.ml_bm_mudstone = {
name: "L- mudstone",
color: "#4a341e",
behavior: [
"XX|XX|M1",
"SP|XX|XX",
"XX|SP|XX",
],
tempHigh: 1200,
stateHigh: "molten_dirt",
category: "non- center intersecting s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.bm_mr_mudstone = {
name: "J- mudstone",
color: "#4a341e",
behavior: [
"M1|XX|XX",
"XX|XX|SP",
"XX|SP|XX",
],
tempHigh: 1200,
stateHigh: "molten_dirt",
category: "non- center intersecting s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.tl_bl_tr_br_mudstone_1 = {
name: "Xv- mudstone",
color: "#4a341e",
behavior: [
"SP|XX|SP",
"XX|XX|XX",
"SP|M1|SP",
],
tempHigh: 1200,
stateHigh: "molten_dirt",
category: "cross s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.tl_bl_tr_br_mudstone_2 = {
name: "X^- mudstone",
color: "#4a341e",
behavior: [
"SP|M1|SP",
"XX|XX|XX",
"SP|XX|SP",
],
tempHigh: 1200,
stateHigh: "molten_dirt",
category: "cross s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.tl_bl_tr_br_mudstone_3 = {
name: "X<- mudstone",
color: "#4a341e",
behavior: [
"SP|XX|SP",
"M1|XX|XX",
"SP|XX|SP",
],
tempHigh: 1200,
stateHigh: "molten_dirt",
category: "cross s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.tl_bl_tr_br_mudstone_4 = {
name: "X>- mudstone",
color: "#4a341e",
behavior: [
"SP|XX|SP",
"XX|XX|M1",
"SP|XX|SP",
],
tempHigh: 1200,
stateHigh: "molten_dirt",
category: "cross s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.ml_tm_bm_mr_mudstone_1 = {
name: "+ L- mudstone",
color: "#4a341e",
behavior: [
"XX|SP|XX",
"SS|XX|SP",
"M1|SP|XX",
],
tempHigh: 1200,
stateHigh: "molten_dirt",
category: "cross s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.ml_tm_bm_mr_mudstone_2 = {
name: "+ -,- mudstone",
color: "#4a341e",
behavior: [
"XX|SP|M1",
"SS|XX|SP",
"XX|SP|XX",
],
tempHigh: 1200,
stateHigh: "molten_dirt",
category: "cross s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.ml_tm_bm_mr_mudstone_3 = {
name: "+r- mudstone",
color: "#4a341e",
behavior: [
"M1|SP|XX",
"SS|XX|SP",
"XX|SP|XX",
],
tempHigh: 1200,
stateHigh: "molten_dirt",
category: "cross s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.ml_tm_bm_mr_mudstone_4 = {
name: "+J- mudstone",
color: "#4a341e",
behavior: [
"XX|SP|XX",
"SS|XX|SP",
"XX|SP|M1",
],
tempHigh: 1200,
stateHigh: "molten_dirt",
category: "cross s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
},
elements.tl_rm_mudstone_1 = {
name: "`-v- mudstone",
color: "#4a341e",
behavior: [
"SP|XX|XX",
"XX|XX|SP",
"XX|M1|XX",
],
tempHigh: 1200,
stateHigh: "molten_dirt",
category: "other s p- line mudstones",
state: "solid",
density: 1250,
breakInto: "dirt",
}

128
mods/moreliquids.js Normal file
View File

@ -0,0 +1,128 @@
elements.soup = {
color: "#AC4A2E",
behavior: behaviors.LIQUID,
category: "food",
viscosity: 74000,
state: "liquid",
density: 720
};
elements.wet_soup = {
color: "#C15C3F",
behavior: behaviors.LIQUID,
category: "food",
viscosity: 6400,
state: "liquid",
density: 320
};
elements.guacamole = {
color: "#67A555",
behavior: behaviors.LIQUID,
category: "food",
viscosity: 4640,
state: "liquid",
density: 993
};
elements.cream = {
color: ["#E1D3A2","#E5DBB7"],
behavior: behaviors.LIQUID,
category: "food",
stateHigh: "gas",
viscosity: 4640,
state: "liquid",
density: 993
};
elements.poop = {
color: "#8A4D24",
behavior: [
"XX|CR:plague%0.1 AND CR:fly%0.01 AND CR:methane%0.0316|XX",
"XX|CH:dried_poop%0.02|XX",
"M2%50|M1 AND SW:water%50|M2%50",
],
category: "life",
viscosity: 1,
reactions: {},
state: "liquid",
density: 43
};
elements.dried_poop = {
color: "#442714",
behavior: behaviors.POWDER,
category: "powders",
viscosity: 1,
state: "solid",
density: 43
};
elements.tar = {
color: "#101217",
behavior: behaviors.LIQUID,
category: "liquids",
viscosity: 45000,
state: "liquid",
burn: 10,
reactions: {},
burnTime: 200,
fireColor: "#101217",
density: 1
};
elements.cinder = {
color: "#171210",
behavior: behaviors.LIQUID,
category: "liquids",
viscosity: 70,
state: "liquid",
burn: 5,
burnTime: 70,
fireColor: "#FF4F00",
density: 343
};
elements.paste = {
color: "#C4AA98",
behavior: behaviors.WALL,
category: "solids",
stateHigh: ["liquid_paste"],
state: "solid",
density: 230
};
elements.husk = {
color: ["#C4AA98", "#9E836B", "#A5876D", "#AE7D64", "#C87B67"],
behavior: behaviors.WALL,
category: "solids",
reactions: {},
state: "solid"
};
elements.remnant = {
color: "#3C382B",
behavior: behaviors.POWDER,
category: "land",
state: "solid",
density: 1730
};
elements.rot = {
color: ["#101217", "#853A2A"],
behavior: [
"XX|CR:fly%0.054|XX",
"XX|XX|XX",
"XX|CR:rot%0.054|XX",
],
category: "liquids",
viscosity: 1,
state: "liquid",
reactions: {},
density: 2
};
elements.liquid_paste = {
color: "#D8D4C1",
behavior: behaviors.LIQUID,
category: "liquids",
viscosity: 150430,
state: "liquid",
density: 230
};
elements.water.reactions.soup = { "elem1":"wet_soup", "elem2":"salt_water" };
elements.tar.reactions.magma = { "elem1":"smoke", "elem2":"cinder" };
elements.poop.reactions.water = { "elem1":"dried_poop", "elem2":"fly" };
elements.tar.reactions.husk = { "elem1":"rot", "elem2":"fly" };
elements.husk.reactions.molasses = { "elem1":"smoke", "elem2":"remnant" };
elements.rot.reactions.fire = { "elem1":"smoke", "elem2":"cinder" };
elements.water.reactions.rot = { "elem1":"blood", "elem2":"slag" };

63
mods/move_tools.js Normal file
View File

@ -0,0 +1,63 @@
elements.move_up = {
color: "#1C0000",
tool: function(pixel) {
tryMove(pixel,pixel.x,pixel.y-1);
},
category: "tools",
},
elements.move_down = {
color: "#000038",
tool: function(pixel) {
tryMove(pixel,pixel.x,pixel.y+1);
},
category: "tools",
},
elements.move_left = {
color: "#007000",
tool: function(pixel) {
tryMove(pixel,pixel.x-1,pixel.y);
},
category: "tools",
},
elements.move_right = {
color: "#000E00",
tool: function(pixel) {
tryMove(pixel,pixel.x+1,pixel.y);
},
category: "tools",
},
elements.move_up_left = {
color: "#E00000",
tool: function(pixel) {
tryMove(pixel,pixel.x-1,pixel.y-1);
},
category: "tools",
},
elements.move_down_left = {
color: "#0001C0",
tool: function(pixel) {
tryMove(pixel,pixel.x-1,pixel.y+1);
},
category: "tools",
},
elements.move_up_right = {
color: "#038000",
tool: function(pixel) {
tryMove(pixel,pixel.x+1,pixel.y-1);
},
category: "tools",
},
elements.move_down_right = {
color: "#000007",
tool: function(pixel) {
tryMove(pixel,pixel.x+1,pixel.y+1);
},
category: "tools",
}

View File

@ -0,0 +1,90 @@
elements.igniter = {
color: elements.fire.color,
tool: function(pixel) {
pixel.burnStart = pixelTicks;
pixel.burning = true;
},
category: "tools",
excludeRandom: true,
};
elements.extinguisher = {
color: "#bad1e3",
tool: function(pixel) {
if(pixel.burnStart) { delete pixel.burnStart }
pixel.burning = false;
},
category: "tools",
excludeRandom: true,
};
elements.cursed_shock = {
color: ["#ffff00", "#00ff00", "#ffff00", "#00ff00", "#ffff00", "#00ff00", "#ffff00", "#00ff00"],
tool: function(pixel) {
var con = elements[pixel.element].conduct;
if (con == undefined) {con = 0}
if (Math.random() < con || con == 0) { // If random number is less than conductivity, or anyway
if (!pixel.charge && !pixel.chargeCD) {
pixel.charge = 1;
if (elements[pixel.element].colorOn) {
pixel.color = pixelColorPick(pixel);
}
}
}
if(Math.random() > con) {
if (elements[pixel.element].insulate != true) { // Otherwise heat the pixel (Resistance simulation)
pixel.temp += 0.25;
pixelTempCheck(pixel);
}
}
},
category: "tools",
excludeRandom: true,
};
elements.extinguisher = {
color: "#bad1e3",
tool: function(pixel) {
if(pixel.burnStart) { delete pixel.burnStart }
pixel.burning = false;
},
category: "tools",
excludeRandom: true,
};
elements.anti_gravity = {
color: [elements.dirt.color[1],elements.dirt.color[1],elements.oxygen.color,elements.oxygen.color],
tool: function(pixel) {
pixel.r = 2;
},
category: "tools",
excludeRandom: true,
};
elements.normal_gravity = {
color: [elements.oxygen.color,elements.oxygen.color,elements.dirt.color[1],elements.dirt.color[1]],
tool: function(pixel) {
pixel.r = 0;
},
category: "tools",
excludeRandom: true,
};
elements.rg1 = {
color: [elements.dirt.color[14],elements.dirt.color[14],elements.liquid_oxygen.color,elements.liquid_oxygen.color],
tool: function(pixel) {
pixel.r = 1;
},
category: "tools",
excludeRandom: true,
};
elements.rg3 = {
color: [elements.liquid_oxygen.color,elements.liquid_oxygen.color,elements.dirt.color[14],elements.dirt.color[14]],
tool: function(pixel) {
pixel.r = 3;
},
category: "tools",
excludeRandom: true,
};

View File

@ -19,7 +19,7 @@ elements.signalum = {
category: "solids",
density: 10500,
conduct: 1,
tempHigh: 550,
tempHigh: 1550,
stateHigh: "molten_signalum",
state: "solid",
},
@ -213,3 +213,9 @@ elements.resonant_ender = {
state: "liquid",
viscosity: 3**4,
}
runAfterLoad(function() {
lifeArray = Object.keys(elements).filter(function(e) {
return elements[e].category == "life";
});
});

View File

@ -1,6 +1,6 @@
runAfterLoad(function() {
liquidArray = Object.keys(elements).filter(function(e) {
return elements[e].state == "liquid" || elements[e].state == "gas";
return (elements[e].state == "liquid" || elements[e].state == "gas") && elements[e] != "ketchup";
});
for(i = 0; i < liquidArray.length; i++) {
elements[`${liquidArray[i]}_spout`] = {
@ -14,4 +14,5 @@ runAfterLoad(function() {
temp: elements[liquidArray[i]].temp,
};
};
liquidArray.push("ketchup")
});

7
mods/time.js Normal file
View File

@ -0,0 +1,7 @@
elements.time = {
color: "#006e05",
behavior: behaviors.GAS,
category: "gases",
state: "gas",
density: 10,
};

View File

@ -75,4 +75,31 @@ elements.troll4 = {
hardness: 1.0,
state: "solid",
excludeRandom: true,
},
elements.offset_fourth_y = {
color: ["#000000", "#ff00ff", "#000000", "#ff00ff", "#000000", "#ff00ff", "#000000", "#ff00ff"],
tool: function(pixel) {
tryMove(pixel,pixel.x,pixel.y+0.25);
pixelTempCheck(pixel)
},
category: "tools",
},
elements.offset_half_y = {
color: ["#000000", "#ff00ff", "#000000", "#ff00ff", "#000000", "#ff00ff", "#000000", "#ff00ff"],
tool: function(pixel) {
tryMove(pixel,pixel.x,pixel.y+0.5);
pixelTempCheck(pixel)
},
category: "tools",
},
elements.offset_three_fourth_y = {
color: ["#000000", "#ff00ff", "#000000", "#ff00ff", "#000000", "#ff00ff", "#000000", "#ff00ff"],
tool: function(pixel) {
tryMove(pixel,pixel.x,pixel.y+0.75);
pixelTempCheck(pixel)
},
category: "tools",
}