added mods list/improved list visual

This commit is contained in:
Max
2023-03-17 19:47:10 -05:00
parent 58579e21c3
commit 2a29b41ab1
8 changed files with 122 additions and 50 deletions

View File

@@ -9,31 +9,45 @@ const LoadController = {
$('#community-creations-btn').click(()=>{
this.open();
});
let panel = this;
$(".load-panel").on('click', '.list-item', async function() {
console.log('howdy')
let list_name = $(this).closest(".list-container").attr('id');
let value = $(this).find('.hidden-value').text();
if (list_name === 'worlds-list-container') {
const base = `./assets/worlds/`;
let resp = await fetch(base+value+'.json');
let json = await resp.json();
panel.control_panel.loadEnv(json);
panel.close();
}
else if (list_name === 'organisms-list-container') {
const base = `./assets/organisms/`;
let resp = await fetch(base+value+'.json');
let json = await resp.json();
panel.control_panel.editor_controller.loadOrg(json);
panel.close();
$('#maximize').click();
$('#editor').click();
}
else if (list_name === 'mods-list-container') {
window.open(value, '_blank');
}
});
$('#load-env-btn').click(async ()=>{
let file = $('#worlds-load-dropdown').val();
const base = `./assets/worlds/`;
let resp = await fetch(base+file+'.json');
let json = await resp.json();
this.control_panel.loadEnv(json);
this.close();
});
$('#load-org-btn').click(async ()=>{
let file = $('#organisms-load-dropdown').val();
const base = `./assets/organisms/`;
let resp = await fetch(base+file+'.json');
let json = await resp.json();
this.control_panel.editor_controller.loadOrg(json);
this.close();
$('#maximize').click();
$('#editor').click();
});
this.loadDropdown('worlds');
this.loadDropdown('organisms');
this.loadList('worlds');
this.loadList('organisms');
this.loadList('mods');
},
async loadDropdown(name) {
async loadList(name) {
const base = `./assets/${name}/`;
let list = [];
@@ -44,13 +58,14 @@ const LoadController = {
console.error('Failed to load list: ', e);
}
let id = `#${name}-load-dropdown`
let id = `#${name}-list`
$(id).empty();
for (let opt of list) {
for (let item of list) {
$(id).append(
`<option value="${opt.file}">
${opt.name}
</option>`
`<li class="list-item">
${item.name}
<div class="hidden-value" hidden>${item.value}</div>
</li>`
);
}
},