bettermetalscrap.js

This commit is contained in:
JustAGenericUsername 2024-04-21 15:50:13 -04:00
parent 82d62b9fcc
commit 434dcac372
4 changed files with 67 additions and 14 deletions

View File

@ -156,6 +156,7 @@
<tr><td>alcohol.js</td><td>Adds methanol, (iso-)propanol, and butanol</td><td>Alice</td></tr>
<tr><td>alkahest.js</td><td>Adds the alkahest, a liquid which dissolves anything</td><td>Alice</td></tr>
<tr><td>aScientistsWish.js</td><td>Adds things that related to science, especially radiation</td><td>Carbon Monoxide, CPU</td></tr>
<tr><td>bettermetalscrap.js</td><td>Allows metal scrap to be melted back into its original material</td><td>nousernamefound</td></tr>
<tr><td>bigger_star_spawners.js</td><td>Adds spawners for larger stars</td><td>Alice</td></tr>
<tr><td>bioooze_and_pyrogens.js</td><td>Adds Bio-Ooze from <a herf="https://frackinuniverse.miraheze.org/wiki/Main_Page">Frackin Universe</a> and several heat-producing materials from various games mods</td><td>Alice</td></tr>
<tr><td>boiling_things.js</td><td>Allows for various elements to be vaporized</td><td>Alice</td></tr>

37
mods/bettermetalscrap.js Normal file
View File

@ -0,0 +1,37 @@
if (!elements.aluminum.properties){elements.aluminum.properties = {}}
elements.aluminum.properties.scrapType = "aluminum"
if (!elements.tin.properties){elements.tin.properties = {}}
elements.tin.properties.scrapType = "tin"
if (!elements.brass.properties){elements.brass.properties = {}}
elements.brass.properties.scrapType = "brass"
if (!elements.grenade.properties){elements.grenade.properties = {}}
elements.grenade.properties.scrapType = "steel"
if (!elements.smoke_grenade.properties){elements.smoke_grenade.properties = {}}
elements.smoke_grenade.properties.scrapType = "steel"
if (!elements.flashbang.properties){elements.flashbang.properties = {}}
elements.flashbang.properties.scrapType = "steel"
var randomScrap = ["aluminum", "steel", "iron"]
delete elements.metal_scrap.tempHigh
delete elements.metal_scrap.stateHigh
if (!elements.metal_scrap.tick){
elements.metal_scrap.tick = function(pixel){
if (!pixel.scrapType){
pixel.scrapType = randomScrap[Math.floor(Math.random()*randomScrap.length)]
}
if (pixel.temp >= elements[pixel.scrapType].tempHigh){
changePixel(pixel, pixel.scrapType, false)
}
}
}
else {
const prefunc = elements.metal_scrap.tick;
elements.metal_scrap.tick = function(pixel){
prefunc(pixel);
if (!pixel.scrapType){
pixel.scrapType = randomScrap[Math.floor(Math.random()*randomScrap.length)]
}
if (pixel.temp >= elements[pixel.scrapType].tempHigh){
changePixel(pixel, pixel.scrapType, false)
}
}
}

View File

@ -9,6 +9,12 @@ for (let elementi in elements){
biologicaltocorrode.splice(biologicaltocorrode.indexOf("salt"), 1)
biologicaltocorrode.splice(biologicaltocorrode.indexOf("sugar"), 1)
biologicaltocorrode.push("wood")
if (enabledMods.includes("mods/bettermetalscrap.js")){
for (let metal in metalstocorrode){
if (!elements[metalstocorrode[metal]].properties){elements[metalstocorrode[metal]].properties = {}}
elements[metalstocorrode[metal]].properties.scrapType = metalstocorrode[metal]
}
}
function basicHalogen(pixel){
for (var i = 0; i < adjacentCoords.length; i++) {
var coord = adjacentCoords[i];

View File

@ -2,32 +2,41 @@ function weightedAverage(num1, num2, weight){
return ((weight * num1)+((1-weight)*num2))
}
const heatfunc = function(pixel){
if (pixel.ogR == null || pixel.ogG == null || pixel.ogB == null || !(pixel.element == pixel.ogElement)){
if (pixel.element != "metal_scrap" || eLists.metals.includes(pixel.scrapType) || !pixel.scrapType){{
if (pixel.ogR == null || pixel.ogG == null || pixel.ogB == null || (pixel.element != pixel.ogElement && pixel.element == "metal_scrap") || (pixel.element != "metal_scrap" && pixel.ogElement == "metal_scrap")){
pixel.ogR = parseInt(pixel.color.slice(4, pixel.color.indexOf(',')), 10)
pixel.ogG = parseInt(pixel.color.slice(pixel.color.indexOf(',') + 1, pixel.color.lastIndexOf(',')), 10)
pixel.ogB = parseInt(pixel.color.slice(pixel.color.lastIndexOf(',') + 1, -1), 10)
pixel.ogElement = pixel.element
}else{
var gethigh = (elements[pixel.element].tempHigh)
}
var gethigh = 1000
var ctemp = 0
var ogR = 0
var ogG = 0
var ogB = 0
if (elements[pixel.element].tempHigh){
gethigh = elements[pixel.element].tempHigh
} else if (pixel.scrapType) {
gethigh = elements[pixel.scrapType].tempHigh
}
var halftemp = ((20+gethigh)/2)
if (pixel.temp <= (gethigh) - halftemp){
var ctemp = 0;
ctemp = 0;
} else if (pixel.temp > (gethigh)-halftemp && pixel.temp <= gethigh){
var ctemp = ((1/halftemp)*pixel.temp)-(((gethigh)-halftemp)/halftemp)
ctemp = ((1/halftemp)*pixel.temp)-(((gethigh)-halftemp)/halftemp)
}
if (ctemp <= 0.5){
var newR = (((510-(2*pixel.ogR))*ctemp)+pixel.ogR);
var newG = ((0-((2*pixel.ogG)*ctemp))+pixel.ogG);
var newB = ((0-((2*pixel.ogB)*ctemp))+pixel.ogB);
newR = (((510-(2*pixel.ogR))*ctemp)+pixel.ogR);
newG = ((0-((2*pixel.ogG)*ctemp))+pixel.ogG);
newB = ((0-((2*pixel.ogB)*ctemp))+pixel.ogB);
}else if (ctemp > 0.5){
var newR = 255;
var newG = ((510*ctemp)-255);
var newB= ((280*ctemp)-140);
newR = 255;
newG = ((510*ctemp)-255);
newB= ((280*ctemp)-140);
}
let weight = (1-(ctemp/1.3))
pixel.color = "rgb(" + weightedAverage(pixel.ogR, newR, weight) + "," + weightedAverage(pixel.ogG, newG, weight) + "," + weightedAverage(pixel.ogB, newB, weight) + ")";
}
};
}}};
if (!eLists.metals) { eLists.metals = [] }
eLists.metals = eLists.metals.concat(["iron", "glass", "copper", "gold", "brass","steel","nickel","zinc","silver","aluminum","bronze","metal_scrap","oxidized_copper","tin","lead", "rose_gold"])
eLists.metals.forEach(metal => {
@ -36,8 +45,8 @@ eLists.metals.forEach(metal => {
elements[metal].tick = heatfunc;
}else{
const modfunc = function(pixel){
prefunc(pixel);
heatfunc(pixel);
prefunc(pixel);
};
elements[metal].tick = modfunc;
}