-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplantJson.js
95 lines (89 loc) · 3.67 KB
/
plantJson.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
function generateJson() {
form = document.forms["bee_form"]
console.log("{'array':" + form["stages"].value + "}")
const plant_json = {
cloneable: form["cloneable"].checked,
growth_bonus: Number(form["growth_bonus"].value),
growth_chance: Number(form["growth_chance"].value),
harvest_stage: Number(form["harvest_stage"].value),
mods: [],
products: [
{
chance: Number(form["prod_chance"].value),
item: form["prod_item"].value,
max: Number(form["prod_max"].value),
min: Number(form["prod_min"].value),
required: true
}
],
requirement: {
light_tolerance_factor: Number(form["light_tol"].value),
max_light: Number(form["max_light"].value),
min_light: Number(form["min_light"].value),
seasons: ["summer", "autumn"],
soil_acidity: {
type: form["acid_type"].value,
tolerance_factor: Number(form["acid_tol"].value),
value: form["acid_val"].value
},
soil_humidity: {
type: form["humid_type"].value,
tolerance_factor: Number(form["humid_tol"].value),
value: form["humid_val"].value
},
soil_nutrients: {
type: form["nutrient_type"].value,
tolerance_factor: Number(form["nutrient_tol"].value),
value: form["nutrient_val"].value
}
},
seeds: [],
spread_chance: Number(form["spread_chance"].value),
stages: JSON.parse('{"array":' + form["stages"].value + "}").array
}
console.log(JSON.stringify(plant_json))
console.log(document.getElementById('output'))
document.getElementById('output').value = JSON.stringify(plant_json, null, 2)
var speciesName = form.name.value.toLowerCase()
var namespace = form.namespace.value
if (namespace == "") namespace = "complicated_bees"
lang = {}
lang['plant.agricraft.' + namespace + '.' + speciesName] = capitalize(speciesName)
lang['seed.agricraft.' + namespace + '.' + speciesName] = capitalize(speciesName) + " Seeds"
lang['description.agricraft.' + namespace + '.' + speciesName] = ""
document.getElementById('lang_output').value = JSON.stringify(lang, null, 2)
var zip = new JSZip();
var modelsFolder = zip.folder(namespace).folder("models")
var cropFolder = modelsFolder.folder("crop")
var seedFolder = modelsFolder.folder("seed")
//generate models
for (i = 0; i < plant_json.stages.length; i++) {
modelData = {
parent: form["crop_model"].value,
textures: {
crop: form["crop_texture"].value + i
}
}
cropFolder.file(speciesName + "_stage"+i+".json", JSON.stringify(modelData, null, 2))
}
seedData = {
"parent": "minecraft:item/generated",
"textures": {
"layer0": form["seed_texture"].value
}
}
seedFolder.file(speciesName+".json", JSON.stringify(seedData, null, 2))
zip.generateAsync({type:"base64"})
.then(function (base64) {
var dataStr = "data:application/zip;base64," + base64;
var downloadAnchorNode = document.createElement('a');
downloadAnchorNode.setAttribute("href", dataStr);
downloadAnchorNode.setAttribute("download", speciesName + ".zip");
document.body.appendChild(downloadAnchorNode); // required for firefox
downloadAnchorNode.click();
downloadAnchorNode.remove();
});
}
function capitalize(string) {
return string.charAt(0).toUpperCase() + string.slice(1)
}