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