Merge pull request #221 from JustAGenericUsername/main
the bismuth is real!?!
This commit is contained in:
commit
34f31c4d7e
|
|
@ -1527,4 +1527,100 @@ elements.invisiblewall = {
|
|||
}
|
||||
},
|
||||
category: "solids",
|
||||
},
|
||||
elements.bismuth = {
|
||||
color: ["#818181","#989898","#b0b0b0","#c9c9c9"],
|
||||
behavior: behaviors.WALL,
|
||||
category: "solids",
|
||||
tempHigh: 271.4,
|
||||
stateHigh: "molten_bismuth",
|
||||
density: 9780,
|
||||
state: "solid"
|
||||
}
|
||||
function RGBtoHSV(r, g, b) {
|
||||
if (arguments.length === 1) {
|
||||
g = r.g, b = r.b, r = r.r;
|
||||
}
|
||||
var max = Math.max(r, g, b), min = Math.min(r, g, b),
|
||||
d = max - min,
|
||||
h,
|
||||
s = (max === 0 ? 0 : d / max),
|
||||
v = max / 255;
|
||||
|
||||
switch (max) {
|
||||
case min: h = 0; break;
|
||||
case r: h = (g - b) + d * (g < b ? 6: 0); h /= 6 * d; break;
|
||||
case g: h = (b - r) + d * 2; h /= 6 * d; break;
|
||||
case b: h = (r - g) + d * 4; h /= 6 * d; break;
|
||||
}
|
||||
|
||||
return {
|
||||
h: h,
|
||||
s: s,
|
||||
v: v
|
||||
};
|
||||
}
|
||||
function HSVtoRGB(h, s, v) {
|
||||
var r, g, b, i, f, p, q, t;
|
||||
if (arguments.length === 1) {
|
||||
s = h.s, v = h.v, h = h.h;
|
||||
}
|
||||
i = Math.floor(h * 6);
|
||||
f = h * 6 - i;
|
||||
p = v * (1 - s);
|
||||
q = v * (1 - f * s);
|
||||
t = v * (1 - (1 - f) * s);
|
||||
switch (i % 6) {
|
||||
case 0: r = v, g = t, b = p; break;
|
||||
case 1: r = q, g = v, b = p; break;
|
||||
case 2: r = p, g = v, b = t; break;
|
||||
case 3: r = p, g = q, b = v; break;
|
||||
case 4: r = t, g = p, b = v; break;
|
||||
case 5: r = v, g = p, b = q; break;
|
||||
}
|
||||
return {
|
||||
r: Math.round(r * 255),
|
||||
g: Math.round(g * 255),
|
||||
b: Math.round(b * 255)
|
||||
};
|
||||
}
|
||||
elements.molten_bismuth = {
|
||||
color: ["#ee8d63", "#ef7e5e", "#f06e5c", "#f05c5c"],
|
||||
behavior: behaviors.MOLTEN,
|
||||
category: "states",
|
||||
state: "liquid",
|
||||
tick: function(pixel){
|
||||
if (pixel.temp <= 261.4){
|
||||
pixel.tHue = 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)){
|
||||
if (pixelMap[x][y].element == "bismuth"){
|
||||
var otherPixel = pixelMap[x][y]
|
||||
var nR = parseInt(otherPixel.color.slice(4, otherPixel.color.indexOf(',')), 10)
|
||||
var nG = parseInt(otherPixel.color.slice(otherPixel.color.indexOf(',') + 1, otherPixel.color.lastIndexOf(',')), 10)
|
||||
var nB = parseInt(otherPixel.color.slice(otherPixel.color.lastIndexOf(',') + 1, -1), 10)
|
||||
var hsvResult = RGBtoHSV(nR, nG, nB)
|
||||
if ((pixel.tHue+1)%1 < hsvResult.h){
|
||||
pixel.tHue = hsvResult.h;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
changePixel(pixel, "bismuth")
|
||||
if (1 == 1){
|
||||
var rgbResult = HSVtoRGB(pixel.tHue + 0.02, 0.8, 0.8);
|
||||
} else {
|
||||
var rgbResult = HSVtoRGB(pixel.tHue, 0.8, 0.8);
|
||||
}
|
||||
const hexR = rgbResult.r.toString(16).padStart(2, '0');
|
||||
const hexG = rgbResult.g.toString(16).padStart(2, '0');
|
||||
const hexB = rgbResult.b.toString(16).padStart(2, '0');
|
||||
const hexCode = `#${hexR}${hexG}${hexB}`;
|
||||
pixel.color = pixelColorPick(pixel, hexCode)
|
||||
}
|
||||
},
|
||||
density: 10049,
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue