From 9ee97e1ed10827eb7aa9620518751c882cdf89ba Mon Sep 17 00:00:00 2001 From: DS-Minetest Date: Sat, 8 Apr 2017 16:47:42 +0200 Subject: break tubes on blast --- tube_registration.lua | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'tube_registration.lua') diff --git a/tube_registration.lua b/tube_registration.lua index c720755..21eac29 100644 --- a/tube_registration.lua +++ b/tube_registration.lua @@ -38,11 +38,11 @@ local register_one_tube = function(name, tname, dropname, desc, plain, noctrs, e local outboxes = {} local outsel = {} local outimgs = {} - + for i = 1, 6 do outimgs[vti[i]] = plain[i] end - + for _, v in ipairs(connects) do pipeworks.table_extend(outboxes, pipeworks.tube_boxes[v]) table.insert(outsel, pipeworks.tube_selectboxes[v]) @@ -73,10 +73,10 @@ local register_one_tube = function(name, tname, dropname, desc, plain, noctrs, e outsel = { -24/64, -10/64, -10/64, 24/64, 10/64, 10/64 } wscale = {x = 1, y = 1, z = 0.01} end - + local rname = string.format("%s_%s", name, tname) table.insert(tubenodes, rname) - + local nodedef = { description = tubedesc, drawtype = "nodebox", @@ -107,12 +107,20 @@ local register_one_tube = function(name, tname, dropname, desc, plain, noctrs, e priority = 50 }, after_place_node = pipeworks.after_place, - after_dig_node = pipeworks.after_dig + after_dig_node = pipeworks.after_dig, + on_blast = function(pos, intensity) + if intensity > 1 + 3^0.5 then + minetest.remove_node(pos) + return {string.format("%s_%s", name, dropname)} + end + minetest.swap_node(pos, {name = "pipeworks:broken_tube_1"}) + pipeworks.scan_for_tube_objects(pos) + end } if style == "6d" then nodedef.paramtype2 = "facedir" end - + if special == nil then special = {} end for key, value in pairs(special) do -- cgit v1.2.3