124 lines
3.5 KiB
JavaScript
124 lines
3.5 KiB
JavaScript
|
|
function redHotColorgen(colorIn,outputFormat="rgb") {
|
||
|
|
var color = colorIn;
|
||
|
|
//console.log(color);
|
||
|
|
if(!Array.isArray(color)) {
|
||
|
|
color = [color];
|
||
|
|
};
|
||
|
|
//console.log(color);
|
||
|
|
color = color.map(x => convertColorFormats(x,"json"));
|
||
|
|
//console.log(color);
|
||
|
|
for(i = 0; i < color.length; i++) {
|
||
|
|
var subcolor = color[i];
|
||
|
|
//console.log(i);
|
||
|
|
subcolor.r += 48;
|
||
|
|
subcolor.r *= 1.7;
|
||
|
|
subcolor.g += 24;
|
||
|
|
subcolor.g *= 1.2;
|
||
|
|
subcolor.b -= 10;
|
||
|
|
subcolor.b *= 0.75;
|
||
|
|
for(colorlet in subcolor) {
|
||
|
|
subcolor[colorlet] = Math.round(rgbColorBound(subcolor[colorlet]));
|
||
|
|
};
|
||
|
|
//console.log(color);
|
||
|
|
};
|
||
|
|
//console.log(color);
|
||
|
|
color = color.map(x => convertColorFormats(x,outputFormat));
|
||
|
|
if(color.length == 1) { color = color[0] };
|
||
|
|
return color;
|
||
|
|
};
|
||
|
|
|
||
|
|
var hotNameOverrides = {
|
||
|
|
dry_dirt: "hot_dirt",
|
||
|
|
};
|
||
|
|
|
||
|
|
elements.dirt._data = ["mixed","mixed","particulate"];
|
||
|
|
elements.dry_dirt._data = ["mixed","mixed","particulate"];
|
||
|
|
//console.log(elements.dry_dirt.stateHigh);
|
||
|
|
|
||
|
|
runAfterLoad(function() {
|
||
|
|
var igneousRocksAndSands = Object.keys(elements).filter(
|
||
|
|
function(elemName) {
|
||
|
|
//console.log(elemName,elements[elemName]._data?.[2]);
|
||
|
|
return ["igneous_rock","igneous_gravel","sedimentary_rock","particulate"].includes(elements[elemName]._data?.[2]) && !("clay","limestone","black_limestone","shale".includes(elemName))
|
||
|
|
}
|
||
|
|
);
|
||
|
|
|
||
|
|
console.log(igneousRocksAndSands);
|
||
|
|
|
||
|
|
function hotData2Switch(data2) {
|
||
|
|
switch(data2) {
|
||
|
|
case "igneous_rock":
|
||
|
|
return "hot_igneous_rock";
|
||
|
|
case "particulate":
|
||
|
|
return "hot_particulate";
|
||
|
|
case "sedimentary_rock":
|
||
|
|
return "hot_sedimentary_rock";
|
||
|
|
case "igneous_gravel":
|
||
|
|
return "hot_igneous_gravel";
|
||
|
|
default:
|
||
|
|
return "hot_" + data2;
|
||
|
|
};
|
||
|
|
};
|
||
|
|
|
||
|
|
igneousRocksAndSands = igneousRocksAndSands.concat("dry_dirt");
|
||
|
|
|
||
|
|
for(j = 0; j < igneousRocksAndSands.length; j++) {
|
||
|
|
var rockName = igneousRocksAndSands[j];
|
||
|
|
var rockInfo = elements[rockName];
|
||
|
|
if(!rockInfo) {
|
||
|
|
console.error(rockName);
|
||
|
|
continue;
|
||
|
|
};
|
||
|
|
var rockData = rockInfo._data ?? ["error","error","hot_unknown"];
|
||
|
|
var newName = hotNameOverrides[rockName] ?? "hot_" + rockName;
|
||
|
|
//console.log(rockInfo.stateHigh);
|
||
|
|
elements[newName] = {
|
||
|
|
color: redHotColorgen(rockInfo.color,"hex"),
|
||
|
|
behavior: [
|
||
|
|
"XX|CR:fire%0.5|XX",
|
||
|
|
"XX|XX|XX",
|
||
|
|
"M2|M1|M2"
|
||
|
|
],
|
||
|
|
category: "land",
|
||
|
|
state: "solid",
|
||
|
|
temp: Math.min(rockInfo.tempHigh - 50,850),
|
||
|
|
tempHigh: rockInfo.tempHigh,
|
||
|
|
tempLow: (rockInfo.tempHigh - 100,800),
|
||
|
|
stateLow: rockName,
|
||
|
|
stateHigh: rockInfo.stateHigh,
|
||
|
|
density: rockData.density * 0.9,
|
||
|
|
hardness: rockData.density * 0.85,
|
||
|
|
//breakInto: newName + "_gravel",
|
||
|
|
_data: [rockData[0], rockData[1], hotData2Switch(rockData[2])],
|
||
|
|
};
|
||
|
|
|
||
|
|
if(rockName == "basalt") {
|
||
|
|
elements[newName].behavior = [
|
||
|
|
"XX|CR:fire%0.5|XX",
|
||
|
|
"XX|XX|XX",
|
||
|
|
"XX|M1|XX"
|
||
|
|
]
|
||
|
|
};
|
||
|
|
|
||
|
|
//console.log(j);
|
||
|
|
|
||
|
|
if(rockInfo.nellfireImmune) {
|
||
|
|
elements[newName].nellfireImmune = true;
|
||
|
|
};
|
||
|
|
|
||
|
|
elements[rockName].tempHigh = Math.min(rockInfo.tempHigh - 100,800);
|
||
|
|
elements[rockName].stateHigh = newName;
|
||
|
|
if(rockInfo._data[2] == "igneous_rock" && elements[rockName + "_gravel"]) {
|
||
|
|
elements[rockName].stateHigh = rockName + "_gravel";
|
||
|
|
};
|
||
|
|
};
|
||
|
|
|
||
|
|
elements.dirt.tempHigh = 100;
|
||
|
|
elements.dirt.stateHigh = "dry_dirt";
|
||
|
|
elements.dry_dirt.tempHigh = 800;
|
||
|
|
elements.dry_dirt.stateHigh = "hot_dirt";
|
||
|
|
elements.hot_dirt.tempHigh = 1200;
|
||
|
|
elements.hot_dirt.stateHigh = "molten_dirt";
|
||
|
|
elements.hot_dirt.tempLow = 800;
|
||
|
|
elements.hot_dirt.stateLow = "dry_dirt";
|
||
|
|
});
|