fix issue with stale metadata throwing errors
This commit is contained in:
parent
bf66f5ea31
commit
4fb19ada79
|
|
@ -18,6 +18,8 @@ export function setDomMetadata(domNode, data) {
|
|||
export function setCellMetadata(node, key, value) {
|
||||
if (!node.dataset.metadata) {
|
||||
node.dataset.metadata = createMetadata({ [key]: value }).toString(10);
|
||||
} else if (!metadata[Number(node.dataset.metadata)]) {
|
||||
metadata[Number(node.dataset.metadata)] = { [key]: value };
|
||||
} else {
|
||||
metadata[Number(node.dataset.metadata)][key] = value;
|
||||
}
|
||||
|
|
@ -38,6 +40,7 @@ export function getMetadata(id) {
|
|||
return metadata[id];
|
||||
}
|
||||
export function getCellMetadata(node, key) {
|
||||
if (!node.dataset.metadata) return null;
|
||||
return metadata[Number(node.dataset.metadata)][key];
|
||||
}
|
||||
|
||||
|
|
@ -53,6 +56,7 @@ export function deleteMetadata(id) {
|
|||
}
|
||||
export function clearCellMetadata(node, key) {
|
||||
if (!node.dataset.metadata) return;
|
||||
if (!metadata[Number(node.dataset.metadata)]) return;
|
||||
delete metadata[Number(node.dataset.metadata)][key];
|
||||
processCellOverlays(node, key, false);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import { initialize3dArray } from "./js-utils.js";
|
|||
import { recall, save } from "./storage.js";
|
||||
import { registerLoadCallback } from "./main.js";
|
||||
import { getBlockPickerActiveItem, getBlockPickerRecipe } from "./block-picker.js";
|
||||
import { clearCellMetadata, getMetadata, setCellMetadata } from "./metadata.js";
|
||||
import { clearCellMetadata, deleteMetadata, getMetadata, setCellMetadata } from "./metadata.js";
|
||||
import { retainTooltipHover } from "./tooltip.js";
|
||||
import { checkEquivalence, lookupFromMetadata, parseRuleAsString } from "./ncpf-utils.js";
|
||||
|
||||
|
|
@ -250,13 +250,14 @@ function cellClickEvent(e) {
|
|||
if (e.target.tile === "-1") return;
|
||||
|
||||
e.target.dataset.previewRemove = "yes";
|
||||
clearCellMetadata(e.target, "block_recipe");
|
||||
deleteMetadata(e.target);
|
||||
} else if (e.buttons === 1) {
|
||||
// add
|
||||
if (e.target.dataset.preview === activeItem.toString(10)) return;
|
||||
|
||||
e.target.dataset.preview = activeItem.toString(10);
|
||||
e.target.replaceChildren(makeAtlasImage(activeItem));
|
||||
deleteMetadata(e.target);
|
||||
const pickerRecipe = getBlockPickerRecipe();
|
||||
if (pickerRecipe) {
|
||||
setCellMetadata(e.target, "block_recipe", pickerRecipe);
|
||||
|
|
|
|||
|
|
@ -163,6 +163,7 @@ export async function runSolver() {
|
|||
}
|
||||
setCellMetadata(cell.dom, "primer", cell.primer);
|
||||
});
|
||||
console.log(fuelCells)
|
||||
|
||||
await debugBlockSolver("primed");
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue