Skip to content

Commit

Permalink
Addon tweaks
Browse files Browse the repository at this point in the history
  • Loading branch information
gdavid04 committed Mar 14, 2024
1 parent d6c9f85 commit 1f230ed
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
<div class="title text-center">Addons</div>
<button id="close-sources" data-tooltip="Close"><i class="fa-solid fa-times"></i></button>
<div class="horizontal vcenter-items">
<input type="url" id="source-url" placeholder="Piece list URL">
<input type="url" id="source-url" placeholder="Piece list URL / addon">
<button id="add-source" data-tooltip="Add source"><i class="fa-solid fa-plus"></i></button>
</div>
<div class="sources-list" id="source-list"></div>
Expand Down
16 changes: 16 additions & 0 deletions src/main.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,22 @@ export let pieces = {};
export let pieceSources = {};
import { spellToSnbt } from 'psi-spell-encode-wasm';
const builtinSources = ['psi'].reduce((obj, list) => (obj[list] = 'pieces/' + list + '.html', obj), {});
const addonSources = { ...builtinSources, ...['phi'].reduce((obj, list) => (obj[list] = 'pieces/' + list + '.html', obj), {}) };
const loads = Promise.all([init(wasmUrl), ...Object.values(builtinSources)
.map(url => addPieceSource(url, true))]);

{
let list = document.createElement('datalist');
sourceURL.parentNode.appendChild(list);
list.id = 'addon-sources';
sourceURL.setAttribute('list', list.id);
for (let source of Object.keys(addonSources)) {
let option = document.createElement('option');
option.value = source;
list.appendChild(option);
}
}

parseURLArgs(loads);

async function loadPieceDesc(url) {
Expand All @@ -57,6 +70,7 @@ sourceURL.addEventListener('keydown', e => {
});

export async function addPieceSource(url, builtin = false, urlArg = false) {
if (addonSources[url]) url = addonSources[url];
let pieces = await loadPieceDesc(url);
if (pieceSources[pieces.namespace]) removePieceSource(pieces.namespace, true, urlArg);
let item = sourceList.div('source-item', 'horizontal', 'vcenter-items', ...builtin ? ['builtin'] : []);
Expand Down Expand Up @@ -88,6 +102,7 @@ export async function addPieceSource(url, builtin = false, urlArg = false) {
};
reorderSources();
rebuildCatalog();
// TODO rebuild grid
}

function reorderSources() {
Expand All @@ -107,6 +122,7 @@ function removePieceSource(namespace, replacing = false, urlArg = false) {
addPieceSource(builtinSources[namespace], true, urlArg);
}
rebuildCatalog();
// TODO rebuild grid
}

function rebuildCatalog() {
Expand Down
1 change: 1 addition & 0 deletions src/piece.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@ export async function loadPieces(html) {
e.dataset.key = e.dataset.key || `${namespace}:${e.dataset.type}`;
e.dataset.sortingName = e.dataset.sortingName || e.dataset.name;
e.dataset.tooltip = e.dataset.name + '\n' + e.dataset.desc;
if (namespace != 'psi') e.dataset.tooltip += `\nAddon: ${namespace}`;
pieces[e.dataset.key] = e;
});
return {
Expand Down

0 comments on commit 1f230ed

Please sign in to comment.