Use upcoming library

This commit is contained in:
Laetitia (O-01-67) 2022-11-12 13:47:16 -05:00 committed by GitHub
parent f94febc6fe
commit bd013db7f3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 160 additions and 276 deletions

View File

@ -1,6 +1,8 @@
urlParams = new URLSearchParams(window.location.search); var modName = "mods/random_rocks.js";
var libraryMod = "mods/code_library.js";
if(urlParams.get('rockAmount') != null) { //null check if(enabledMods.includes(libraryMod)) {
if(urlParams.get('rockAmount') != null) { //null check
rockAmount = urlParams.get('rockAmount') rockAmount = urlParams.get('rockAmount')
if(isNaN(rockAmount) || rockAmount === "" || rockAmount === null) { //NaN check if(isNaN(rockAmount) || rockAmount === "" || rockAmount === null) { //NaN check
rockAmount = 10 rockAmount = 10
@ -12,61 +14,49 @@ if(urlParams.get('rockAmount') != null) { //null check
alert("Minimum amount of rocks is 1.\n1 rock was added.") alert("Minimum amount of rocks is 1.\n1 rock was added.")
} }
rockAmount = Math.min(10000,Math.max(rockAmount,1)) rockAmount = Math.min(10000,Math.max(rockAmount,1))
} else {
rockAmount = 10
}
if(urlParams.get('makeRockString') !== null) { //if the variable exists at all
makeRockString = true
} else { //if it doesn't (and it returns null)
makeRockString = false
}
function _randomInt(max) {
if(max >= 0) {
return Math.floor(Math.random() * (max + 1))
} else { } else {
return 0 - Math.floor(Math.random() * (Math.abs(max) + 1)) rockAmount = 10
} }
}
function _randomArrayChoice(array) { if(urlParams.get('makeRockString') !== null) { //if the variable exists at all
return array[_randomInt(array.length - 1)] makeRockString = true
} } else { //if it doesn't (and it returns null)
makeRockString = false
}
//arbitrarily picked //arbitrarily picked
const initialArrayR = ["m","n","p","t","ch","k","b","d","j","g","f","th","s","sh","h","l","r","y","w","z","sp","st","sk","sl","spl","stl","skl","sr","spr","str","skr","sl","fl","fr","pl","pr","tl","tr","kl","kr","shr","fl","fr","thr"] //:eggTF: const initialArrayR = ["m","n","p","t","ch","k","b","d","j","g","f","th","s","sh","h","l","r","y","w","z","sp","st","sk","sl","spl","stl","skl","sr","spr","str","skr","sl","fl","fr","pl","pr","tl","tr","kl","kr","shr","fl","fr","thr"] //:eggTF:
const vowelArrayR = ["a","e","i","o","u","ay","ee","ie","oa","ew","oo","oi","ow"] //:eggTF: const vowelArrayR = ["a","e","i","o","u","ay","ee","ie","oa","ew","oo","oi","ow"] //:eggTF:
const medialArrayR = ["m","n","p","t","k","b","d","g","f","th","s","sh","h","l","r","y","z","sp","st","sk","sl","spl","stl","skl","sr","spr","str","skr","sl","fl","fr","pl","pr","tl","tr","kl","kr","shr","fl","fr","thr"] //:eggTF: const medialArrayR = ["m","n","p","t","k","b","d","g","f","th","s","sh","h","l","r","y","z","sp","st","sk","sl","spl","stl","skl","sr","spr","str","skr","sl","fl","fr","pl","pr","tl","tr","kl","kr","shr","fl","fr","thr"] //:eggTF:
const finalArrayR = ["m","n","p","t","k","b","d","g","f","th","s","sh","l","r","y","z","sp","st","sk","sl","spl","stl","skl","sr","spr","str","skr","pl","pr","tl","tr","bl","vr"] //:eggTF: const finalArrayR = ["m","n","p","t","k","b","d","g","f","th","s","sh","l","r","y","z","sp","st","sk","sl","spl","stl","skl","sr","spr","str","skr","pl","pr","tl","tr","bl","vr"] //:eggTF:
function generateName() { function generateName() {
//these are picked arbitrarily //these are picked arbitrarily
//console.log("getting random type") //console.log("getting random type")
var randomInt1 = _randomInt(6) var randomInt1 = randomIntegerFromZeroToValue(6)
//console.log("generating type " + randomInt1) //console.log("generating type " + randomInt1)
if(randomInt1 == 0) { if(randomInt1 == 0) {
var randomName = _randomArrayChoice(initialArrayR) + _randomArrayChoice(vowelArrayR) + _randomArrayChoice(finalArrayR) var randomName = randomChoice(initialArrayR) + randomChoice(vowelArrayR) + randomChoice(finalArrayR)
//console.log("generated T" + randomInt1 + " name") //console.log("generated T" + randomInt1 + " name")
} else if(randomInt1 == 1) { } else if(randomInt1 == 1) {
var randomName = _randomArrayChoice(initialArrayR) + _randomArrayChoice(vowelArrayR) + _randomArrayChoice(medialArrayR) + _randomArrayChoice(vowelArrayR) + _randomArrayChoice(finalArrayR) var randomName = randomChoice(initialArrayR) + randomChoice(vowelArrayR) + randomChoice(medialArrayR) + randomChoice(vowelArrayR) + randomChoice(finalArrayR)
//console.log("generated T" + randomInt1 + " name") //console.log("generated T" + randomInt1 + " name")
} else if(randomInt1 == 2) { } else if(randomInt1 == 2) {
var randomName = _randomArrayChoice(initialArrayR) + _randomArrayChoice(vowelArrayR) + _randomArrayChoice(finalArrayR) + "e" var randomName = randomChoice(initialArrayR) + randomChoice(vowelArrayR) + randomChoice(finalArrayR) + "e"
//console.log("generated T" + randomInt1 + " name") //console.log("generated T" + randomInt1 + " name")
} else if(randomInt1 == 3) { } else if(randomInt1 == 3) {
var randomName = _randomArrayChoice(initialArrayR) + _randomArrayChoice(vowelArrayR) + _randomArrayChoice(medialArrayR) + _randomArrayChoice(vowelArrayR) + _randomArrayChoice(medialArrayR) + _randomArrayChoice(finalArrayR) var randomName = randomChoice(initialArrayR) + randomChoice(vowelArrayR) + randomChoice(medialArrayR) + randomChoice(vowelArrayR) + randomChoice(medialArrayR) + randomChoice(finalArrayR)
//console.log("generated T" + randomInt1 + " name") //console.log("generated T" + randomInt1 + " name")
} else if(randomInt1 == 4) { } else if(randomInt1 == 4) {
var randomName = _randomArrayChoice(vowelArrayR) + _randomArrayChoice(initialArrayR) + _randomArrayChoice(vowelArrayR) + _randomArrayChoice(finalArrayR) var randomName = randomChoice(vowelArrayR) + randomChoice(initialArrayR) + randomChoice(vowelArrayR) + randomChoice(finalArrayR)
//console.log("generated T" + randomInt1 + " name") //console.log("generated T" + randomInt1 + " name")
} else if(randomInt1 == 5) { } else if(randomInt1 == 5) {
var randomName = _randomArrayChoice(initialArrayR) + _randomArrayChoice(vowelArrayR) + _randomArrayChoice(medialArrayR) + _randomArrayChoice(vowelArrayR) + _randomArrayChoice(medialArrayR) + _randomArrayChoice(vowelArrayR) var randomName = randomChoice(initialArrayR) + randomChoice(vowelArrayR) + randomChoice(medialArrayR) + randomChoice(vowelArrayR) + randomChoice(medialArrayR) + randomChoice(vowelArrayR)
//console.log("generated T" + randomInt1 + " name") //console.log("generated T" + randomInt1 + " name")
} else if(randomInt1 == 6) { } else if(randomInt1 == 6) {
var randomName = _randomArrayChoice(initialArrayR) + _randomArrayChoice(vowelArrayR) + _randomArrayChoice(medialArrayR) + _randomArrayChoice(vowelArrayR) var randomName = randomChoice(initialArrayR) + randomChoice(vowelArrayR) + randomChoice(medialArrayR) + randomChoice(vowelArrayR)
//console.log("generated T" + randomInt1 + " name") //console.log("generated T" + randomInt1 + " name")
} else { } else {
var randomName = randomArrayChoice(vowelArrayR) + randomArrayChoice(medialArrayR) + randomArrayChoice(vowelArrayR) + randomArrayChoice(finalArrayR) var randomName = randomArrayChoice(vowelArrayR) + randomArrayChoice(medialArrayR) + randomArrayChoice(vowelArrayR) + randomArrayChoice(finalArrayR)
@ -74,171 +64,60 @@ function generateName() {
} }
//console.log(randomName) //console.log(randomName)
return randomName return randomName
} }
const rockColor1 = {r: 128, g: 128, b: 128} const rockColor1 = {r: 128, g: 128, b: 128}
const rockColor2 = {r: 79, g: 79, b: 79} const rockColor2 = {r: 79, g: 79, b: 79}
const rockColor3 = {r: 148, g: 148, b: 148} const rockColor3 = {r: 148, g: 148, b: 148}
const gravelColor1 = {r: 227, g: 224, b: 223} const gravelColor1 = {r: 227, g: 224, b: 223}
const gravelColor2 = {r: 177, g: 171, b: 163} const gravelColor2 = {r: 177, g: 171, b: 163}
const gravelColor3 = {r: 116, g: 115, b: 109} const gravelColor3 = {r: 116, g: 115, b: 109}
const gravelColor4 = {r: 82, g: 75, b: 71} const gravelColor4 = {r: 82, g: 75, b: 71}
function _rgbToHex(color) { function generateColors() {
if(typeof(color) == "object") { //Expects object like "{r: 172, g: 11, b: 34}" var randomR = randomIntegerFromZeroToValue(255)
//console.log("Loading colors"); var randomG = randomIntegerFromZeroToValue(255)
//console.log("Loading R"); var randomB = randomIntegerFromZeroToValue(255)
var red = color.r;
//console.log("Loading G");
var green = color.g;
//console.log("Loading B");
var blue = color.b;
//console.log("Rounding R");
red = Math.round(red);
//console.log("Rounding G");
green = Math.round(green);
//console.log("Rounding B");
blue = Math.round(blue);
//console.log("Bounding R");
red = Math.min(255,Math.max(0,red));
//console.log("Bounding G");
green = Math.min(255,Math.max(0,green));
//console.log("Bounding B");
blue = Math.min(255,Math.max(0,blue));
//console.log("Converting R");
red = red.toString(16);
//console.log("Converting G");
green = green.toString(16);
//console.log("Converting B");
blue = blue.toString(16);
//console.log("Padding R");
while(red.length < 2) {
red = "0" + red;
};
//console.log("Padding G");
while(green.length < 2) {
green = "0" + green;
};
//console.log("Padding B");
while(blue.length < 2) {
blue = "0" + blue;
};
//console.log("Concatenating");
return "#" + red + green + blue;
} else if(typeof(color) == "string") { //Expects string like "rgb(20,137,4)".
//console.log("Splitting string")
color = color.split(",");
//console.log("Getting R");
var red = parseFloat(color[0].substring(4))
//console.log("Getting G");
var green = parseFloat(color[1])
//console.log("Getting B");
var blue = parseFloat(color[2].slice(0,-1))
//console.log("Rounding R");
red = Math.round(red);
//console.log("Rounding G");
green = Math.round(green);
//console.log("Rounding B");
blue = Math.round(blue);
//console.log("Bounding R");
red = Math.min(255,Math.max(0,red));
//console.log("Bounding G");
green = Math.min(255,Math.max(0,green));
//console.log("Bounding B");
blue = Math.min(255,Math.max(0,blue));
//console.log("Converting R");
red = red.toString(16);
//console.log("Converting G");
green = green.toString(16);
//console.log("Converting B");
blue = blue.toString(16);
//console.log("Padding R");
while(red.length < 2) {
red = "0" + red;
};
//console.log("Padding G");
while(green.length < 2) {
green = "0" + green;
};
//console.log("Padding B");
while(blue.length < 2) {
blue = "0" + blue;
};
//console.log("Concatenating");
return "#" + red + green + blue;
} else {
throw "error: Only objects and strings are supported."
};
};
function _averageColorObjects(color1,color2,weight1=0.5) { /*third argument is for color1 and expects a float from 0
to 1, where 0 means "all color2" and 1 means "all color1"*/
var w1 = Math.min(Math.max(weight1,0),1)
var red1 = color1.r
var green1 = color1.g
var blue1 = color1.b
var red2 = color2.r
var green2 = color2.g
var blue2 = color2.b
var red3 = (red1 * w1) + (red2 * (1 - w1))
var green3 = (green1 * w1) + (green2 * (1 - w1))
var blue3 = (blue1 * w1) + (blue2 * (1 - w1))
return {r: red3, g: green3, b: blue3}
}
function generateColors() {
var randomR = _randomInt(255)
var randomG = _randomInt(255)
var randomB = _randomInt(255)
var randomColor = {r: randomR, g: randomG, b: randomB} var randomColor = {r: randomR, g: randomG, b: randomB}
var newRockColor1 = _averageColorObjects(rockColor1,randomColor,weight1=0.65) var newRockColor1 = averageColorObjects(rockColor1,randomColor,weight1=0.65)
var newRockColor2 = _averageColorObjects(rockColor2,randomColor,weight1=0.65) var newRockColor2 = averageColorObjects(rockColor2,randomColor,weight1=0.65)
var newRockColor3 = _averageColorObjects(rockColor3,randomColor,weight1=0.65) var newRockColor3 = averageColorObjects(rockColor3,randomColor,weight1=0.65)
var newGravelColor1 = _averageColorObjects(gravelColor1,randomColor,weight1=0.675) var newGravelColor1 = averageColorObjects(gravelColor1,randomColor,weight1=0.675)
var newGravelColor2 = _averageColorObjects(gravelColor2,randomColor,weight1=0.675) var newGravelColor2 = averageColorObjects(gravelColor2,randomColor,weight1=0.675)
var newGravelColor3 = _averageColorObjects(gravelColor3,randomColor,weight1=0.675) var newGravelColor3 = averageColorObjects(gravelColor3,randomColor,weight1=0.675)
var newGravelColor4 = _averageColorObjects(gravelColor4,randomColor,weight1=0.675) var newGravelColor4 = averageColorObjects(gravelColor4,randomColor,weight1=0.675)
var newRockColor1 = _rgbToHex(newRockColor1) var newRockColor1 = rgbToHex(newRockColor1)
var newRockColor2 = _rgbToHex(newRockColor2) var newRockColor2 = rgbToHex(newRockColor2)
var newRockColor3 = _rgbToHex(newRockColor3) var newRockColor3 = rgbToHex(newRockColor3)
var newGravelColor1 = _rgbToHex(newGravelColor1) var newGravelColor1 = rgbToHex(newGravelColor1)
var newGravelColor2 = _rgbToHex(newGravelColor2) var newGravelColor2 = rgbToHex(newGravelColor2)
var newGravelColor3 = _rgbToHex(newGravelColor3) var newGravelColor3 = rgbToHex(newGravelColor3)
var newGravelColor4 = _rgbToHex(newGravelColor4) var newGravelColor4 = rgbToHex(newGravelColor4)
return [newRockColor1, newRockColor2, newRockColor3, newGravelColor1, newGravelColor2, newGravelColor3, newGravelColor4] return [newRockColor1, newRockColor2, newRockColor3, newGravelColor1, newGravelColor2, newGravelColor3, newGravelColor4]
} }
function _add2(number1,number2) { function _generateAveragedRandoms() {
return number1 + number2 return averageNumericArray([Math.random(),Math.random(),Math.random()])
} }
function _arrayAverage(array) { function avgRndToMult() {
var total = array.reduce(_add2,0)
return total / array.length
}
function _generateAveragedRandoms() {
return _arrayAverage([Math.random(),Math.random(),Math.random()])
}
function avgRndToMult() {
return 1 + (0.55 - _generateAveragedRandoms()) return 1 + (0.55 - _generateAveragedRandoms())
} }
elements.gravel.breakInto = "dust" elements.gravel.breakInto = "dust"
if(makeRockString == true) { if(makeRockString == true) {
rockString = "" rockString = ""
} }
for(i = 0; i < rockAmount; i++) { for(i = 0; i < rockAmount; i++) {
var name = generateName() var name = generateName()
var meltingAdjustment = avgRndToMult() var meltingAdjustment = avgRndToMult()
var densityAdjustment = avgRndToMult() var densityAdjustment = avgRndToMult()
var hardnessAdjustment = avgRndToMult() var hardnessAdjustment = avgRndToMult()
var colors = generateColors() var colors = generateColors()
if(typeof(elements[name]) != "undefined") { if(typeof(elements[name]) != "undefined") {
name = name + _randomArrayChoice(vowelArrayR) + _randomArrayChoice(finalArrayR) name = name + randomChoice(vowelArrayR) + randomChoice(finalArrayR)
} }
elements[name] = { elements[name] = {
name: name, name: name,
@ -273,8 +152,13 @@ for(i = 0; i < rockAmount; i++) {
rockString = rockString + `elements.${name}_gravel = {\n name: \"${name} gravel\",\n color: [\"${colors[3]}\", \"${colors[4]}\", \"${colors[5]}\", \"${colors[6]}\"],\n behavior: behaviors.POWDER,\n tempHigh: ${950 * meltingAdjustment},\n stateHigh: \"${name}\",\n category: \"random rocks\",\n state: \"solid\",\n density: ${1680 * densityAdjustment},\n hardness: ${0.2 * (hardnessAdjustment ** (2/3))},\n breakInto: \"dust\",\n};\n\n` rockString = rockString + `elements.${name}_gravel = {\n name: \"${name} gravel\",\n color: [\"${colors[3]}\", \"${colors[4]}\", \"${colors[5]}\", \"${colors[6]}\"],\n behavior: behaviors.POWDER,\n tempHigh: ${950 * meltingAdjustment},\n stateHigh: \"${name}\",\n category: \"random rocks\",\n state: \"solid\",\n density: ${1680 * densityAdjustment},\n hardness: ${0.2 * (hardnessAdjustment ** (2/3))},\n breakInto: \"dust\",\n};\n\n`
} }
} }
if(makeRockString == true) { if(makeRockString == true) {
console.log(`Rocks added to rockString (length ${rockString.length})`) console.log(`Rocks added to rockString (length ${rockString.length})`)
} }
} else {
alert(`The ${libraryMod} mod is required and has been automatically inserted (reload for this to take effect).`)
enabledMods.splice(enabledMods.indexOf(modName),0,libraryMod)
localStorage.setItem("enabledMods", JSON.stringify(enabledMods));
};