add shale

This commit is contained in:
Laetitia (O-01-67) 2023-02-27 15:17:00 -05:00 committed by GitHub
parent 9bb732a0f6
commit 92cd5f50ab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 231 additions and 61 deletions

View File

@ -570,9 +570,9 @@ if(!enabledMods.includes(libraryMod)) {
var sands = ["sand"]; var sands = ["sand"];
var wetSands = ["wet_sand"]; var wetSands = ["wet_sand"];
var sandSolutions = []; var sandSuspensions = [];
var sandSediments = ["radioactive_sand_sediment"]; var sandSediments = ["radioactive_sand_sediment","clay_sediment"];
var sandstones = ["radioactive_sandstone"]; var sandstones = ["radioactive_sandstone","shale"];
var vaporizedMagmas = []; var vaporizedMagmas = [];
var magmaClouds = []; var magmaClouds = [];
@ -636,7 +636,7 @@ if(!enabledMods.includes(libraryMod)) {
density: phaneriteDensity, density: phaneriteDensity,
hardness: 0.75, hardness: 0.75,
breakInto: phaneriteName + "_gravel", breakInto: phaneriteName + "_gravel",
_data: [compositionFamilyName,"phanerite","rock"], _data: [compositionFamilyName,"phanerite","igneous_rock"],
}; };
elements.water.reactions[phaneriteName] = { "elem2": phaneriteName + "_gravel", "chance": 0.00035 } elements.water.reactions[phaneriteName] = { "elem2": phaneriteName + "_gravel", "chance": 0.00035 }
@ -649,7 +649,7 @@ if(!enabledMods.includes(libraryMod)) {
tempHigh: phaneriteMeltingPoint, tempHigh: phaneriteMeltingPoint,
stateHigh: magmaName, stateHigh: magmaName,
density: phaneriteDensity * 0.55, density: phaneriteDensity * 0.55,
_data: [compositionFamilyName,"phanerite","sand"], _data: [compositionFamilyName,"phanerite","particulate"],
}; };
elements.water.reactions[phaneriteName + "_gravel"] = { "elem2": twoPartRepeatedArray(phaneriteSandName,sandFormationReactionSpecificSandCount,"sand",sandFormationReactionRegularSandCount), "chance": 0.0005 }; elements.water.reactions[phaneriteName + "_gravel"] = { "elem2": twoPartRepeatedArray(phaneriteSandName,sandFormationReactionSpecificSandCount,"sand",sandFormationReactionRegularSandCount), "chance": 0.0005 };
@ -664,7 +664,7 @@ if(!enabledMods.includes(libraryMod)) {
density: aphaniteDensity, density: aphaniteDensity,
hardness: 0.75, hardness: 0.75,
breakInto: aphaniteName + "_gravel", breakInto: aphaniteName + "_gravel",
_data: [compositionFamilyName,"aphanite","rock"], _data: [compositionFamilyName,"aphanite","igneous_rock"],
}; };
} else { } else {
phaneriteName = "rock"; phaneriteName = "rock";
@ -682,7 +682,7 @@ if(!enabledMods.includes(libraryMod)) {
tempHigh: phaneriteMeltingPoint, tempHigh: phaneriteMeltingPoint,
stateHigh: vitriteName, stateHigh: vitriteName,
density: phaneriteDensity * 0.595, density: phaneriteDensity * 0.595,
_data: [compositionFamilyName,"phanerite","sand"], _data: [compositionFamilyName,"phanerite","particulate"],
}; };
//console.log(phaneriteSandName, elements[phaneriteSandName].color); //console.log(phaneriteSandName, elements[phaneriteSandName].color);
@ -700,7 +700,7 @@ if(!enabledMods.includes(libraryMod)) {
tempLow: -50, tempLow: -50,
stateLow:"packed_" + phaneriteSandName, stateLow:"packed_" + phaneriteSandName,
density: phaneriteDensity * 0.595 + 150, density: phaneriteDensity * 0.595 + 150,
_data: [compositionFamilyName,"phanerite","wet_sand"], _data: [compositionFamilyName,"phanerite","wet_particulate"],
}; };
elements["packed_" + phaneriteSandName] = { elements["packed_" + phaneriteSandName] = {
@ -712,7 +712,7 @@ if(!enabledMods.includes(libraryMod)) {
stateHigh: vitriteName, stateHigh: vitriteName,
density: phaneriteDensity * 0.59, density: phaneriteDensity * 0.59,
breakInto: phaneriteSandName, breakInto: phaneriteSandName,
_data: [compositionFamilyName,"phanerite","packed_sand"], _data: [compositionFamilyName,"phanerite","packed_particulate"],
}; };
elements.water.reactions[phaneriteSandName] = { elements.water.reactions[phaneriteSandName] = {
@ -740,7 +740,7 @@ if(!enabledMods.includes(libraryMod)) {
tempHigh: aphaniteMeltingPoint, tempHigh: aphaniteMeltingPoint,
stateHigh: vitriteName, stateHigh: vitriteName,
density: aphaniteDensity * 0.595, density: aphaniteDensity * 0.595,
_data: [compositionFamilyName,"aphanite","sand"], _data: [compositionFamilyName,"aphanite","particulate"],
}; };
elements["wet_" + aphaniteSandName] = { elements["wet_" + aphaniteSandName] = {
@ -756,7 +756,7 @@ if(!enabledMods.includes(libraryMod)) {
tempLow: -50, tempLow: -50,
stateLow:"packed_" + aphaniteSandName, stateLow:"packed_" + aphaniteSandName,
density: aphaniteDensity * 0.595 + 150, density: aphaniteDensity * 0.595 + 150,
_data: [compositionFamilyName,"aphanite","wet_sand"], _data: [compositionFamilyName,"aphanite","wet_particulate"],
}; };
elements["packed_" + aphaniteSandName] = { elements["packed_" + aphaniteSandName] = {
@ -768,7 +768,7 @@ if(!enabledMods.includes(libraryMod)) {
stateHigh: vitriteName, stateHigh: vitriteName,
density: aphaniteDensity * 0.59, density: aphaniteDensity * 0.59,
breakInto: aphaniteSandName, breakInto: aphaniteSandName,
_data: [compositionFamilyName,"aphanite","packed_sand"], _data: [compositionFamilyName,"aphanite","packed_particulate"],
}; };
elements.water.reactions[aphaniteSandName] = { elements.water.reactions[aphaniteSandName] = {
@ -785,7 +785,7 @@ if(!enabledMods.includes(libraryMod)) {
density: vesiculiteDensity, density: vesiculiteDensity,
hardness: 0.75, hardness: 0.75,
breakInto: vesiculiteName + "_gravel", breakInto: vesiculiteName + "_gravel",
_data: [compositionFamilyName,"vesiculite","rock"], _data: [compositionFamilyName,"vesiculite","igneous_rock"],
}; };
elements.water.reactions[vesiculiteName] = { "elem2": vesiculiteName + "_gravel", "chance": 0.00035 } elements.water.reactions[vesiculiteName] = { "elem2": vesiculiteName + "_gravel", "chance": 0.00035 }
@ -811,7 +811,7 @@ if(!enabledMods.includes(libraryMod)) {
tempHigh: vesiculiteMeltingPoint, tempHigh: vesiculiteMeltingPoint,
stateHigh: vitriteName, stateHigh: vitriteName,
density: vesiculiteDensity * 1.9, density: vesiculiteDensity * 1.9,
_data: [compositionFamilyName,"vesiculite","sand"], _data: [compositionFamilyName,"vesiculite","particulate"],
}; };
elements["wet_" + vesiculiteSandName] = { elements["wet_" + vesiculiteSandName] = {
@ -827,7 +827,7 @@ if(!enabledMods.includes(libraryMod)) {
tempLow: -50, tempLow: -50,
stateLow:"packed_" + vesiculiteSandName, stateLow:"packed_" + vesiculiteSandName,
density: vesiculiteDensity * 1.9 + 150, density: vesiculiteDensity * 1.9 + 150,
_data: [compositionFamilyName,"vesiculite","wet_sand"], _data: [compositionFamilyName,"vesiculite","wet_particulate"],
}; };
elements["packed_" + vesiculiteSandName] = { elements["packed_" + vesiculiteSandName] = {
@ -839,7 +839,7 @@ if(!enabledMods.includes(libraryMod)) {
stateHigh: vitriteName, stateHigh: vitriteName,
density: vesiculiteDensity * 1.888, density: vesiculiteDensity * 1.888,
breakInto: vesiculiteSandName, breakInto: vesiculiteSandName,
_data: [compositionFamilyName,"vesiculite","packed_sand"], _data: [compositionFamilyName,"vesiculite","packed_particulate"],
}; };
elements.water.reactions[vesiculiteSandName] = { elements.water.reactions[vesiculiteSandName] = {
@ -856,7 +856,7 @@ if(!enabledMods.includes(libraryMod)) {
density: vitriteDensity, density: vitriteDensity,
hardness: 0.75, hardness: 0.75,
breakInto: vitriteName + "_shard", breakInto: vitriteName + "_shard",
_data: [compositionFamilyName,"vitrite","rock"], _data: [compositionFamilyName,"vitrite","igneous_rock"],
}; };
elements.water.reactions[vitriteName] = { "elem2": vitriteName + "_shard", "chance": 0.00035 } elements.water.reactions[vitriteName] = { "elem2": vitriteName + "_shard", "chance": 0.00035 }
@ -882,7 +882,7 @@ if(!enabledMods.includes(libraryMod)) {
tempHigh: vitriteMeltingPoint, tempHigh: vitriteMeltingPoint,
stateHigh: vitriteName, stateHigh: vitriteName,
density: vitriteDensity * 0.595, density: vitriteDensity * 0.595,
_data: [compositionFamilyName,"vitrite","sand"], _data: [compositionFamilyName,"vitrite","particulate"],
}; };
elements["wet_" + vitriteSandName] = { elements["wet_" + vitriteSandName] = {
@ -898,7 +898,7 @@ if(!enabledMods.includes(libraryMod)) {
tempLow: -50, tempLow: -50,
stateLow:"packed_" + vitriteSandName, stateLow:"packed_" + vitriteSandName,
density: vitriteDensity * 0.595 + 150, density: vitriteDensity * 0.595 + 150,
_data: [compositionFamilyName,"vitrite","wet_sand"], _data: [compositionFamilyName,"vitrite","wet_particulate"],
}; };
elements["packed_" + vitriteSandName] = { elements["packed_" + vitriteSandName] = {
@ -910,7 +910,7 @@ if(!enabledMods.includes(libraryMod)) {
stateHigh: vitriteName, stateHigh: vitriteName,
density: vitriteDensity * 0.59, density: vitriteDensity * 0.59,
breakInto: vitriteSandName, breakInto: vitriteSandName,
_data: [compositionFamilyName,"vitrite","packed_sand"], _data: [compositionFamilyName,"vitrite","packed_particulate"],
}; };
elements.water.reactions[vitriteSandName] = { elements.water.reactions[vitriteSandName] = {
@ -1006,7 +1006,7 @@ if(!enabledMods.includes(libraryMod)) {
}; };
function makeSedimentationElements(sandName) { function makeSandstoningElements(sandName) {
var sandInfo = elements[sandName]; var sandInfo = elements[sandName];
if(!sandInfo) { if(!sandInfo) {
@ -1094,7 +1094,7 @@ if(!enabledMods.includes(libraryMod)) {
density: 1000 + (sandInfo.density * 0.06), density: 1000 + (sandInfo.density * 0.06),
conduct: 0.02, conduct: 0.02,
stain: 0.01, stain: 0.01,
_data: [sandInfo._data[0], sandInfo._data[1], "sandy_water"], _data: [sandInfo._data[0], sandInfo._data[1], "suspension"],
} }
//Sediment element where lithification code resides //Sediment element where lithification code resides
@ -1112,33 +1112,32 @@ if(!enabledMods.includes(libraryMod)) {
var newElement = newPixel.element; var newElement = newPixel.element;
var thisSandName = pixel.element.slice(0,-9); //ABCD_sand_sediment - _sediment var thisSandName = pixel.element.slice(0,-9); //ABCD_sand_sediment - _sediment
var thisWetSandName = "wet_" + thisSandName; var thisWetSandName = "wet_" + thisSandName;
var thisSolutionName = pixel.element.slice(0,-9) + "y_water"; var thisSuspensionName = pixel.element.slice(0,-9) + "y_water";
var sandstoneName = thisSandName + "stone"; var sandstoneName = thisSandName + "stone";
if(Math.random() < 0.005 && (newElement == "wet_sand" || newElement.match(/^wet_[a-z_]+_sand$/i))) { //0.5% chance to swap with wet if(Math.random() < 0.005 && ["sediment","wet_particulate"].includes(elements[newElement]._data?.[2])) { //0.5% chance to swap with wet
swapPixels(pixel,newPixel); swapPixels(pixel,newPixel);
return; return;
}; };
if(Math.random() < 0.001 && (newElement == "sand" || newElement.match(/^[a-z_]+_sand$/i))) { //0.1% chance to give water away if(Math.random() < 0.001 && elements[newElement]._data?.[2] == "particulate") { //0.1% chance to give water away
var newWetParticulateName = elements.water.reactions[newElement].elem2;
var newWetSandName = "wet_" + newPixel.element; //wet_ + ABCD_sand if(elements[thisWetSandName] && elements[newWetParticulateName]) {
if(elements[thisWetSandName] && elements[newWetSandName]) {
//console.log(thisSandName); //console.log(thisSandName);
//console.log(newWetSandName); //console.log(newWetSandName);
changePixel(pixel,thisSandName,false); changePixel(pixel,thisSandName,false);
changePixel(newPixel,newWetSandName,false); changePixel(newPixel,newWetParticulateName,false);
}; };
}; };
if(Math.random() < 0.001 && newElement == "water") { //0.1% chance to give dissolve in water if(Math.random() < 0.001 && newElement == "water") { //0.1% chance to give dissolve in water
if(elements[thisSolutionName]) { if(elements[thisSuspensionName]) {
//console.log(thisSolutionName); //console.log(thisSuspensionName);
changePixel(pixel,thisSolutionName,false); changePixel(pixel,thisSuspensionName,false);
changePixel(newPixel,thisSolutionName,false); changePixel(newPixel,thisSuspensionName,false);
}; };
}; };
if(Math.random() < 0.001 && (newElement == "sandy_water" || newElement.match(/^[a-z_]+_sandy_water$/i))) { //0.1% chance to sediment a solution if(Math.random() < 0.001 && elements[newElement]._data?.[2] == "suspension") { //0.1% chance to sediment a suspension
var newSedimentName = newPixel.element.replace("y_water","_sediment"); var newSedimentName = elements[newPixel.element].reactions[newPixel.element].elem2;
//console.log(newSedimentName); //console.log(newSedimentName);
if(elements[newSedimentName]) { if(elements[newSedimentName]) {
changePixel(newPixel,newSedimentName,false); changePixel(newPixel,newSedimentName,false);
@ -1147,7 +1146,7 @@ if(!enabledMods.includes(libraryMod)) {
}; };
//console.log(sandstoneName); //console.log(sandstoneName);
sedimentation(pixel,sandstoneLithificationElements,sandstoneName) sedimentation(pixel,lithificationElements,sandstoneName)
}, },
tempHigh: sandInfo.tempHigh, tempHigh: sandInfo.tempHigh,
stateHigh: sandInfo.stateHigh, stateHigh: sandInfo.stateHigh,
@ -1155,7 +1154,7 @@ if(!enabledMods.includes(libraryMod)) {
state: "solid", state: "solid",
density: elements[wetSandName].density + 150, density: elements[wetSandName].density + 150,
breakInto: sandName, breakInto: sandName,
_data: [sandInfo._data[0], sandInfo._data[1], "sand_sediment"], _data: [sandInfo._data[0], sandInfo._data[1], "sediment"],
}; };
//Final rock //Final rock
@ -1173,45 +1172,216 @@ if(!enabledMods.includes(libraryMod)) {
hardness: 0.5, hardness: 0.5,
breakInto: sandName, breakInto: sandName,
maxColorOffset: 30, maxColorOffset: 30,
_data: [sandInfo._data[0], "rock", "sandstone"], _data: [sandInfo._data[0], "rock", "sedimentary_rock"],
};
};
function makeNonSandSedimentationElements(particulateName,suspensionName,rockName) {
var particulateInfo = elements[particulateName];
if(!particulateInfo) {
throw new Error("No such element '" + particulateName + "'");
};
var sedimentName = particulateName + "_sediment";
//Water reaction to pick up the fine material (this is very simplified)
elements.water.reactions[particulateName] = {
"elem1": suspensionName,
"elem2": [particulateName,particulateName,particulateName,suspensionName],
chance: 0.01
};
//Sediment suspension
//Color generation
var particulateColor = particulateInfo.color;
if(!(particulateColor instanceof Array)) {
particulateColor = [particulateColor];
};
var waterColor = "#2167ff";
//console.log(particulateColor);
suspensionColor = particulateColor.map(sandSubcolor => lerpColors(waterColor,sandSubcolor,"hex",weight1=0.5)); //lerp all with half water
var sedimentColor = particulateColor.map(sandSubcolor => convertHslObjects(sedimentHslOffset(normalizeColorToHslObject(sandSubcolor)),"hex"));
//console.log(particulateInfo);
elements[suspensionName] = {
color: suspensionColor,
behavior: behaviors.LIQUID,
tempHigh: 100,
stateHigh: ["steam","steam",particulateName],
category: "liquids",
reactions: {
"dirt": { // React with (water reacts with dirt to make mud)
"elem1": [null,null,particulateName], // First element transforms into; in this case, water deletes itself
"elem2": "mud", // Second element transforms into; in this case, dirt turns to mud
},
"water": { "elem1":"water", "elem2":suspensionName, "chance":0.025 }, //swap reaction
"particulateName": { "elem1": [null,null,particulateName], "elem2": particulateName, },
//"salt": { "elem1": "salt_water", "elem2": null },
//"sugar": { "elem1": "sugar_water", "elem2": null, },
"dust": { "elem1": "dirty_water", "elem2": null, },
"ash": { "elem1": "dirty_water", "elem2": null, },
"cyanide": { "elem1": "dirty_water", "elem2": null, },
//"carbon_dioxide": { "elem1": "seltzer", "elem2": null, "oneway":true },
"sulfur": { "elem1": "dirty_water", "elem2": null, },
"rat": { "elem1": "dirty_water", chance:0.005 },
"plague": { "elem1": "dirty_water", "elem2": null, },
"rust": { "elem1": "dirty_water", chance:0.005 },
"fallout": { "elem1": "dirty_water", chance:0.25 },
"radiation": { "elem1": "dirty_water", chance:0.25 },
"uranium": { "elem1": "dirty_water", chance:0.25 },
"rotten_meat": { "elem1": "dirty_water", chance:0.25 },
"quicklime": { "elem1": [null,null,particulateName], "elem2": "slaked_lime", },
"rock": { "elem2": particulateName, "chance": 0.00035 },
"ruins": { "elem2": "rock", "chance": 0.00035 },
"mudstone": { "elem2": "mud", "chance": 0.00035 },
//"methane": { "elem1":"primordial_soup", "elem2":"primordial_soup", tempMin:60, charged:true },
//"ammonia": { "elem1":"primordial_soup", "elem2":"primordial_soup", tempMin:60, charged:true },
"fly": { "elem2":"dead_bug", "chance":0.1, "oneway":true },
"firefly": { "elem2":"dead_bug", "chance":0.1, "oneway":true },
"bee": { "elem2":"dead_bug", "chance":0.05, "oneway":true },
"stink_bug": { "elem2":"dead_bug", "chance":0.1, "oneway":true },
},
state: "liquid",
density: 1000 + (particulateInfo.density * 0.06),
conduct: 0.02,
stain: 0.01,
_data: [particulateInfo._data[0], particulateInfo._data[1], "suspension"],
}
elements[suspensionName].reactions[suspensionName] = { "elem1":"water", "elem2":sedimentName, "chance": 0.001 },
elements[suspensionName].reactions[particulateName] = { "elem1": "water", "elem2":sedimentName, "chance": 0.0005 },
//Sediment element where lithification code resides
elements[sedimentName] = {
hidden: true,
color: sedimentColor,
hardness: 0.2,
tick: function(pixel) {
if(!tryMove(pixel,pixel.x,pixel.y+1)) {
var newPixel = pixelMap[pixel.x]?.[pixel.y+1];
if(!newPixel) {
return;
};
var newElement = newPixel.element;
var particulateName = pixel.element.slice(0,-9); //ABCD_sand_sediment - _sediment
var thisSuspensionName = elements[pixel.element]._sedimentationPassToElement.correspondingSuspension
var rockName = elements[pixel.element]._sedimentationPassToElement.finalRock;
if(Math.random() < 0.005 && ["sediment","wet_particulate"].includes(elements[newElement]._data?.[2])) { //0.5% chance to swap with wet
swapPixels(pixel,newPixel);
return;
};
if(Math.random() < 0.001 && elements[newElement]._data?.[2] == "particulate") { //0.1% chance to give water away
var newWetParticulateName = elements.water.reactions[newElement].elem2;
if(elements[particulateName] && elements[newWetParticulateName]) {
changePixel(pixel,particulateName,false);
changePixel(newPixel,newWetParticulateName,false);
};
};
if(Math.random() < 0.001 && newElement == "water") { //0.1% chance to dissolve in water
if(elements[thisSuspensionName]) {
//console.log(thisSuspensionName);
changePixel(pixel,thisSuspensionName,false);
changePixel(newPixel,thisSuspensionName,false);
};
};
if(Math.random() < 0.001 && elements[newElement]._data?.[2] == "suspension") { //0.1% chance to sediment a suspension
//new sediment should be the elem2 of a suspension's reaction with itself
var newSedimentName = elements[newPixel.element].reactions[newPixel.element].elem2;
//console.log(newSedimentName);
if(elements[newSedimentName]) {
changePixel(newPixel,newSedimentName,false);
};
};
};
//console.log(rockName);
sedimentation(pixel,lithificationElements,rockName)
},
tempHigh: particulateInfo.tempHigh,
stateHigh: particulateInfo.stateHigh,
_sedimentationPassToElement: {
finalRock: rockName,
correspondingSuspension: suspensionName,
},
category: "land",
state: "solid",
density: elements[particulateName].density + 150,
breakInto: particulateName,
_data: [particulateInfo._data[0], particulateInfo._data[1], "sediment"],
};
//Final rock
//console.log(particulateName);
elements[rockName] = {
color: sandstonizeToHex(particulateName), //["#b27853", "#d1a784", "#d1a784", "#d4996e"]
behavior: behaviors.WALL,
tempHigh: particulateInfo.tempHigh,
stateHigh: particulateInfo.stateHigh,
category: "land",
state: "solid",
density: particulateInfo.density * 1.5, //wide range
hardness: 0.7,
breakInto: particulateName,
maxColorOffset: 30,
_data: [particulateInfo._data[0], "rock", "sedimentary_rock"],
}; };
}; };
runAfterLoad(function() { runAfterLoad(function() {
for(i = 0; i < sands.length; i++) { for(i = 0; i < sands.length; i++) {
sandSolutions.push(sands[i] + "y_water"); sandSuspensions.push(sands[i] + "y_water");
sandSediments.push(sands[i] + "_sediment"); sandSediments.push(sands[i] + "_sediment");
sandstones.push(sands[i] + "stone"); sandstones.push(sands[i] + "stone");
makeSedimentationElements(sands[i]); makeSandstoningElements(sands[i]);
}; };
sandstoneLithificationElements = sandSediments.concat(sandstones); elements.clay._data = ["clay","clay","particulate"],
makeNonSandSedimentationElements("clay","clay_water","shale");
elements.shale.color = ["#787b80","#535557","#695e58", "#696969", "#6b5d5b"];
elements.shale.maxColorOffset = 15;
elements.shale.tempHigh = 200; //shale does get baked (https://pubs.usgs.gov/pp/0108a/report.pdf), but it feels wrong for it to happen so soon
for(fei = 0; fei < sandSolutions.length; fei++) { for(fei = 0; fei < sandSuspensions.length; fei++) {
var solutionToAddReactionTo = sandSolutions[fei]; var suspensionToAddReactionTo = sandSuspensions[fei];
//console.log(solutionToAddReactionTo); //console.log(suspensionToAddReactionTo);
elements[solutionToAddReactionTo].reactions ??= {}; elements[suspensionToAddReactionTo].reactions ??= {};
for(sei = 0; sei < sandSolutions.length; sei++) { for(sei = 0; sei < sandSuspensions.length; sei++) {
var solutionToReactWith = sandSolutions[sei]; var suspensionToReactWith = sandSuspensions[sei];
var firstSedimentName = solutionToAddReactionTo.replace("y_water","_sediment"); var firstSedimentName = suspensionToAddReactionTo.replace("y_water","_sediment");
var secondSedimentName = solutionToReactWith.replace("y_water","_sediment"); var secondSedimentName = suspensionToReactWith.replace("y_water","_sediment");
elements[solutionToAddReactionTo].reactions[solutionToReactWith] = { elements[suspensionToAddReactionTo].reactions[suspensionToReactWith] = {
elem1: "water", "elem2": [firstSedimentName,secondSedimentName], "chance": 0.001, elem1: "water", "elem2": [firstSedimentName,secondSedimentName], "chance": 0.001,
}; };
}; };
for(sej = 0; sej < wetSands.length; sej++) { for(sej = 0; sej < wetSands.length; sej++) {
var wetSandToReactWith = wetSands[sej]; var wetSandToReactWith = wetSands[sej];
var firstSedimentName = solutionToAddReactionTo.replace("y_water","_sediment"); var firstSedimentName = suspensionToAddReactionTo.replace("y_water","_sediment");
var secondSedimentName = wetSandToReactWith.replace("wet_","") + "_sediment"; var secondSedimentName = wetSandToReactWith.replace("wet_","") + "_sediment";
elements[solutionToAddReactionTo].reactions[wetSandToReactWith] = { elements[suspensionToAddReactionTo].reactions[wetSandToReactWith] = {
elem1: "water", "elem2": [firstSedimentName,secondSedimentName], "chance": 0.0005, elem1: "water", "elem2": [firstSedimentName,secondSedimentName], "chance": 0.0005,
}; };
}; };
}; };
sandstoneLithificationElements = sandSediments.concat(sandstones); lithificationElements = sandSediments.concat(sandstones);
for(fei = 0; fei < vaporizedMagmas.length; fei++) { for(fei = 0; fei < vaporizedMagmas.length; fei++) {
var vaporToAddReactionTo = vaporizedMagmas[fei]; var vaporToAddReactionTo = vaporizedMagmas[fei];
@ -1701,7 +1871,7 @@ if(!enabledMods.includes(libraryMod)) {
elements.rock.density = 3300; elements.rock.density = 3300;
elements.rock.breakInto = ["gravel"]; elements.rock.breakInto = ["gravel"];
delete elements.wet_sand.reactions.gravel; delete elements.wet_sand.reactions.gravel;
elements.rock._data = ["mafic","phanerite","rock"], elements.rock._data = ["mafic","phanerite","igneous_rock"],
elements.magma.name = "mafic magma"; elements.magma.name = "mafic magma";
elements.magma.density = 2650; elements.magma.density = 2650;
@ -1718,10 +1888,10 @@ if(!enabledMods.includes(libraryMod)) {
elements.basalt.tempHigh = 1122; elements.basalt.tempHigh = 1122;
elements.basalt.density = 2949; elements.basalt.density = 2949;
elements.basalt.breakInto = "basalt_gravel", elements.basalt.breakInto = "basalt_gravel",
elements.rock._data = ["mafic","aphanite","rock"], elements.rock._data = ["mafic","aphanite","igneous_rock"],
elements.sand._data = ["silica","silica","sand"], elements.sand._data = ["silica","silica","particulate"],
elements.wet_sand._data = ["silica","silica","wet_sand"], elements.wet_sand._data = ["silica","silica","wet_particulate"],
elements.packed_sand._data = ["silica","silica","packed_sand"], elements.packed_sand._data = ["silica","silica","packed_particulate"],
newIgneousCompositionFamily( newIgneousCompositionFamily(
"mafic", "mafic",
@ -1793,7 +1963,7 @@ if(!enabledMods.includes(libraryMod)) {
elements.ultramafic_scoria_gravel.density =.3132; elements.ultramafic_scoria_gravel.density =.3132;
makeSedimentationElements("komatiite_sand"); makeSandstoningElements("komatiite_sand");
/* //Rocks /* //Rocks
@ -1880,7 +2050,7 @@ if(!enabledMods.includes(libraryMod)) {
color: ["#31e31e", "#88fa5a", "#28d419", "#54e823", "#64f235"], color: ["#31e31e", "#88fa5a", "#28d419", "#54e823", "#64f235"],
tempHigh: 1287, tempHigh: 1287,
//1: I can't be arsed to find out what happens to emerald in extreme heat. Apparently, neither can anyone else, and Google is useless for this. //1: I can't be arsed to find out what happens to emerald in extreme heat. Apparently, neither can anyone else, and Google is useless for this.
//2: So I'm just assuming that the chromium impurities are polite and remain in solution with the molten beryl. //2: So I'm just assuming that the chromium impurities are polite and remain in suspension with the molten beryl.
behavior: behaviors.POWDER, behavior: behaviors.POWDER,
category: "powders", category: "powders",
state: "solid", state: "solid",
@ -2429,7 +2599,7 @@ if(!enabledMods.includes(libraryMod)) {
density: 1602, density: 1602,
breakInto: "radioactive_sand", breakInto: "radioactive_sand",
tick: function(pixel) { tick: function(pixel) {
sedimentation(pixel,sandstoneLithificationElements,"radioactive_sandstone") sedimentation(pixel,lithificationElements,"radioactive_sandstone")
}, },
} }