From d3aa415d8a8ed351f2a33db1a481a3d0c696471f Mon Sep 17 00:00:00 2001 From: ForestOfLight Date: Thu, 10 Jul 2025 18:50:19 -0700 Subject: [PATCH] material grabber shows instance selection if the selected instance is missing --- packs/BP/scripts/classes/Structure/StructureCollection.js | 4 ++++ packs/BP/scripts/options/materialGrabber.js | 5 ++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packs/BP/scripts/classes/Structure/StructureCollection.js b/packs/BP/scripts/classes/Structure/StructureCollection.js index 2ae6407..52a05c0 100644 --- a/packs/BP/scripts/classes/Structure/StructureCollection.js +++ b/packs/BP/scripts/classes/Structure/StructureCollection.js @@ -40,6 +40,10 @@ class StructureCollection { return structure; } + has(instanceName) { + return Boolean(this.structures[instanceName]); + } + delete(instanceName) { const struct = this.get(instanceName); struct.delete(); diff --git a/packs/BP/scripts/options/materialGrabber.js b/packs/BP/scripts/options/materialGrabber.js index 8bae80d..28faeb3 100644 --- a/packs/BP/scripts/options/materialGrabber.js +++ b/packs/BP/scripts/options/materialGrabber.js @@ -55,11 +55,10 @@ function onPlayerInteract(event) { const player = event.player; const target = event.block || event.target; const focusedInstanceName = Builders.get(player.id).materialInstanceName; - if (!focusedInstanceName) { + if (!focusedInstanceName || !structureCollection.has(focusedInstanceName)) openInstanceSelectionForm(player, event); - } else { + else tryGrabMaterials(player, target, focusedInstanceName, event); - } } function isActionItem(itemStack) {