99 lines
3.6 KiB
JavaScript
99 lines
3.6 KiB
JavaScript
allproperties = {}
|
|
|
|
skipproperties = ["color", "colorOn", "forceAutoGen", "name", "category", "colorObject", "hidden", "tempHigh", "tempLow", "stateHigh", "stateLow"]
|
|
goodproperties = ["behavior","tick"]
|
|
elements.molten_rad_glass.color = "#ffffff"
|
|
|
|
for (element in elements) {
|
|
var elementdata = elements[element]
|
|
if (elementdata.category === "tools") { continue }
|
|
for (property in elementdata) {
|
|
//if (skipproperties.indexOf(property) !== -1) { continue }
|
|
// only use properties that are in goodproperties
|
|
if (goodproperties.indexOf(property) === -1) { continue }
|
|
if (!allproperties[property]) {
|
|
allproperties[property] = []
|
|
}
|
|
allproperties[property].push(elementdata[property])
|
|
}
|
|
}
|
|
|
|
// delete all properties from elements except skipproperties
|
|
for (element in elements) {
|
|
var elementdata = elements[element]
|
|
if (elementdata.category === "tools") { continue }
|
|
for (property in elementdata) {
|
|
//if (skipproperties.indexOf(property) === -1) {
|
|
// only delete properties that are in goodproperties
|
|
if (goodproperties.indexOf(property) !== -1) {
|
|
delete elementdata[property]
|
|
}
|
|
}
|
|
}
|
|
|
|
// make a randomized shuffled list of all elements
|
|
var elementlist = Object.keys(elements)
|
|
elementlist.sort(function() { return 0.5 - Math.random() })
|
|
|
|
// randomly assign properties to elements
|
|
for (property in allproperties) {
|
|
// list of values for this property
|
|
var propertyvalues = allproperties[property]
|
|
// loop through elements, assigning values until we run out
|
|
for (var i = 0; i < elementlist.length; i++) {
|
|
if (i >= propertyvalues.length) { break }
|
|
var element = elementlist[i]
|
|
var elementdata = elements[element]
|
|
elementdata[property] = propertyvalues[i]
|
|
}
|
|
// reshuffle the list of elements
|
|
elementlist.sort(function() { return 0.5 - Math.random() })
|
|
}
|
|
|
|
// choose random values for properties
|
|
for (element in elements) {
|
|
elementdata = elements[element]
|
|
if (elementdata.category === "tools") { continue }
|
|
// set tempHigh to a random value between 0 and 10000
|
|
elementdata.tempHigh = Math.floor(Math.random() * 10000)
|
|
// set tempLow to a random value between -273 and 0
|
|
elementdata.tempLow = Math.floor(Math.random() * 273) - 273
|
|
if (elementdata.stateHigh) {
|
|
elementdata.stateHigh = elementlist[Math.floor(Math.random() * elementlist.length)]
|
|
}
|
|
if (elementdata.stateLow) {
|
|
elementdata.stateLow = elementlist[Math.floor(Math.random() * elementlist.length)]
|
|
}
|
|
if (elementdata.reactions) {
|
|
for (reactant in elementdata.reactions) {
|
|
elementdata.reactions[reactant].elem1 = elementlist[Math.floor(Math.random() * elementlist.length)]
|
|
elementdata.reactions[reactant].elem2 = elementlist[Math.floor(Math.random() * elementlist.length)]
|
|
elementdata.reactions[elementlist[Math.floor(Math.random() * elementlist.length)]] = elementdata.reactions[reactant]
|
|
delete elementdata.reactions[reactant]
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
runAfterLoad(function() {
|
|
pixelTempCheckTemp = pixelTempCheck
|
|
pixelTempCheck = function(pixel) {
|
|
try {
|
|
pixelTempCheckTemp(pixel)
|
|
}
|
|
catch (e) {}
|
|
}
|
|
})
|
|
|
|
runAfterLoad(function() {
|
|
// change every font to Comic Sans
|
|
var css = document.createElement("style")
|
|
css.innerHTML = "* { font-family: Comic Sans MS !important; }"
|
|
document.body.appendChild(css)
|
|
// randomize background color
|
|
document.body.style.backgroundColor = "rgb(" + Math.floor(Math.random() * 256) + "," + Math.floor(Math.random() * 256) + "," + Math.floor(Math.random() * 256) + ")"
|
|
|
|
|
|
}) |