const LoadController = { init() { $('#close-load-btn').click(()=>{ this.close(); }); $('#load-custom-btn').click(()=>{ $('#upload-json').click(); }); $('#community-creations-btn').click(()=>{ this.open(); }); let panel = this; $(".load-panel").on('click', '.list-item', async function() { 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 ()=>{ }); $('#load-org-btn').click(async ()=>{ }); this.loadList('worlds'); this.loadList('organisms'); this.loadList('mods'); }, async loadList(name) { const base = `./assets/${name}/`; let list = []; try { let resp = await fetch(base+'_list.json'); list = await resp.json(); } catch(e) { console.error('Failed to load list: ', e); } let id = `#${name}-list` $(id).empty(); for (let item of list) { let html = `