sandboxels/mods/fools.js

98 lines
3.6 KiB
JavaScript

allproperties = {}
skipproperties = ["color", "colorOn", "forceAutoGen", "name", "category", "colorObject", "hidden", "tempHigh", "tempLow", "stateHigh", "stateLow"]
goodproperties = ["behavior","tick"]
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) + ")"
})