--- Registration format: [mod name] = [[ node names ]].
-worktable.nodes = {
- ["default"] = [[
- wood tree cobble desert_stone
- junglewood jungletree mossycobble stonebrick
- pine_wood pine_tree desert_cobble sandstonebrick
- acacia_wood acacia_tree stone desert_stonebrick
- aspen_wood aspen_tree sandstone obsidianbrick
-
- coalblock mese obsidian
- copperblock brick obsidian_glass
- steelblock cactus
- goldblock ice
- bronzeblock meselamp
- diamondblock glass
- ]],
-
- ["xdecor"] = [[
- coalstone_tile hard_clay
- desertstone_tile packed_ice
- stone_rune moonbrick
- stone_tile woodframed_glass
- cactusbrick wood_tile
- ]],
-}
+-- Only the regular, solid blocks without formspec or explosivity can be cut.
+function worktable.nodes(ndef)
+ return (ndef.drawtype == "normal" or ndef.drawtype:find("glass")) and not
+ ndef.on_construct and not ndef.after_place_node and not
+ ndef.after_place_node and not ndef.on_rightclick and not
+ ndef.on_blast and not ndef.allow_metadata_inventory_take and
+ ndef.light_source == 0 and not ndef.groups["crumbly"]
+end