/** * */ var allItemsArray = [] var allItems = {} var requieredCount = [] var requieredItems = [] var frequieredCount = [] var frequieredItems = [] 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") } } $("#menu li ul").each(function() { $(this).html($(this).children('li').sort(function(a, b) { return ($(b).data('position')) < ($(a).data('position')) ? 1 : -1; })); }); $(".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) }) } 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] var count = 1 if (item.count) var count = item.count for (var n = 0; n < Math .ceil($(tag).spinner( "value") / count); 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] console.log("-1") } else { requieredCount[requieredItems .indexOf(item.crafting[j])] += 1 } } } } } makeCrafting() updateoutput() }) }) function makeCrafting() { frequieredCount = requieredCount.slice() frequieredItems = requieredItems.slice() var swapped = false do { swapped = false var k = 0; while (k < frequieredItems.length) { var itemid = frequieredItems[k] if (allItems[itemid]) { swapped = true console.log("SWAPPED") var item = allItems[itemid] var count = 1 var itemcount = frequieredCount[k] if (item.count) var count = item.count frequieredCount.splice(k, 1) frequieredItems.splice(k, 1) for (var i = 0; i < Math.ceil(itemcount / count); i++) { for (var j = 0; j < item.crafting.length; j++) { if (frequieredItems.indexOf(item.crafting[j]) == -1) { frequieredCount[frequieredItems.length] = 1 frequieredItems[frequieredItems.length] = item.crafting[j] } else { frequieredCount[frequieredItems .indexOf(item.crafting[j])] += 1 } } } } k++ } } while (swapped) console.log(frequieredItems) } function updateoutput() { $("#output").empty() $("#outputfull").empty() $("#outputfull").append('

    =

    ') 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] + "
    ") } } for (var i = 0; i < frequieredItems.length; i++) { if (allItems[frequieredItems[i]]) { $("#outputfull").append( "" + frequieredCount[i] + "x " + allItems[requieredItems[i]].name + "
    ") } else { $("#outputfull").append( "" + frequieredCount[i] + "x " + frequieredItems[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] var count = 1 if (item.count) var count = item.count requieredCount.splice(index, 1) requieredItems.splice(index, 1) for (var i = 0; i < Math.ceil(itemcount / count); i++) { 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] console.log("-1") } else { requieredCount[requieredItems .indexOf(item.crafting[j])] += 1 } } } $('#' + index).fadeOut(300) setTimeout(function() { updateoutput() }, 300) } }) }