1
0
mirror of https://github.com/kihashi/stardew_community_checklist.git synced 2025-10-19 08:03:17 +00:00

Updated the user_data array to store the position from item.bundles.

All of the associated check, get, and set methods have been updated.
I have no idea if these are as performant or not.
This commit is contained in:
John Cleaver 2016-03-30 23:03:14 -04:00
parent 5f1bf11187
commit 0fcaa42214
2 changed files with 31 additions and 23 deletions

View File

@ -163,11 +163,11 @@
<div class="content"> <div class="content">
<p class="control"> <p class="control">
<a class="button is-fullwidth" v-for="bundle_id in item.bundles" <a class="button is-fullwidth" v-for="bundle_id in item.bundles"
v-on:click="toggleItemInBundle(bundle_id, item.id)" v-on:click="toggleItemInBundle(bundle_id, item.id, $index)"
v-bind:class="[isItemInBundle(bundle_id, item.id) ? 'is-success' : 'is-danger']"> v-bind:class="[isItemInBundle(bundle_id, item.id, $index) ? 'is-success' : 'is-danger']">
<span class="icon"> <span class="icon">
<i class="fa" <i class="fa"
v-bind:class="[isItemInBundle(bundle_id, item.id) ? 'fa-check-square-o' : 'fa-square-o']"></i> v-bind:class="[isItemInBundle(bundle_id, item.id, $index) ? 'fa-check-square-o' : 'fa-square-o']"></i>
</span> </span>
<span>{{ static.bundles[bundle_id].name }}</span> <span>{{ static.bundles[bundle_id].name }}</span>
</a> </a>
@ -237,11 +237,11 @@
<div class="content"> <div class="content">
<p class="control"> <p class="control">
<a class="button is-danger is-fullwidth" v-for="bundle_id in item.bundles" <a class="button is-danger is-fullwidth" v-for="bundle_id in item.bundles"
v-on:click="toggleItemInBundle(bundle_id, item.id)" v-on:click="toggleItemInBundle(bundle_id, item.id, $index)"
v-bind:class="[isItemInBundle(bundle_id, item.id) ? 'is-success' : 'is-danger']"> v-bind:class="[isItemInBundle(bundle_id, item.id, $index) ? 'is-success' : 'is-danger']">
<span class="icon"> <span class="icon">
<i class="fa" <i class="fa"
v-bind:class="[isItemInBundle(bundle_id, item.id) ? 'fa-check-square-o' : 'fa-square-o']"></i> v-bind:class="[isItemInBundle(bundle_id, item.id, $index) ? 'fa-check-square-o' : 'fa-square-o']"></i>
</span> </span>
<span>{{ static.bundles[bundle_id].name }}</span> <span>{{ static.bundles[bundle_id].name }}</span>
</a> </a>
@ -312,11 +312,11 @@
<div class="content"> <div class="content">
<p class="control"> <p class="control">
<a class="button is-danger is-fullwidth" v-for="bundle_id in item.bundles" <a class="button is-danger is-fullwidth" v-for="bundle_id in item.bundles"
v-on:click="toggleItemInBundle(bundle_id, item.id)" v-on:click="toggleItemInBundle(bundle_id, item.id, $index)"
v-bind:class="[isItemInBundle(bundle_id, item.id) ? 'is-success' : 'is-danger']"> v-bind:class="[isItemInBundle(bundle_id, item.id, $index) ? 'is-success' : 'is-danger']">
<span class="icon"> <span class="icon">
<i class="fa" <i class="fa"
v-bind:class="[isItemInBundle(bundle_id, item.id) ? 'fa-check-square-o' : 'fa-square-o']"></i> v-bind:class="[isItemInBundle(bundle_id, item.id, $index) ? 'fa-check-square-o' : 'fa-square-o']"></i>
</span> </span>
<span>{{ static.bundles[bundle_id].name }}</span> <span>{{ static.bundles[bundle_id].name }}</span>
</a> </a>
@ -389,11 +389,11 @@
<div class="content"> <div class="content">
<p class="control"> <p class="control">
<a class="button is-danger is-fullwidth" v-for="bundle_id in item.bundles" <a class="button is-danger is-fullwidth" v-for="bundle_id in item.bundles"
v-on:click="toggleItemInBundle(bundle_id, item.id)" v-on:click="toggleItemInBundle(bundle_id, item.id, $index)"
v-bind:class="[isItemInBundle(bundle_id, item.id) ? 'is-success' : 'is-danger']"> v-bind:class="[isItemInBundle(bundle_id, item.id, $index) ? 'is-success' : 'is-danger']">
<span class="icon"> <span class="icon">
<i class="fa" <i class="fa"
v-bind:class="[isItemInBundle(bundle_id, item.id) ? 'fa-check-square-o' : 'fa-square-o']"></i> v-bind:class="[isItemInBundle(bundle_id, item.id, $index) ? 'fa-check-square-o' : 'fa-square-o']"></i>
</span> </span>
<span>{{ static.bundles[bundle_id].name }}</span> <span>{{ static.bundles[bundle_id].name }}</span>
</a> </a>

30
main.js
View File

@ -70,23 +70,31 @@ var v = new Vue({
change_skill: function(new_skill){ change_skill: function(new_skill){
this.active_skill = new_skill; this.active_skill = new_skill;
}, },
addItemToBundle: function(bundleId, itemId){ addItemToBundle: function(bundleId, itemId, itemPosition){
this.user_data[bundleId].push(itemId); this.user_data[bundleId].push({item: itemId, position: itemPosition});
}, },
removeItemFromBundle: function(bundleId, itemId){ removeItemFromBundle: function(bundleId, itemId, itemPosition){
i = this.user_data[bundleId].indexOf(itemId); console.log("Removing item from bundle" + bundleId + " | " + itemId + " | " + itemPosition);
this.user_data[bundleId].splice(i, 1); for(i = 0; i < this.user_data[bundleId].length; i++){
if(this.user_data[bundleId][i].item === itemId && this.user_data[bundleId][i].position === itemPosition){
console.log("Found a match with: ");
console.log(this.user_data[bundleId][i]);
this.user_data[bundleId].splice(i, 1);
}
}
}, },
toggleItemInBundle: function(bundleId, itemId){ toggleItemInBundle: function(bundleId, itemId, itemPosition){
if(this.isItemInBundle(bundleId, itemId)){ if(this.isItemInBundle(bundleId, itemId, itemPosition)){
this.removeItemFromBundle(bundleId, itemId); this.removeItemFromBundle(bundleId, itemId, itemPosition);
} }
else{ else{
this.addItemToBundle(bundleId, itemId); this.addItemToBundle(bundleId, itemId, itemPosition);
} }
}, },
isItemInBundle: function(bundleId, itemId){ isItemInBundle: function(bundleId, itemId, itemPosition){
if(this.user_data[bundleId].indexOf(itemId) > -1){ if(this.user_data[bundleId].filter(function(element){
return element.item === itemId && element.position === itemPosition;
}).length > 0){
return true; return true;
} }
else{ else{