/**
*
*/
var allItemsArray = []
var allItems = {}
var requieredCount = []
var requieredItems = []
var newid = 0
var items = ""
var itemsRequest = new XMLHttpRequest();
itemsRequest.open('GET', 'resources/items.txt')
itemsRequest.onload = function() {
var res = itemsRequest.responseText;
items = res.split("\n")
var loaded = 0
for (var i = 0; i < items.length && !(items[i] in window); i++) {
loadJSON(items[i])
}
}
itemsRequest.send()
function loadHTML() {
$("#menu li ul").empty()
$("#k_other").empty()
for (var i = 0; i < allItemsArray.length; i++) {
if (!('disabled' in allItemsArray[i])) {
// $("#itemtoadd").append("")
$("#k_" + allItemsArray[i].type).append(
"
" + allItemsArray[i].name + "
")
} else {
// console.log(allItemsArray[i].name+" disabled. Not loading")
}
}
$(".additem")
.click(
function() {
var id = parseInt($(this).attr("id").substring(3, 99))
console.log(id)
var tagid = 'item_' + id
if ($('#' + tagid).length) {
console.log(id + " allready exists!")
return
}
$("#tocraft")
.append(
'')
$("#" + tagid).spinner({
min : 0,
numberFormat : "n",
change : function(event, ui) {
if ($("#" + tagid).spinner("value") == 0) {
$("#" + tagid).spinner("destroy")
$("#" + tagid).remove()
$("#lable_" + tagid).remove()
}
}
});
$("#" + tagid).val(1)
})
$("#menu li ul").each(function(){
$(this).html($(this).children('li').sort(function(a, b){
return ($(b).data('position')) < ($(a).data('position')) ? 1 : -1;
}));
});
}
function loadJSON(itemname) {
var itemRequest = new XMLHttpRequest();
itemRequest.open('GET', 'resources/items/' + itemname + '.txt')
console.log("Loading: " + itemname + ".txt")
itemRequest.onload = function() {
itemname = itemname.replace(/\s/g, "")
var item = JSON.parse(itemRequest.responseText)
if (!('name' in item)) {
item.name = itemname
console.warn("missing key \"name\" in " + itemname)
}
item.id = newid
allItems[itemname] = item
allItemsArray.push(item)
console.log(item)
loadHTML()
newid++
if (newid == items.length)
$("#menu").menu("refresh");
}
itemRequest.send()
}
function getItemFromId(index) {
for (var i = 0; i < allItemsArray.length; i++) {
if (allItemsArray[i].id == index)
return allItemsArray[i]
}
return null
}
$(document)
.ready(
function() {
// SEITE HAT GELADEN
$("#itemtoadd").selectmenu()
$("#additem").button()
$("#calc").button()
// BUTTONS
$(".additem")
.click(
function() {
var id = $("#itemtoadd").val()
console.log("Adding " + id + "...")
var tagid = 'item_' + id
if ($('#' + tagid).length) {
console.log(id
+ " allready exists!")
return
}
$("#tocraft")
.append(
'')
$("#" + tagid)
.spinner(
{
min : 0,
numberFormat : "n",
change : function(
event, ui) {
if ($(
"#"
+ tagid)
.spinner(
"value") == 0) {
$(
"#"
+ tagid)
.spinner(
"destroy")
$(
"#"
+ tagid)
.remove()
$(
"#lable_"
+ tagid)
.remove()
}
}
});
$("#" + tagid).val(1)
})
$("#calc")
.click(
function() {
requieredCount = []
requieredItems = []
for (var i = 0; i < newid; i++) {
var tag = "#item_" + i;
if ($(tag).length) {
var item = allItemsArray[i]
for (var n = 0; n < $(tag)
.spinner("value"); n++) {
for (var j = 0; j < item.crafting.length; j++) {
if (requieredItems
.indexOf(item.crafting[j]) == -1) {
requieredCount[requieredItems.length] = 1
requieredItems[requieredItems.length] = item.crafting[j]
} else {
requieredCount[requieredItems
.indexOf(item.crafting[j])]++
}
}
}
}
}
updateoutput()
})
})
function updateoutput() {
$("#output").empty()
for (var i = 0; i < requieredItems.length; i++) {
if (allItems[requieredItems[i]]) {
$("#output").append(
""
+ requieredCount[i] + "x "
+ allItems[requieredItems[i]].name + " ")
} else {
$("#output").append(
""
+ requieredCount[i] + "x " + requieredItems[i]
+ " ")
}
}
$(".outputitem")
.click(
function() {
console.log($(this).attr('id'))
var index = parseInt($(this).attr('id'))
var itemid = requieredItems[index]
var itemcount = requieredCount[index]
if (allItems[itemid]) {
var item = allItems[itemid]
requieredCount.splice(index, 1)
requieredItems.splice(index, 1)
for (var i = 0; i < itemcount; i++) {
for (var j = 0; j < item.crafting.length; j++) {
var count = 1
if (item.count)
count = 1 / item.count
if (requieredItems
.indexOf(item.crafting[j]) == -1) {
requieredCount[requieredItems.length] = count
requieredItems[requieredItems.length] = item.crafting[j]
console.log("-1")
} else {
requieredCount[requieredItems
.indexOf(item.crafting[j])] += count
}
}
}
for (var i = 0; i < requieredCount.length; i++) {
requieredCount[i] = Math
.ceil(requieredCount[i])
}
$('#' + index).fadeOut(300)
setTimeout(function() {
updateoutput()
}, 300)
}
})
}
function sortUnorderedList(ul, sortDescending) {
if (typeof ul == "string")
ul = document.getElementById(ul);
// Idiot-proof, remove if you want
if (!ul) {
alert("The UL object is null!");
return;
}
// Get the list items and setup an array for sorting
var lis = ul.getElementsByTagName("LI");
var vals = [];
// Populate the array
for (var i = 0, l = lis.length; i < l; i++)
vals.push(lis[i].innerHTML);
// Sort it
vals.sort();
// Sometimes you gotta DESC
if (sortDescending)
vals.reverse();
// Change the list on the page
for (var i = 0, l = lis.length; i < l; i++)
lis[i].innerHTML = vals[i];
}